mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
[openstack|image] Added update_members function
This commit is contained in:
parent
941d3a89a3
commit
155b0c9157
3 changed files with 43 additions and 0 deletions
|
@ -24,6 +24,7 @@ module Fog
|
|||
request :create_image
|
||||
request :update_image
|
||||
request :get_image_members
|
||||
request :update_image_members
|
||||
request :get_shared_images
|
||||
request :add_member_to_image
|
||||
request :remove_member_from_image
|
||||
|
|
|
@ -69,6 +69,11 @@ module Fog
|
|||
connection.remove_member_from_image(self.id, member_id)
|
||||
end
|
||||
|
||||
def update_members(members)
|
||||
requires :id
|
||||
connection.update_image_members(self.id, members)
|
||||
end
|
||||
|
||||
def members
|
||||
requires :id
|
||||
connection.get_image_members(self.id).body['members']
|
||||
|
|
37
lib/fog/openstack/requests/image/update_image_members.rb
Normal file
37
lib/fog/openstack/requests/image/update_image_members.rb
Normal file
|
@ -0,0 +1,37 @@
|
|||
module Fog
|
||||
module Image
|
||||
class OpenStack
|
||||
class Real
|
||||
def update_image_members(image_id, members)
|
||||
# Sample members
|
||||
# [
|
||||
# {'member_id' => 'tenant1', 'can_share' => true },
|
||||
# {'member_id' => 'tenant2', 'can_share' => false }
|
||||
# ]
|
||||
data = { 'memberships' => members }
|
||||
|
||||
request(
|
||||
:body => MultiJson.encode(data),
|
||||
:expects => [200, 202],
|
||||
:method => 'PUT',
|
||||
:path => "images/#{image_id}/members"
|
||||
)
|
||||
end
|
||||
end # class Real
|
||||
|
||||
class Mock
|
||||
def update_image_members(image_id, members)
|
||||
response = Excon::Response.new
|
||||
response.status = [200, 202][rand(1)]
|
||||
response.body = {
|
||||
'members' => [
|
||||
{ 'member_id'=>'ff528b20431645ebb5fa4b0a71ca002f', 'can_share' => false },
|
||||
{ 'member_id'=>'ff528b20431645ebb5fa4b0a71ca002f', 'can_share' => true }
|
||||
]
|
||||
}
|
||||
response
|
||||
end
|
||||
end # class Mock
|
||||
end # class OpenStack
|
||||
end # module Identity
|
||||
end # module Fog
|
Loading…
Add table
Reference in a new issue