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.



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

def initialize(attributes)
  @attributes = attributes
end

Class Method Details

.allObject



361
362
363
# File 'lib/aws_cloud_map.rb', line 361

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

.find(ip) ⇒ Object



365
366
367
# File 'lib/aws_cloud_map.rb', line 365

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

Instance Method Details

#associate!(instance_or_id) ⇒ Object

TODO test



343
344
345
346
347
348
349
350
351
352
353
354
# File 'lib/aws_cloud_map.rb', line 343

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



356
357
358
359
# File 'lib/aws_cloud_map.rb', line 356

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

#instance_idObject



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

def instance_id
  @attributes[:instance_id]
end

#public_ipObject



338
339
340
# File 'lib/aws_cloud_map.rb', line 338

def public_ip
  @attributes[:public_ip]
end