/
attach_volume.rb
38 lines (37 loc) · 1.01 KB
/
attach_volume.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
module Fog
module Compute
class OpenStack
class Real
def attach_volume(volume_id, server_id, device)
data = {
'volumeAttachment' => {
'volumeId' => volume_id.to_s,
'device' => device
}
}
request(
:body => Fog::JSON.encode(data),
:expects => [200, 202],
:method => 'POST',
:path => "servers/%s/os-volume_attachments" % [server_id]
)
end
end
class Mock
def attach_volume(volume_id, server_id, device)
response = Excon::Response.new
response.status = 200
data = {
'id' => volume_id,
'volumeId' => volume_id,
'serverId' => server_id,
'device' => device
}
self.data[:volumes][volume_id]['attachments'] << data
response.body = { 'volumeAttachment' => data }
response
end
end
end
end
end