mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
47 lines
1.4 KiB
Ruby
47 lines
1.4 KiB
Ruby
module Fog
|
|
module Compute
|
|
class HPV2
|
|
class Real
|
|
|
|
# Detach a block storage volume from an existing server
|
|
#
|
|
# ==== Parameters
|
|
# * 'server_id'<~String> - UUId of server to attach the volume to
|
|
# * 'volume_id'<~String> - UUId 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::HPV2::NotFound
|
|
end
|
|
else
|
|
raise Fog::Compute::HPV2::NotFound
|
|
end
|
|
response
|
|
end
|
|
|
|
end
|
|
end
|
|
end
|
|
end
|