1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00

Add detach_volume request method for block storage service.

This commit is contained in:
Rupak Ganguly 2012-07-09 20:59:20 -04:00
parent 323fb9007c
commit 7b3420779f

View file

@ -0,0 +1,47 @@
module Fog
module Compute
class HP
class Real
# Detach a block storage volume from an existing server
#
# ==== Parameters
# * server_id<~Integer> - Id of server to attach the volume to
# * volume_id<~Integer> - Id of the volume to be attached to the server
#
# ==== Returns
# * response<~Excon::Response>:
# * body: Empty
def detach_volume(server_id, volume_id)
response = request(
:expects => 202,
:method => 'DELETE',
:path => "servers/#{server_id}/os-volume_attachments/#{volume_id}"
)
response
end
end
class Mock # :nodoc:all
def detach_volume(server_id, volume_id)
response = Excon::Response.new
if server = self.data[:servers][server_id]
if server['volumeAttachments'] && server['volumeAttachments'].select {|v| v['volumeId'] == volume_id}
data = server['volumeAttachments'].reject {|v| v['volumeId'] == volume_id}
self.data[:servers][server_id]['volumeAttachments'] = data
response.status = 202
else
raise Fog::Compute::HP::NotFound
end
else
raise Fog::Compute::HP::NotFound
end
response
end
end
end
end
end