class Fog::Compute::Google::Address
Represents an Address resource
@see developers.google.com/compute/docs/reference/latest/addresses
Constants
- IN_USE_STATE
- RESERVED_STATE
Public Instance Methods
destroy(async = true)
click to toggle source
# File lib/fog/compute/google/models/address.rb, line 44 def destroy(async = true) requires :identity, :region data = service.delete_address(identity, region.split("/")[-1]) operation = Fog::Compute::Google::Operations.new(:service => service).get(data.body["name"], nil, data.body["region"]) operation.wait_for { ready? } unless async operation end
in_use?()
click to toggle source
# File lib/fog/compute/google/models/address.rb, line 61 def in_use? status == IN_USE_STATE end
reload()
click to toggle source
# File lib/fog/compute/google/models/address.rb, line 53 def reload requires :identity, :region data = collection.get(identity, region.split("/")[-1]) merge_attributes(data.attributes) self end
save()
click to toggle source
# File lib/fog/compute/google/models/address.rb, line 35 def save requires :identity, :region data = service.insert_address(identity, region, attributes) operation = Fog::Compute::Google::Operations.new(:service => service).get(data.body["name"], nil, data.body["region"]) operation.wait_for { !pending? } reload end
server()
click to toggle source
# File lib/fog/compute/google/models/address.rb, line 24 def server return nil if !in_use? || users.nil? || users.empty? service.servers.get(users.first.split("/")[-1]) end
server=(server)
click to toggle source
# File lib/fog/compute/google/models/address.rb, line 30 def server=(server) requires :identity, :region server ? associate(server) : disassociate end
Private Instance Methods
associate(server)
click to toggle source
# File lib/fog/compute/google/models/address.rb, line 67 def associate(server) nic = server.network_interfaces.first["name"] data = service.add_server_access_config(server.name, server.zone_name, nic, :address => address) Fog::Compute::Google::Operations.new(:service => service).get(data.body["name"], data.body["zone"]) end
disassociate()
click to toggle source
# File lib/fog/compute/google/models/address.rb, line 73 def disassociate return nil if !in_use? || users.nil? || users.empty? # An address can only be associated with one server at a time server = service.servers.get(users.first.split("/")[-1]) nic = server.network_interfaces.first["name"] unless server.network_interfaces.first["accessConfigs"].nil? || server.network_interfaces.first["accessConfigs"].empty? access_config = server.network_interfaces.first["accessConfigs"].first["name"] data = service.delete_server_access_config(server.name, server.zone_name, nic, :access_config => access_config) Fog::Compute::Google::Operations.new(:service => service).get(data.body["name"], data.body["zone"]) end end