class AwsLogCleaner::AwsCredentials

wrapper for aws credentials

Attributes

credentials[R]
region[R]

Public Class Methods

new(credential_args = nil) click to toggle source
# File lib/aws_log_cleaner/aws_credentials.rb, line 12
def initialize(credential_args = nil)      
  key_id, secret, profile, region = parse_credential_arguments(credential_args)

  set_credentials(key_id, secret, profile, region)

  return @credentials
end

Private Instance Methods

parse_credential_arguments(credential_args) click to toggle source
# File lib/aws_log_cleaner/aws_credentials.rb, line 26
def parse_credential_arguments(credential_args)
  if credential_args.nil?
    key_id  = ENV['AWS_ACCESS_KEY_ID']
    secret  = ENV['AWS_SECRET_ACCESS_KEY']
    region = ENV['AWS_REGION']
  else
    if credential_args[:profile] \
      && (credential_args[:access_key] || credential_args[:secret] )
      raise 'Cannot pass a profile and a secret'
    end

    if credential_args[:profile]
      profile = credential_args[:profile]
    else
      key_id = credential_args[:access_key]
      secret = credential_args[:secret]
    end        
    region = credential_args[:region] || ENV['AWS_DEFAULT_REGION']
  end 
  return key_id, secret, profile, region
end
raise_credentials_error() click to toggle source
# File lib/aws_log_cleaner/aws_credentials.rb, line 22
def raise_credentials_error
  raise "Could not load credentials."
end
set_credentials(key_id, secret, profile, region) click to toggle source
# File lib/aws_log_cleaner/aws_credentials.rb, line 48
def set_credentials(key_id, secret, profile, region)
  @region = region
  @credentials =
    if key_id.nil? && secret.nil?
      begin
        profile.nil? ? Aws::SharedCredentials.new : Aws::SharedCredentials.new(profile_name: profile)
      rescue Aws::Errors::NoSuchProfileError
        raise_credentials_error
      end
    else
      Aws::Credentials.new(key_id, secret)
    end

    if (@credentials.credentials.nil? || @region.nil?) \
      || @credentials.credentials.set? == false
      raise_credentials_error
    end
end