Class: AWS::Address

Inherits:
Object
  • Object
show all
Includes:
AWS
Defined in:
lib/aws_cloud_map.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from AWS

connect, ec2

Constructor Details

#initialize(attributes) ⇒ Address

Returns a new instance of Address.



299
300
301
# File 'lib/aws_cloud_map.rb', line 299

def initialize(attributes)
  @attributes = attributes
end

Class Method Details

.allObject



330
331
332
# File 'lib/aws_cloud_map.rb', line 330

def self.all
  @@ec2.describe_addresses.map { |address| new(address) }
end

.find(ip) ⇒ Object



334
335
336
# File 'lib/aws_cloud_map.rb', line 334

def self.find(ip)
  new(@@ec2.describe_addresses([ ip ]).first)
end

Instance Method Details

#associate!(instance_or_id) ⇒ Object

TODO test



312
313
314
315
316
317
318
319
320
321
322
323
# File 'lib/aws_cloud_map.rb', line 312

def associate!(instance_or_id)
  instance_id = case instance_or_id
    when Instance
      instance_or_id.id
    else
      instance_or_id        
  end
  
  @ec2.associate_address(instance_id, public_ip)
  
  # TODO refresh @attributes
end

#instanceObject



325
326
327
328
# File 'lib/aws_cloud_map.rb', line 325

def instance
  return nil if instance_id.nil?
  @instance ||= Instance.find(instance_id)
end

#instance_idObject



303
304
305
# File 'lib/aws_cloud_map.rb', line 303

def instance_id
  @attributes[:instance_id]
end

#public_ipObject



307
308
309
# File 'lib/aws_cloud_map.rb', line 307

def public_ip
  @attributes[:public_ip]
end