class Fog::Compute::Google::Server
Public Instance Methods
destroy()
click to toggle source
# File lib/fog/google/models/compute/server.rb, line 20 def destroy requires :name, :zone service.delete_server(name, zone) end
image()
click to toggle source
# File lib/fog/google/models/compute/server.rb, line 25 def image service.get_image(self.image_name.split('/')[-1]) end
public_ip_address()
click to toggle source
# File lib/fog/google/models/compute/server.rb, line 29 def public_ip_address ip = nil if self.network_interfaces self.network_interfaces.each do |netif| netif["accessConfigs"].each do |access_config| if access_config["name"] == "External NAT" ip = access_config['natIP'] end end end end ip end
ready?()
click to toggle source
# File lib/fog/google/models/compute/server.rb, line 44 def ready? self.state == RUNNING end
reload()
click to toggle source
# File lib/fog/google/models/compute/server.rb, line 58 def reload data = service.get_server(self.name, self.zone).body self.merge_attributes(data) end
save()
click to toggle source
# File lib/fog/google/models/compute/server.rb, line 63 def save requires :name requires :machine_type requires :zone_name if self.metadata.nil? self.metadata = {} end self.metadata.merge!({ "sshKeys" => "#{username}:#{public_key.strip}" }) if public_key options = { 'image' => image_name, 'machineType' => machine_type, 'networkInterfaces' => network_interfaces, 'disks' => disks, 'kernel' => kernel, 'metadata' => metadata } options.delete_if {|key, value| value.nil?} service.insert_server(name, zone_name, options) data = service.backoff_if_unfound {service.get_server(self.name, self.zone_name).body} service.servers.merge_attributes(data) end
zone()
click to toggle source
# File lib/fog/google/models/compute/server.rb, line 48 def zone if self.zone_name.is_a? String service.get_zone(self.zone_name.split('/')[-1]).body["name"] elsif zone_name.is_a? Excon::Response service.get_zone(zone_name.body["name"]).body["name"] else self.zone_name end end