class Fog::OpenStack::Compute::Address
Public Class Methods
new(attributes = {})
click to toggle source
Calls superclass method
Fog::OpenStack::Model::new
# File lib/fog/openstack/compute/models/address.rb, line 14 def initialize(attributes = {}) # assign server first to prevent race condition with persisted? self.server = attributes.delete(:server) super end
Public Instance Methods
destroy()
click to toggle source
# File lib/fog/openstack/compute/models/address.rb, line 20 def destroy requires :id service.release_address(id) true end
save()
click to toggle source
# File lib/fog/openstack/compute/models/address.rb, line 34 def save raise Fog::Errors::Error, 'Resaving an existing object may create a duplicate' if persisted? data = service.allocate_address(pool).body['floating_ip'] new_attributes = data.reject { |key, _value| !['id', 'instance_id', 'ip', 'fixed_ip'].include?(key) } merge_attributes(new_attributes) if @server self.server = @server end true end
server=(new_server)
click to toggle source
# File lib/fog/openstack/compute/models/address.rb, line 26 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/openstack/compute/models/address.rb, line 47 def associate(new_server) if persisted? @server = nil self.instance_id = new_server.id service.associate_address(instance_id, ip) else @server = new_server end end
disassociate()
click to toggle source
# File lib/fog/openstack/compute/models/address.rb, line 57 def disassociate @server = nil if persisted? service.disassociate_address(instance_id, ip) end self.instance_id = nil end