Module: ChefConfig::Mixin::Credentials
- Included in:
- TrainTransport, WorkstationConfigLoader
- Defined in:
- lib/chef-config/mixin/credentials.rb
Overview
Helper methods for working with credentials files.
Instance Method Summary collapse
-
#credentials_file_path ⇒ String
Compute the path to the credentials file.
-
#credentials_profile(profile = nil) ⇒ String
Compute the active credentials profile name.
-
#load_credentials(profile = nil) ⇒ void
Load and process the active credentials.
-
#parse_credentials_file ⇒ String?
Load and parse the credentials file.
Instance Method Details
#credentials_file_path ⇒ String
Compute the path to the credentials file.
56 57 58 |
# File 'lib/chef-config/mixin/credentials.rb', line 56 def credentials_file_path PathHelper.home(ChefUtils::Dist::Infra::USER_CONF_DIR, "credentials").freeze end |
#credentials_profile(profile = nil) ⇒ String
Compute the active credentials profile name.
The lookup order is argument (from –profile), environment variable ($CHEF_PROFILE), context file (~/.chef/context), and then “default” as a fallback.
39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/chef-config/mixin/credentials.rb', line 39 def credentials_profile(profile = nil) context_file = PathHelper.home(ChefUtils::Dist::Infra::USER_CONF_DIR, "context").freeze if !profile.nil? profile elsif ENV.include?("CHEF_PROFILE") ENV["CHEF_PROFILE"] elsif File.file?(context_file) File.read(context_file).strip else "default" end end |
#load_credentials(profile = nil) ⇒ void
This method returns an undefined value.
Load and process the active credentials.
86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/chef-config/mixin/credentials.rb', line 86 def load_credentials(profile = nil) profile = credentials_profile(profile) cred_config = parse_credentials_file return if cred_config.nil? # No credentials, nothing to do here. if cred_config[profile].nil? # Unknown profile name. For "default" just silently ignore, otherwise # raise an error. return if profile == "default" raise ChefConfig::ConfigurationError, "Profile #{profile} doesn't exist. Please add it to #{credentials_file_path}." end apply_credentials(cred_config[profile], profile) end |
#parse_credentials_file ⇒ String?
Load and parse the credentials file.
Returns ‘nil` if the credentials file is unavailable.
66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/chef-config/mixin/credentials.rb', line 66 def parse_credentials_file credentials_file = credentials_file_path return nil unless File.file?(credentials_file) begin Tomlrb.load_file(credentials_file) rescue => e # TOML's error messages are mostly rubbish, so we'll just give a generic one = "Unable to parse Credentials file: #{credentials_file}\n" << e. raise ChefConfig::ConfigurationError, end end |