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/rackspace/requests/block_storage/get_snapshot.rb

46 lines
1.7 KiB
Ruby

module Fog
module Rackspace
class BlockStorage
class Real
# Retrieves snapshot detail
# @param [String] snapshot_id
# @return [Excon::Response] response:
# * body [Hash]:
# * 'snapshot' [Hash]:
# * 'volume_id' [String]: - volume_id of the snapshot
# * 'display_description' [String]: - snapshot display description
# * 'status' [String]: - snapshot status
# * 'os-extended-snapshot-attributes:project_id' [String]: -
# * 'id' [String]: - snapshot id
# * 'size' [Fixnum]: - size of the snapshot in GB
# * 'os-extended-snapshot-attributes:progress' [String]: -
# * 'display_name' [String]: - display name of snapshot
# * 'created_at' [String]: - creation time of snapshot
# @raise [Fog::Rackspace::Errors::NotFound] - HTTP 404
# @raise [Fog::Rackspace::Errors::BadRequest] - HTTP 400
# @raise [Fog::Rackspace::Errors::InternalServerError] - HTTP 500
# @raise [Fog::Rackspace::Errors::ServiceError]
# @see http://docs.rackspace.com/cbs/api/v1.0/cbs-devguide/content/GET_getSnapshot__v1__tenant_id__snapshots.html
def get_snapshot(snapshot_id)
request(
:expects => [200],
:method => 'GET',
:path => "snapshots/#{snapshot_id}"
)
end
end
class Mock
def get_snapshot(snapshot_id)
snapshot = self.data[:snapshots][snapshot_id]
if snapshot.nil?
raise Fog::Rackspace::BlockStorage::NotFound
else
response(:body => {"snapshot" => snapshot})
end
end
end
end
end
end