class Awsam::Account
Constants
- DEFAULT_REGION
Attributes
keys[R]
name[R]
Public Class Methods
load_from_disk(dir)
click to toggle source
# File lib/awsam/account.rb, line 26 def self.load_from_disk(dir) name = File.basename(dir) conffile = File.join(dir, 'conf.yml') return nil unless File.exist?(conffile) File.open(conffile) do |yf| @conf = YAML::load(yf) end Account.new(name, @conf) end
new(name, params)
click to toggle source
# File lib/awsam/account.rb, line 13 def initialize(name, params) if name == Awsam::DEFAULT_LINK_NAME # We require this for our default account symlink raise "Can not name an account: #{Awsam::DEFAULT_LINK_NAME}" end @name = name @params = params @params[:aws_region] ||= DEFAULT_REGION load_keys end
Public Instance Methods
access_key()
click to toggle source
# File lib/awsam/account.rb, line 131 def access_key @params[:access_key] end
aws_region()
click to toggle source
# File lib/awsam/account.rb, line 139 def aws_region @params[:aws_region] end
desc()
click to toggle source
Export params…need better way to do this
# File lib/awsam/account.rb, line 127 def desc @params[:description] end
ec2_url()
click to toggle source
# File lib/awsam/account.rb, line 143 def ec2_url "https://ec2.#{aws_region}.amazonaws.com" end
find_key(name)
click to toggle source
# File lib/awsam/account.rb, line 73 def find_key(name) @keys[name] end
get_default_key()
click to toggle source
# File lib/awsam/account.rb, line 101 def get_default_key dflt = Utils::get_default(conf_file('keys')) @keys[dflt] end
get_environ()
click to toggle source
# File lib/awsam/account.rb, line 56 def get_environ envs = { "AMAZON_ACCESS_KEY_ID" => @params[:access_key], "AWS_ACCESS_KEY_ID" => @params[:access_key], "AWS_ACCESS_KEY" => @params[:access_key], "AMAZON_SECRET_ACCESS_KEY" => @params[:secret_key], "AWS_SECRET_ACCESS_KEY" => @params[:secret_key], "AWS_SECRET_KEY" => @params[:secret_key], "AMAZON_AWS_ID" => @params[:aws_id], "AWS_DEFAULT_REGION" => @params[:aws_region], "EC2_URL" => ec2_url } end
import_key(name, path)
click to toggle source
# File lib/awsam/account.rb, line 77 def import_key(name, path) @keys[name] = Key.import(conf_file, name, path) end
load_keys()
click to toggle source
# File lib/awsam/account.rb, line 39 def load_keys @keys = Hash.new base = conf_file('keys') return unless File.exist?(base) Utils::confdir_scan(base) do |name| @keys[name] = Key.new(File.join(base, name)) end end
print_environ(set_export)
click to toggle source
# File lib/awsam/account.rb, line 52 def print_environ(set_export) Utils::bash_environ(get_environ, set_export) end
print_unset_environ()
click to toggle source
# File lib/awsam/account.rb, line 48 def print_unset_environ Utils::bash_unset_environ(get_environ) end
remove()
click to toggle source
# File lib/awsam/account.rb, line 106 def remove dir = conf_file acct = Awsam::Accounts::get_default if acct && acct.name == @name # Need to remove default link if we're the default account Awsam::Accounts::remove_default end FileUtils.rm_rf(dir) end
remove_key(name)
click to toggle source
# File lib/awsam/account.rb, line 81 def remove_key(name) return false unless @keys.has_key?(name) dflt = get_default_key Utils::remove_default(conf_file('keys')) if dflt && dflt.name == name @keys[name].remove @keys.delete(name) true end
save()
click to toggle source
# File lib/awsam/account.rb, line 117 def save dir = File.join(Awsam::get_accts_dir, @name) FileUtils.mkdir(dir) unless File.exist?(dir) File.open(File.join(dir, 'conf.yml'), "w", 0600) do |out| YAML.dump(@params, out ) end end
secret_key()
click to toggle source
# File lib/awsam/account.rb, line 135 def secret_key @params[:secret_key] end
set_default_key(keyname)
click to toggle source
# File lib/awsam/account.rb, line 91 def set_default_key(keyname) key = @keys[keyname] unless key $stderr.puts "No key named #{keyname}" return false end Utils::set_default(conf_file('keys'), keyname) end
Private Instance Methods
conf_file(file = nil)
click to toggle source
# File lib/awsam/account.rb, line 149 def conf_file(file = nil) dir = File.join(Awsam::get_accts_dir(), @name) return file.nil? ? dir : File.join(dir, file) end