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