mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
2e0b7e545a
Done with `rubocop --auto-correct --only EmptyLineBetweenDefs,EmptyLines,EmptyLinesAroundBody`
48 lines
1.4 KiB
Ruby
48 lines
1.4 KiB
Ruby
require 'fog/core/model'
|
|
|
|
module Fog
|
|
module Compute
|
|
class Google
|
|
class Snapshot < Fog::Model
|
|
identity :name
|
|
|
|
attribute :kind
|
|
attribute :self_link , :aliases => 'selfLink'
|
|
attribute :creation_timestamp, :aliases => 'creationTimestamp'
|
|
attribute :disk_size_gb , :aliases => 'diskSizeGb'
|
|
attribute :source_disk , :aliases => 'sourceDisk'
|
|
attribute :source_disk_id , :aliases => 'sourceDiskId'
|
|
attribute :description
|
|
attribute :status
|
|
attribute :id
|
|
attribute :storage_bytes , :aliases => 'storageBytes'
|
|
attribute :storage_bytes_status , :aliases => 'storageBytesStatus'
|
|
|
|
CREATING_STATE = 'CREATING'
|
|
DELETING_STATE = 'DELETING'
|
|
FAILED_STATE = 'FAILED'
|
|
READY_STATE = 'READY'
|
|
UPLOADING_STATE = 'UPLOADING'
|
|
|
|
def destroy(async=true)
|
|
requires :identity
|
|
|
|
data = service.delete_snapshot(identity)
|
|
operation = Fog::Compute::Google::Operations.new(:service => service).get(data.body['name'])
|
|
unless async
|
|
operation.wait_for { ready? }
|
|
end
|
|
operation
|
|
end
|
|
|
|
def ready?
|
|
self.status == READY_STATE
|
|
end
|
|
|
|
def resource_url
|
|
"#{self.service.project}/global/snapshots/#{name}"
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|