class Fog::Compute::Google::Disk
Constants
- RUNNING_STATE
Public Instance Methods
attached_disk_obj(opts = {})
click to toggle source
# File lib/fog/compute/google/models/disk.rb, line 64 def attached_disk_obj(opts = {}) requires :self_link collection.attached_disk_obj(self_link, opts) end
create_snapshot(snapshot_name, snapshot = {})
click to toggle source
# File lib/fog/compute/google/models/disk.rb, line 97 def create_snapshot(snapshot_name, snapshot = {}) requires :name, :zone raise ArgumentError, "Invalid snapshot name" unless snapshot_name data = service.create_disk_snapshot(snapshot_name, name, zone_name, snapshot) operation = Fog::Compute::Google::Operations.new(:service => service) .get(data.name, data.zone) operation.wait_for { !pending? } service.snapshots.get(snapshot_name) end
default_description()
click to toggle source
# File lib/fog/compute/google/models/disk.rb, line 21 def default_description if !source_image.nil? "created from image: #{source_image}" elsif !source_snapshot.nil? "created from snapshot: #{source_snapshot}" else "created with fog" end end
destroy(async = true)
click to toggle source
# File lib/fog/compute/google/models/disk.rb, line 50 def destroy(async = true) requires :name, :zone data = service.delete_disk(name, zone_name) operation = Fog::Compute::Google::Operations.new(:service => service) .get(data.name, data.zone) operation.wait_for { ready? } unless async operation end
get_as_boot_disk(writable = true, auto_delete = false)
click to toggle source
# File lib/fog/compute/google/models/disk.rb, line 69 def get_as_boot_disk(writable = true, auto_delete = false) { :auto_delete => auto_delete, :boot => true, :source => self_link, :mode => writable ? "READ_WRITE" : "READ_ONLY", :type => "PERSISTENT" } end
ready?()
click to toggle source
# File lib/fog/compute/google/models/disk.rb, line 79 def ready? status == RUNNING_STATE end
reload()
click to toggle source
# File lib/fog/compute/google/models/disk.rb, line 83 def reload requires :identity, :zone return unless data = begin collection.get(identity, zone_name) rescue Google::Apis::TransmissionError nil end new_attributes = data.attributes merge_attributes(new_attributes) self end
save()
click to toggle source
# File lib/fog/compute/google/models/disk.rb, line 31 def save requires :name, :zone, :size_gb options = { :description => description || default_description, :source_image => source_image, :source_snapshot => source_snapshot, :size_gb => size_gb, :type => type, :zone => zone } data = service.insert_disk(name, zone, source_image, options) operation = Fog::Compute::Google::Operations.new(:service => service) .get(data.name, data.zone) operation.wait_for { !pending? } reload end
zone_name()
click to toggle source
# File lib/fog/compute/google/models/disk.rb, line 60 def zone_name zone.nil? ? nil : zone.split("/")[-1] end