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