Method: Inspec::Config#unpack_train_credentials
- Defined in:
- lib/inspec/config.rb
#unpack_train_credentials ⇒ Object
Returns a Hash with Symbol keys as follows:
backend: machine name of the Train transport needed
If present, any of the GENERIC_CREDENTIALS.
All other keys are specific to the backend.
The credentials are gleaned from:
* the Train transport defaults. Train handles this on transport creation,
so this method doesn't load defaults.
* individual InSpec CLI options (which in many cases may have the
transport name prefixed, which is stripped before being added
to the creds hash)
* the --target CLI option, which is interpreted:
- as a transport://credset format, which looks up the creds in
the config file in the credentials section
- as an arbitrary URI, which is parsed by Train.unpack_target_from_uri
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 |
# File 'lib/inspec/config.rb', line 101 def unpack_train_credentials # Internally, use indifferent access while we build the creds credentials = Thor::CoreExt::HashWithIndifferentAccess.new({}) # Helper methods prefixed with _utc_ (Unpack Train Credentials) credentials.merge!(_utc_generic_credentials) _utc_determine_backend(credentials) transport_name = credentials[:backend].to_s _utc_merge_credset(credentials, transport_name) (credentials, transport_name) # Convert to all-Symbol keys credentials.each_with_object({}) do |(option, value), creds| creds[option.to_sym] = value creds end end |