# File lib/fog/google/models/compute/server.rb, line 22 def destroy requires :name, :zone service.delete_server(name, zone) end
# File lib/fog/google/models/compute/server.rb, line 27 def image service.get_image(self.image_name.split('/')[-1]) end
# File lib/fog/google/models/compute/server.rb, line 48 def private_ip_address ip = nil if self.network_interfaces.respond_to? :first ip = self.network_interfaces.first['networkIP'] end ip end
# File lib/fog/google/models/compute/server.rb, line 31 def public_ip_address ip = nil if self.network_interfaces.respond_to? :each self.network_interfaces.each do |netif| if netif["accessConfigs"].respond_to? :each netif["accessConfigs"].each do |access_config| if access_config["name"] == "External NAT" ip = access_config['natIP'] end end end end end ip end
# File lib/fog/google/models/compute/server.rb, line 56 def ready? self.state == RUNNING end
# File lib/fog/google/models/compute/server.rb, line 70 def reload data = service.get_server(self.name, self.zone).body self.merge_attributes(data) end
# File lib/fog/google/models/compute/server.rb, line 75 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, 'network' => network, 'externalIp' => external_ip, '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
# File lib/fog/google/models/compute/server.rb, line 60 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