class MSS::Core::CredentialProviders::DefaultProvider

The default credential provider makes a best effort to locate your MSS credentials. It checks a variety of locations in the following order:

* Static credentials from MSS.config (e.g. MSS.config.access_key_id,
  MSS.config.secret_access_key)

* The environment (e.g. ENV['MSS_ACCESS_KEY_ID'] or
  ENV['AMAZON_ACCESS_KEY_ID'])

* EC2 metadata service (checks for credentials provided by
  roles for instances).

Attributes

providers[R]

@return [Array<Provider>]

Public Class Methods

new(static_credentials = {}) click to toggle source

(see StaticProvider#new)

# File lib/mss/core/credential_providers.rb, line 115
def initialize static_credentials = {}
  @providers = []
  @providers << StaticProvider.new(static_credentials)
  @providers << ENVProvider.new('MSS')
  @providers << ENVProvider.new('MSS', :access_key_id => 'ACCESS_KEY', :secret_access_key => 'SECRET_KEY', :session_token => 'SESSION_TOKEN')
  @providers << ENVProvider.new('AMAZON')
  begin
    if Dir.home
      @providers << SharedCredentialFileProvider.new
    end
  rescue ArgumentError, NoMethodError
  end
  @providers << EC2Provider.new
end

Public Instance Methods

credentials() click to toggle source
# File lib/mss/core/credential_providers.rb, line 133
def credentials
  providers.each do |provider|
    if provider.set?
      return provider.credentials
    end
  end
  raise Errors::MissingCredentialsError
end
refresh() click to toggle source
# File lib/mss/core/credential_providers.rb, line 146
def refresh
  providers.each do |provider|
    provider.refresh
  end
end
set?() click to toggle source
# File lib/mss/core/credential_providers.rb, line 142
def set?
  providers.any?(&:set?)
end