mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
47 lines
1.5 KiB
Ruby
47 lines
1.5 KiB
Ruby
|
module Fog
|
||
|
module Compute
|
||
|
class Cloudstack
|
||
|
class Snapshot < Fog::Model
|
||
|
identity :id, :aliases => 'id'
|
||
|
|
||
|
attribute :name, :aliases => 'name'
|
||
|
attribute :volume_type, :aliases => 'volumetype'
|
||
|
attribute :volume_name, :aliases => 'volumename'
|
||
|
attribute :volume_id, :aliases => 'volumeid'
|
||
|
attribute :created, :aliases => 'created'
|
||
|
attribute :state, :aliases => 'state'
|
||
|
attribute :account, :aliases => 'account'
|
||
|
attribute :domain_id, :aliases => 'domainid'
|
||
|
attribute :domain, :aliases => 'domain'
|
||
|
attribute :snapshot_type, :aliases => 'snapshot_type'
|
||
|
attribute :interval_type, :aliases => 'interval_type'
|
||
|
|
||
|
def save
|
||
|
requires :volume_id
|
||
|
|
||
|
options = {
|
||
|
'volumeid' => volume_id,
|
||
|
'domainid' => domain_id
|
||
|
}
|
||
|
data = service.create_snapshot(options)
|
||
|
merge_attributes(data['createsnapshotresponse'])
|
||
|
end
|
||
|
|
||
|
def ready?
|
||
|
state == 'BackedUp'
|
||
|
end
|
||
|
|
||
|
def volume
|
||
|
service.volumes.get(volume_id) if volume_id
|
||
|
end
|
||
|
|
||
|
def destroy
|
||
|
requires :id
|
||
|
service.delete_snapshot('id' => id)
|
||
|
true
|
||
|
end
|
||
|
end # Snapshot
|
||
|
end # Cloudstack
|
||
|
end # Compute
|
||
|
end # Fog
|