Module: CapEC2::Utils

Included in:
EC2Handler, StatusTable
Defined in:
lib/cap-ec2/utils.rb

Defined Under Namespace

Modules: Server

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.contact_point(instance) ⇒ Object



31
32
33
34
35
36
# File 'lib/cap-ec2/utils.rb', line 31

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_mappingObject



23
24
25
26
27
28
29
# File 'lib/cap-ec2/utils.rb', line 23

def self.contact_point_mapping
  {
    :public_dns => :public_dns_name,
    :public_ip => :public_ip_address,
    :private_ip => :private_ip_address
  }
end

Instance Method Details

#get_regions(regions_array = nil) ⇒ Object



56
57
58
59
60
61
62
63
# File 'lib/cap-ec2/utils.rb', line 56

def get_regions(regions_array=nil)
  unless regions_array.nil? || regions_array.empty?
    return regions_array
  else
    @ec2 = ec2_connect
    @ec2.regions.map(&:name)
  end
end

#load_configObject



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/cap-ec2/utils.rb', line 38

def load_config
  config_location = File.expand_path(fetch(:ec2_config), Dir.pwd) if fetch(:ec2_config)
  if config_location && File.exists?(config_location)
    config = YAML.load_file 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_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_tagObject



11
12
13
# File 'lib/cap-ec2/utils.rb', line 11

def project_tag
  fetch(:ec2_project_tag)
end

#roles_tagObject



15
16
17
# File 'lib/cap-ec2/utils.rb', line 15

def roles_tag
  fetch(:ec2_roles_tag)
end

#stages_tagObject



19
20
21
# File 'lib/cap-ec2/utils.rb', line 19

def stages_tag
  fetch(:ec2_stages_tag)
end