module CapEC2::Utils
Public Class Methods
contact_point(instance)
click to toggle source
# File lib/cap-ec2/utils.rb, line 41 def self.contact_point(instance) ec2_interface = contact_point_mapping[fetch(:ec2_contact_point)] return instance.send(ec2_interface) if ec2_interface instance.public_dns_name || instance.public_ip_address || instance.private_ip_address end
contact_point_mapping()
click to toggle source
# File lib/cap-ec2/utils.rb, line 33 def self.contact_point_mapping { :public_dns => :public_dns_name, :public_ip => :public_ip_address, :private_ip => :private_ip_address } end
Public Instance Methods
get_regions(regions_array=nil)
click to toggle source
# File lib/cap-ec2/utils.rb, line 75 def get_regions(regions_array=nil) unless regions_array.nil? || regions_array.empty? return regions_array else fail "You must specify at least one EC2 region." end end
load_config()
click to toggle source
# File lib/cap-ec2/utils.rb, line 48 def load_config if fetch(:ec2_profile) credentials = Aws::SharedCredentials.new(profile_name: fetch(:ec2_profile)).credentials if credentials set :ec2_access_key_id, credentials.access_key_id set :ec2_secret_access_key, credentials.secret_access_key end end config_location = File.expand_path(fetch(:ec2_config), Dir.pwd) if fetch(:ec2_config) if config_location && File.exists?(config_location) config = YAML.load(ERB.new(File.read(fetch(:ec2_config)))) if config set :ec2_project_tag, config['project_tag'] if config['project_tag'] set :ec2_roles_tag, config['roles_tag'] if config['roles_tag'] set :ec2_stages_tag, config['stages_tag'] if config['stages_tag'] set :ec2_tag_delimiter, config['tag_delimiter'] if config['tag_delimiter'] set :ec2_access_key_id, config['access_key_id'] if config['access_key_id'] set :ec2_secret_access_key, config['secret_access_key'] if config['secret_access_key'] set :ec2_region, config['regions'] if config['regions'] set :ec2_filter_by_status_ok?, config['filter_by_status_ok?'] if config['filter_by_status_ok?'] end end end
project_tag()
click to toggle source
# File lib/cap-ec2/utils.rb, line 13 def project_tag fetch(:ec2_project_tag) end
roles_tag()
click to toggle source
# File lib/cap-ec2/utils.rb, line 17 def roles_tag fetch(:ec2_roles_tag) end
stages_tag()
click to toggle source
# File lib/cap-ec2/utils.rb, line 21 def stages_tag fetch(:ec2_stages_tag) end
tag_delimiter()
click to toggle source
# File lib/cap-ec2/utils.rb, line 25 def tag_delimiter fetch(:ec2_tag_delimiter) end
tag_value(instance, key)
click to toggle source
# File lib/cap-ec2/utils.rb, line 29 def tag_value(instance, key) instance.tags.find(-> { {} }) { |t| t[:key] == key.to_s }[:value] end