Class: Eipmap::Driver

Inherits:
Object
  • Object
show all
Includes:
Logger::Helper
Defined in:
lib/eipmap/driver.rb

Instance Method Summary collapse

Methods included from Logger::Helper

#log

Constructor Details

#initialize(ec2, options = {}) ⇒ Driver

Returns a new instance of Driver.



4
5
6
7
# File 'lib/eipmap/driver.rb', line 4

def initialize(ec2, options = {})
  @ec2 = ec2
  @options = options
end

Instance Method Details

#describe_instance_names(instance_ids) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/eipmap/driver.rb', line 17

def describe_instance_names(instance_ids)
  id_names = {}

  @ec2.describe_instances(:instance_ids => instance_ids).each do |resp|
    resp.reservations.each do |reservation|
      reservation.instances.each do |instance|
        tag = instance.tags.find {|t| t.key == 'Name' }
        id_names[instance.instance_id] = tag.value if tag
      end
    end
  end

  id_names
end

#update_association(domain, ip, expected_attrs, actual_attrs) ⇒ Object



9
10
11
12
13
14
15
# File 'lib/eipmap/driver.rb', line 9

def update_association(domain, ip, expected_attrs, actual_attrs)
  if expected_attrs[:network_interface_id] or expected_attrs[:instance_id]
    associate_address(domain, ip, expected_attrs, actual_attrs)
  else
    disassociate_address(domain, ip, expected_attrs, actual_attrs)
  end
end