1
0
Fork 0
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:
Alvin Garcia 2012-07-18 13:31:01 +08:00 committed by Nelvin Driz
parent 941d3a89a3
commit 155b0c9157
3 changed files with 43 additions and 0 deletions

View file

@ -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

View file

@ -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']

View 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