class ProfitBricks::Snapshot
Snapshot
class
Public Class Methods
create(datacenter_id, volume_id, options = {})
click to toggle source
Create snapshot from volume.
# File lib/profitbricks/snapshot.rb, line 40 def create(datacenter_id, volume_id, options = {}) volume = ProfitBricks::Volume.get(datacenter_id, nil, volume_id) volume.create_snapshot(options) end
get(snapshot_id)
click to toggle source
Retrieve an snapshot.
# File lib/profitbricks/snapshot.rb, line 71 def get(snapshot_id) response = ProfitBricks.request( method: :get, path: "/snapshots/#{snapshot_id}", expects: 200 ) instantiate_objects(response) end
list()
click to toggle source
List all snapshots.
# File lib/profitbricks/snapshot.rb, line 61 def list response = ProfitBricks.request( method: :get, path: '/snapshots', expects: 200 ) instantiate_objects(response) end
Public Instance Methods
:post,()
click to toggle source
Testing snapshot create from within Snapshot
class, but currently relying on Volume
class due to lack of datacenter ID in response.
def create(datacenter_id, volume_id, options = {})
response = ProfitBricks.request( path: "/datacenters/#{datacenter_id}/volumes/#{volume_id}/create-snapshot", expects: 202, headers: { 'Content-Type' => 'application/x-www-form-urlencoded' }, body: URI.encode_www_form(options) ) add_parent_identities(response) instatiate_objects(response)
end
# File lib/profitbricks/snapshot.rb, line 50
delete()
click to toggle source
Delete the snapshot.
# File lib/profitbricks/snapshot.rb, line 6 def delete response = ProfitBricks.request( method: :delete, path: "/snapshots/#{self.id}", expects: 202 ) self.requestId = response[:requestId] self end
restore(datacenter_id, volume_id)
click to toggle source
Restore snapshot to volume.
# File lib/profitbricks/snapshot.rb, line 32 def restore(datacenter_id, volume_id) volume = ProfitBricks::Volume.get(datacenter_id, nil, volume_id) volume.restore_snapshot(self.id) end
update(options = {})
click to toggle source
Update the snapshot.
# File lib/profitbricks/snapshot.rb, line 17 def update(options = {}) response = ProfitBricks.request( method: :patch, path: "/snapshots/#{self.id}", expects: 202, body: options.to_json ) if response self.requestId = response['requestId'] @properties = @properties.merge(response['properties']) end self end