class Fog::AWS::Compute::Address

Public Class Methods

new(attributes = {}) click to toggle source
Calls superclass method
# File lib/fog/aws/models/compute/address.rb, line 16
def initialize(attributes = {})
  # assign server first to prevent race condition with persisted?
  self.server = attributes.delete(:server)
  super
end

Public Instance Methods

change_scope() click to toggle source
# File lib/fog/aws/models/compute/address.rb, line 29
def change_scope
  if self.domain == 'standard'
    service.move_address_to_vpc(self.identity)
    wait_for { self.domain == 'vpc' }
  else
    service.restore_address_to_classic(self.identity)
    wait_for { self.domain == 'standard' }
  end
end
destroy() click to toggle source
# File lib/fog/aws/models/compute/address.rb, line 22
def destroy
  requires :public_ip

  service.release_address(allocation_id || public_ip)
  true
end
save() click to toggle source
# File lib/fog/aws/models/compute/address.rb, line 51
def save
  raise Fog::Errors::Error.new('Resaving an existing object may create a duplicate') if persisted?
  data = service.allocate_address(domain).body
  new_attributes = data.reject {|key,value| key == 'requestId'}
  merge_attributes(new_attributes)
  if @server
    self.server = @server
  end
  true
end
server() click to toggle source
# File lib/fog/aws/models/compute/address.rb, line 47
def server
  service.servers.get(server_id)
end
server=(new_server) click to toggle source
# File lib/fog/aws/models/compute/address.rb, line 39
def server=(new_server)
  if new_server
    associate(new_server)
  else
    disassociate
  end
end

Private Instance Methods

associate(new_server) click to toggle source
# File lib/fog/aws/models/compute/address.rb, line 64
def associate(new_server)
  unless persisted?
    @server = new_server
  else
    @server = nil
    self.server_id = new_server.id
    service.associate_address(server_id, public_ip, network_interface_id, allocation_id)
  end
end
disassociate() click to toggle source
# File lib/fog/aws/models/compute/address.rb, line 74
def disassociate
  @server = nil
  self.server_id = nil
  if persisted?
    if association_id
      service.disassociate_address(nil, association_id)
    else
      service.disassociate_address(public_ip)
    end
  end
end