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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
module Fog
module Storage
class GoogleXML
class Real
# Get access control list for an Google Storage bucket
#
# ==== Parameters
# * bucket_name<~String> - name of bucket to get access control list for
#
# ==== Returns
# * response<~Excon::Response>:
# * body<~Hash>:
# * 'AccessControlPolicy'<~Hash>
# * 'Owner'<~Hash>:
# * 'DisplayName'<~String> - Display name of object owner
# * 'ID'<~String> - Id of object owner
# * 'AccessControlList'<~Array>:
# * 'Grant'<~Hash>:
# * 'Grantee'<~Hash>:
# * 'DisplayName'<~String> - Display name of grantee
# * 'ID'<~String> - Id of grantee
# or
# * 'URI'<~String> - URI of group to grant access for
# * 'Permission'<~String> - Permission, in [FULL_CONTROL, WRITE, WRITE_ACP, READ, READ_ACP]
#
def get_bucket_acl(bucket_name)
raise ArgumentError.new("bucket_name is required") unless bucket_name
request(:expects => 200,
:headers => {},
:host => "#{bucket_name}.#{@host}",
:idempotent => true,
:method => "GET",
:parser => Fog::Parsers::Storage::Google::AccessControlList.new,
:query => { "acl" => nil })
end
end
class Mock
def get_bucket_acl(bucket_name)
response = Excon::Response.new
if acl = data[:acls][:bucket][bucket_name]
response.status = 200
response.body = acl
else
response.status = 404
raise(Excon::Errors.status_error({ :expects => 200 }, response))
end
response
end
end
end
end
end
|