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

Unified Diff: third_party/gsutil/20110627/boto/boto/provider.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/provider.py
diff --git a/third_party/gsutil/20110627/boto/boto/provider.py b/third_party/gsutil/20110627/boto/boto/provider.py
deleted file mode 100644
index 1ef3d86103fe204d3b904e5db729b3fba6dcc33d..0000000000000000000000000000000000000000
--- a/third_party/gsutil/20110627/boto/boto/provider.py
+++ /dev/null
@@ -1,210 +0,0 @@
-# Copyright (c) 2010 Mitch Garnaat http://garnaat.org/
-# Copyright 2010 Google Inc.
-# Copyright (c) 2010, Eucalyptus Systems, Inc.
-# All rights reserved.
-#
-# 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.
-"""
-This class encapsulates the provider-specific header differences.
-"""
-
-import os
-import boto
-from boto import config
-from boto.gs.acl import ACL
-from boto.gs.acl import CannedACLStrings as CannedGSACLStrings
-from boto.s3.acl import CannedACLStrings as CannedS3ACLStrings
-from boto.s3.acl import Policy
-
-HEADER_PREFIX_KEY = 'header_prefix'
-METADATA_PREFIX_KEY = 'metadata_prefix'
-
-AWS_HEADER_PREFIX = 'x-amz-'
-GOOG_HEADER_PREFIX = 'x-goog-'
-
-ACL_HEADER_KEY = 'acl-header'
-AUTH_HEADER_KEY = 'auth-header'
-COPY_SOURCE_HEADER_KEY = 'copy-source-header'
-COPY_SOURCE_VERSION_ID_HEADER_KEY = 'copy-source-version-id-header'
-DELETE_MARKER_HEADER_KEY = 'delete-marker-header'
-DATE_HEADER_KEY = 'date-header'
-METADATA_DIRECTIVE_HEADER_KEY = 'metadata-directive-header'
-RESUMABLE_UPLOAD_HEADER_KEY = 'resumable-upload-header'
-SECURITY_TOKEN_HEADER_KEY = 'security-token-header'
-STORAGE_CLASS_HEADER_KEY = 'storage-class'
-MFA_HEADER_KEY = 'mfa-header'
-VERSION_ID_HEADER_KEY = 'version-id-header'
-
-STORAGE_COPY_ERROR = 'StorageCopyError'
-STORAGE_CREATE_ERROR = 'StorageCreateError'
-STORAGE_DATA_ERROR = 'StorageDataError'
-STORAGE_PERMISSIONS_ERROR = 'StoragePermissionsError'
-STORAGE_RESPONSE_ERROR = 'StorageResponseError'
-
-
-class Provider(object):
-
- CredentialMap = {
- 'aws' : ('aws_access_key_id', 'aws_secret_access_key'),
- 'google' : ('gs_access_key_id', 'gs_secret_access_key'),
- }
-
- AclClassMap = {
- 'aws' : Policy,
- 'google' : ACL
- }
-
- CannedAclsMap = {
- 'aws' : CannedS3ACLStrings,
- 'google' : CannedGSACLStrings
- }
-
- HostKeyMap = {
- 'aws' : 's3',
- 'google' : 'gs'
- }
-
- HeaderInfoMap = {
- 'aws' : {
- HEADER_PREFIX_KEY : AWS_HEADER_PREFIX,
- METADATA_PREFIX_KEY : AWS_HEADER_PREFIX + 'meta-',
- ACL_HEADER_KEY : AWS_HEADER_PREFIX + 'acl',
- AUTH_HEADER_KEY : 'AWS',
- COPY_SOURCE_HEADER_KEY : AWS_HEADER_PREFIX + 'copy-source',
- COPY_SOURCE_VERSION_ID_HEADER_KEY : AWS_HEADER_PREFIX +
- 'copy-source-version-id',
- DATE_HEADER_KEY : AWS_HEADER_PREFIX + 'date',
- DELETE_MARKER_HEADER_KEY : AWS_HEADER_PREFIX + 'delete-marker',
- METADATA_DIRECTIVE_HEADER_KEY : AWS_HEADER_PREFIX +
- 'metadata-directive',
- RESUMABLE_UPLOAD_HEADER_KEY : None,
- SECURITY_TOKEN_HEADER_KEY : AWS_HEADER_PREFIX + 'security-token',
- VERSION_ID_HEADER_KEY : AWS_HEADER_PREFIX + 'version-id',
- STORAGE_CLASS_HEADER_KEY : AWS_HEADER_PREFIX + 'storage-class',
- MFA_HEADER_KEY : AWS_HEADER_PREFIX + 'mfa',
- },
- 'google' : {
- HEADER_PREFIX_KEY : GOOG_HEADER_PREFIX,
- METADATA_PREFIX_KEY : GOOG_HEADER_PREFIX + 'meta-',
- ACL_HEADER_KEY : GOOG_HEADER_PREFIX + 'acl',
- AUTH_HEADER_KEY : 'GOOG1',
- COPY_SOURCE_HEADER_KEY : GOOG_HEADER_PREFIX + 'copy-source',
- COPY_SOURCE_VERSION_ID_HEADER_KEY : GOOG_HEADER_PREFIX +
- 'copy-source-version-id',
- DATE_HEADER_KEY : GOOG_HEADER_PREFIX + 'date',
- DELETE_MARKER_HEADER_KEY : GOOG_HEADER_PREFIX + 'delete-marker',
- METADATA_DIRECTIVE_HEADER_KEY : GOOG_HEADER_PREFIX +
- 'metadata-directive',
- RESUMABLE_UPLOAD_HEADER_KEY : GOOG_HEADER_PREFIX + 'resumable',
- SECURITY_TOKEN_HEADER_KEY : GOOG_HEADER_PREFIX + 'security-token',
- # Note that this version header is not to be confused with
- # the Google Storage 'x-goog-api-version' header.
- VERSION_ID_HEADER_KEY : GOOG_HEADER_PREFIX + 'version-id',
- STORAGE_CLASS_HEADER_KEY : None,
- MFA_HEADER_KEY : None,
- }
- }
-
- ErrorMap = {
- 'aws' : {
- STORAGE_COPY_ERROR : boto.exception.S3CopyError,
- STORAGE_CREATE_ERROR : boto.exception.S3CreateError,
- STORAGE_DATA_ERROR : boto.exception.S3DataError,
- STORAGE_PERMISSIONS_ERROR : boto.exception.S3PermissionsError,
- STORAGE_RESPONSE_ERROR : boto.exception.S3ResponseError,
- },
- 'google' : {
- STORAGE_COPY_ERROR : boto.exception.GSCopyError,
- STORAGE_CREATE_ERROR : boto.exception.GSCreateError,
- STORAGE_DATA_ERROR : boto.exception.GSDataError,
- STORAGE_PERMISSIONS_ERROR : boto.exception.GSPermissionsError,
- STORAGE_RESPONSE_ERROR : boto.exception.GSResponseError,
- }
- }
-
- def __init__(self, name, access_key=None, secret_key=None):
- self.host = None
- self.access_key = access_key
- self.secret_key = secret_key
- self.name = name
- self.acl_class = self.AclClassMap[self.name]
- self.canned_acls = self.CannedAclsMap[self.name]
- self.get_credentials(access_key, secret_key)
- self.configure_headers()
- self.configure_errors()
- # allow config file to override default host
- host_opt_name = '%s_host' % self.HostKeyMap[self.name]
- if config.has_option('Credentials', host_opt_name):
- self.host = config.get('Credentials', host_opt_name)
-
- def get_credentials(self, access_key=None, secret_key=None):
- access_key_name, secret_key_name = self.CredentialMap[self.name]
- if access_key is not None:
- self.access_key = access_key
- elif os.environ.has_key(access_key_name.upper()):
- self.access_key = os.environ[access_key_name.upper()]
- elif config.has_option('Credentials', access_key_name):
- self.access_key = config.get('Credentials', access_key_name)
-
- if secret_key is not None:
- self.secret_key = secret_key
- elif os.environ.has_key(secret_key_name.upper()):
- self.secret_key = os.environ[secret_key_name.upper()]
- elif config.has_option('Credentials', secret_key_name):
- self.secret_key = config.get('Credentials', secret_key_name)
- if isinstance(self.secret_key, unicode):
- # the secret key must be bytes and not unicode to work
- # properly with hmac.new (see http://bugs.python.org/issue5285)
- self.secret_key = str(self.secret_key)
-
- def configure_headers(self):
- header_info_map = self.HeaderInfoMap[self.name]
- self.metadata_prefix = header_info_map[METADATA_PREFIX_KEY]
- self.header_prefix = header_info_map[HEADER_PREFIX_KEY]
- self.acl_header = header_info_map[ACL_HEADER_KEY]
- self.auth_header = header_info_map[AUTH_HEADER_KEY]
- self.copy_source_header = header_info_map[COPY_SOURCE_HEADER_KEY]
- self.copy_source_version_id = header_info_map[
- COPY_SOURCE_VERSION_ID_HEADER_KEY]
- self.date_header = header_info_map[DATE_HEADER_KEY]
- self.delete_marker = header_info_map[DELETE_MARKER_HEADER_KEY]
- self.metadata_directive_header = (
- header_info_map[METADATA_DIRECTIVE_HEADER_KEY])
- self.security_token_header = header_info_map[SECURITY_TOKEN_HEADER_KEY]
- self.resumable_upload_header = (
- header_info_map[RESUMABLE_UPLOAD_HEADER_KEY])
- self.storage_class_header = header_info_map[STORAGE_CLASS_HEADER_KEY]
- self.version_id = header_info_map[VERSION_ID_HEADER_KEY]
- self.mfa_header = header_info_map[MFA_HEADER_KEY]
-
- def configure_errors(self):
- error_map = self.ErrorMap[self.name]
- self.storage_copy_error = error_map[STORAGE_COPY_ERROR]
- self.storage_create_error = error_map[STORAGE_CREATE_ERROR]
- self.storage_data_error = error_map[STORAGE_DATA_ERROR]
- self.storage_permissions_error = error_map[STORAGE_PERMISSIONS_ERROR]
- self.storage_response_error = error_map[STORAGE_RESPONSE_ERROR]
-
- def get_provider_name(self):
- return self.HostKeyMap[self.name]
-
-# Static utility method for getting default Provider.
-def get_default():
- return Provider('aws')
« no previous file with comments | « third_party/gsutil/20110627/boto/boto/plugin.py ('k') | third_party/gsutil/20110627/boto/boto/pyami/__init__.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698