class AWS::Creds::Store
Public Class Methods
new(opts={})
click to toggle source
# File lib/aws/creds/store.rb, line 19 def initialize opts={} # :keytab => false to disable autoloading keytab = opts[:keytab] || '~/.awscreds' import_keytab keytab if keytab @default = opts[:default] @default ||= ENV['AWS_IDENTITY'] unless opts[:ignore_environment] @default ||= 'default' end
Public Instance Methods
[](name)
click to toggle source
Calls superclass method
# File lib/aws/creds/store.rb, line 37 def [] name super name.to_s end
credentials()
click to toggle source
# File lib/aws/creds/store.rb, line 33 def credentials values end
default?(name)
click to toggle source
# File lib/aws/creds/store.rb, line 45 def default? name name == @default end
default_keypair()
click to toggle source
# File lib/aws/creds/store.rb, line 41 def default_keypair self[@default] end
identities()
click to toggle source
# File lib/aws/creds/store.rb, line 29 def identities keys end
import_keytab(path)
click to toggle source
# File lib/aws/creds/store.rb, line 49 def import_keytab path read_config(path).lines.each do |line, idx| fields = line.chomp.split ':' raise InvalidKeyTab.new path, "missing fields line #{idx}" unless fields.length >= 3 self[fields[0]] = KeyPair.new fields[1], fields[2] end self end
read_config(path)
click to toggle source
# File lib/aws/creds/store.rb, line 58 def read_config path path = File.expand_path path raise MissingKeyTab.new path, 'does not exist' unless File.exists? path mode = File.stat(path).mode & 07777 unless mode & 07077 == 0 raise UnsafePerms.new path, "unsafe permissions (#{sprintf '%#04o', mode}); please chmod go= #{File.expand_path path}" end File.read path end