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:
parent
323fb9007c
commit
7b3420779f
1 changed files with 47 additions and 0 deletions
47
lib/fog/hp/requests/compute/detach_volume.rb
Normal file
47
lib/fog/hp/requests/compute/detach_volume.rb
Normal 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
|
Loading…
Reference in a new issue