1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00
fog--fog/lib/fog/cloudstack/models/compute/snapshot.rb

47 lines
1.5 KiB
Ruby
Raw Normal View History

2013-03-26 11:27:42 -04:00
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