class Fog::Compute::Google::Disk
Constants
- RUNNING_STATE
Public Instance Methods
destroy()
click to toggle source
# File lib/fog/google/models/compute/disk.rb, line 27 def destroy requires :name, :zone service.delete_disk(name, zone) end
get_as_boot_disk(writable=true)
click to toggle source
# File lib/fog/google/models/compute/disk.rb, line 42 def get_as_boot_disk(writable=true) mode = writable ? 'READ_WRITE' : 'READ_ONLY' return { 'name' => name, 'type' => 'PERSISTENT', 'boot' => true, 'source' => self_link, 'mode' => mode } end
ready?()
click to toggle source
# File lib/fog/google/models/compute/disk.rb, line 53 def ready? data = service.get_disk(self.name, self.zone_name).body data['zone_name'] = self.zone_name self.merge_attributes(data) self.status == RUNNING_STATE end
reload()
click to toggle source
# File lib/fog/google/models/compute/disk.rb, line 60 def reload requires :identity requires :zone_name return unless data = begin collection.get(identity, zone_name) rescue Excon::Errors::SocketError nil end new_attributes = data.attributes merge_attributes(new_attributes) self end
save()
click to toggle source
# File lib/fog/google/models/compute/disk.rb, line 21 def save data = service.insert_disk(name, size_gb, zone_name, image_name).body data = service.backoff_if_unfound {service.get_disk(name, zone_name).body} service.disks.merge_attributes(data) end
zone()
click to toggle source
# File lib/fog/google/models/compute/disk.rb, line 32 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