Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(255)

Unified Diff: third_party/gsutil/20110627/boto/boto/gs/bucket.py

Issue 10199002: Upgrade gsutil to 3.4 (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Addressed comments Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/gsutil/20110627/boto/boto/gs/bucket.py
diff --git a/third_party/gsutil/20110627/boto/boto/gs/bucket.py b/third_party/gsutil/20110627/boto/boto/gs/bucket.py
deleted file mode 100644
index 601fc774416cfb6132b6c708405b90360d48e391..0000000000000000000000000000000000000000
--- a/third_party/gsutil/20110627/boto/boto/gs/bucket.py
+++ /dev/null
@@ -1,192 +0,0 @@
-# Copyright 2010 Google Inc.
-#
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the
-# "Software"), to deal in the Software without restriction, including
-# without limitation the rights to use, copy, modify, merge, publish, dis-
-# tribute, sublicense, and/or sell copies of the Software, and to permit
-# persons to whom the Software is furnished to do so, subject to the fol-
-# lowing conditions:
-#
-# The above copyright notice and this permission notice shall be included
-# in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
-# ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
-# SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-# IN THE SOFTWARE.
-
-import boto
-from boto import handler
-from boto.exception import InvalidAclError
-from boto.gs.acl import ACL, CannedACLStrings
-from boto.gs.acl import SupportedPermissions as GSPermissions
-from boto.gs.key import Key as GSKey
-from boto.s3.acl import Policy
-from boto.s3.bucket import Bucket as S3Bucket
-import xml.sax
-
-class Bucket(S3Bucket):
-
- def __init__(self, connection=None, name=None, key_class=GSKey):
- super(Bucket, self).__init__(connection, name, key_class)
-
- def set_acl(self, acl_or_str, key_name='', headers=None, version_id=None):
- if isinstance(acl_or_str, Policy):
- raise InvalidAclError('Attempt to set S3 Policy on GS ACL')
- elif isinstance(acl_or_str, ACL):
- self.set_xml_acl(acl_or_str.to_xml(), key_name, headers=headers)
- else:
- self.set_canned_acl(acl_or_str, key_name, headers=headers)
-
- def get_acl(self, key_name='', headers=None, version_id=None):
- response = self.connection.make_request('GET', self.name, key_name,
- query_args='acl', headers=headers)
- body = response.read()
- if response.status == 200:
- acl = ACL(self)
- h = handler.XmlHandler(acl, self)
- xml.sax.parseString(body, h)
- return acl
- else:
- raise self.connection.provider.storage_response_error(
- response.status, response.reason, body)
-
- def set_canned_acl(self, acl_str, key_name='', headers=None,
- version_id=None):
- assert acl_str in CannedACLStrings
-
- if headers:
- headers[self.connection.provider.acl_header] = acl_str
- else:
- headers={self.connection.provider.acl_header: acl_str}
-
- query_args='acl'
- if version_id:
- query_args += '&versionId=%s' % version_id
- response = self.connection.make_request('PUT', self.name, key_name,
- headers=headers, query_args=query_args)
- body = response.read()
- if response.status != 200:
- raise self.connection.provider.storage_response_error(
- response.status, response.reason, body)
-
- # Method with same signature as boto.s3.bucket.Bucket.add_email_grant(),
- # to allow polymorphic treatment at application layer.
- def add_email_grant(self, permission, email_address,
- recursive=False, headers=None):
- """
- Convenience method that provides a quick way to add an email grant
- to a bucket. This method retrieves the current ACL, creates a new
- grant based on the parameters passed in, adds that grant to the ACL
- and then PUT's the new ACL back to GS.
-
- :type permission: string
- :param permission: The permission being granted. Should be one of:
- (READ, WRITE, FULL_CONTROL).
-
- :type email_address: string
- :param email_address: The email address associated with the GS
- account your are granting the permission to.
-
- :type recursive: boolean
- :param recursive: A boolean value to controls whether the call
- will apply the grant to all keys within the bucket
- or not. The default value is False. By passing a
- True value, the call will iterate through all keys
- in the bucket and apply the same grant to each key.
- CAUTION: If you have a lot of keys, this could take
- a long time!
- """
- if permission not in GSPermissions:
- raise self.connection.provider.storage_permissions_error(
- 'Unknown Permission: %s' % permission)
- acl = self.get_acl(headers=headers)
- acl.add_email_grant(permission, email_address)
- self.set_acl(acl, headers=headers)
- if recursive:
- for key in self:
- key.add_email_grant(permission, email_address, headers=headers)
-
- # Method with same signature as boto.s3.bucket.Bucket.add_user_grant(),
- # to allow polymorphic treatment at application layer.
- def add_user_grant(self, permission, user_id, recursive=False, headers=None):
- """
- Convenience method that provides a quick way to add a canonical user grant to a bucket.
- This method retrieves the current ACL, creates a new grant based on the parameters
- passed in, adds that grant to the ACL and then PUTs the new ACL back to GS.
-
- :type permission: string
- :param permission: The permission being granted. Should be one of:
- (READ|WRITE|FULL_CONTROL)
-
- :type user_id: string
- :param user_id: The canonical user id associated with the GS account you are granting
- the permission to.
-
- :type recursive: bool
- :param recursive: A boolean value to controls whether the call
- will apply the grant to all keys within the bucket
- or not. The default value is False. By passing a
- True value, the call will iterate through all keys
- in the bucket and apply the same grant to each key.
- CAUTION: If you have a lot of keys, this could take
- a long time!
- """
- if permission not in GSPermissions:
- raise self.connection.provider.storage_permissions_error(
- 'Unknown Permission: %s' % permission)
- acl = self.get_acl(headers=headers)
- acl.add_user_grant(permission, user_id)
- self.set_acl(acl, headers=headers)
- if recursive:
- for key in self:
- key.add_user_grant(permission, user_id, headers=headers)
-
- def add_group_email_grant(self, permission, email_address, recursive=False,
- headers=None):
- """
- Convenience method that provides a quick way to add an email group
- grant to a bucket. This method retrieves the current ACL, creates a new
- grant based on the parameters passed in, adds that grant to the ACL and
- then PUT's the new ACL back to GS.
-
- :type permission: string
- :param permission: The permission being granted. Should be one of:
- READ|WRITE|FULL_CONTROL
- See http://code.google.com/apis/storage/docs/developer-guide.html#authorization
- for more details on permissions.
-
- :type email_address: string
- :param email_address: The email address associated with the Google
- Group to which you are granting the permission.
-
- :type recursive: bool
- :param recursive: A boolean value to controls whether the call
- will apply the grant to all keys within the bucket
- or not. The default value is False. By passing a
- True value, the call will iterate through all keys
- in the bucket and apply the same grant to each key.
- CAUTION: If you have a lot of keys, this could take
- a long time!
- """
- if permission not in GSPermissions:
- raise self.connection.provider.storage_permissions_error(
- 'Unknown Permission: %s' % permission)
- acl = self.get_acl(headers=headers)
- acl.add_group_email_grant(permission, email_address)
- self.set_acl(acl, headers=headers)
- if recursive:
- for key in self:
- key.add_group_email_grant(permission, email_address,
- headers=headers)
-
- # Method with same input signature as boto.s3.bucket.Bucket.list_grants()
- # (but returning different object type), to allow polymorphic treatment
- # at application layer.
- def list_grants(self, headers=None):
- acl = self.get_acl(headers=headers)
- return acl.entries
« no previous file with comments | « third_party/gsutil/20110627/boto/boto/gs/acl.py ('k') | third_party/gsutil/20110627/boto/boto/gs/connection.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698