| OLD | NEW | 
|---|
| 1 # Copyright 2013 The Chromium Authors. All rights reserved. | 1 # Copyright 2013 The Chromium Authors. All rights reserved. | 
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be | 
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. | 
| 4 | 4 | 
| 5 """Implementation of CloudBucket using Google Cloud Storage as the backend.""" | 5 """Implementation of CloudBucket using Google Cloud Storage as the backend.""" | 
| 6 import os | 6 import os | 
| 7 import sys | 7 import sys | 
| 8 | 8 | 
| 9 # boto requires depot_tools/third_party be in the path. Use | 9 # boto requires depot_tools/third_party be in the path. Use | 
| 10 # src/tools/find_depot_tools.py to add this directory. | 10 # src/build/find_depot_tools.py to add this directory. | 
| 11 sys.path.append(os.path.join(os.path.dirname(__file__), os.pardir, os.pardir, | 11 sys.path.append(os.path.join(os.path.dirname(__file__), os.pardir, os.pardir, | 
| 12                              os.pardir, os.pardir, 'tools')) | 12                              os.pardir, os.pardir, 'build')) | 
| 13 import find_depot_tools | 13 import find_depot_tools | 
| 14 DEPOT_TOOLS_PATH = find_depot_tools.add_depot_tools_to_path() | 14 DEPOT_TOOLS_PATH = find_depot_tools.add_depot_tools_to_path() | 
| 15 sys.path.append(os.path.join(os.path.abspath(DEPOT_TOOLS_PATH), 'third_party')) | 15 sys.path.append(os.path.join(os.path.abspath(DEPOT_TOOLS_PATH), 'third_party')) | 
| 16 import boto | 16 import boto | 
| 17 | 17 | 
| 18 from ispy.common import cloud_bucket | 18 from ispy.common import cloud_bucket | 
| 19 | 19 | 
| 20 | 20 | 
| 21 class BotoCloudBucket(cloud_bucket.BaseCloudBucket): | 21 class BotoCloudBucket(cloud_bucket.BaseCloudBucket): | 
| 22   """Interfaces with GS using the boto library.""" | 22   """Interfaces with GS using the boto library.""" | 
| (...skipping 15 matching lines...) Expand all  Loading... | 
| 38     key.key = path | 38     key.key = path | 
| 39     return key | 39     return key | 
| 40 | 40 | 
| 41   # override | 41   # override | 
| 42   def UploadFile(self, path, contents, content_type): | 42   def UploadFile(self, path, contents, content_type): | 
| 43     key = self._GetKey(path) | 43     key = self._GetKey(path) | 
| 44     key.set_metadata('Content-Type', content_type) | 44     key.set_metadata('Content-Type', content_type) | 
| 45     key.set_contents_from_string(contents) | 45     key.set_contents_from_string(contents) | 
| 46     # Open permissions for the appengine account to read/write. | 46     # Open permissions for the appengine account to read/write. | 
| 47     key.add_email_grant('FULL_CONTROL', | 47     key.add_email_grant('FULL_CONTROL', | 
| 48         'ispy.google.com@appspot.gserviceaccount.com') | 48         'ispy.google.com@appspot.gserviceaccount.com') | 
| 49 | 49 | 
| 50   # override | 50   # override | 
| 51   def DownloadFile(self, path): | 51   def DownloadFile(self, path): | 
| 52     key = self._GetKey(path) | 52     key = self._GetKey(path) | 
| 53     if key.exists(): | 53     if key.exists(): | 
| 54       return key.get_contents_as_string() | 54       return key.get_contents_as_string() | 
| 55     else: | 55     else: | 
| 56       raise cloud_bucket.FileNotFoundError | 56       raise cloud_bucket.FileNotFoundError | 
| 57 | 57 | 
| 58   # override | 58   # override | 
| (...skipping 20 matching lines...) Expand all  Loading... | 
| 79     if key.exists(): | 79     if key.exists(): | 
| 80       # Corrects a bug in boto that incorrectly generates a url | 80       # Corrects a bug in boto that incorrectly generates a url | 
| 81       #  to a resource in Google Cloud Storage. | 81       #  to a resource in Google Cloud Storage. | 
| 82       return key.generate_url(3600).replace('AWSAccessKeyId', 'GoogleAccessId') | 82       return key.generate_url(3600).replace('AWSAccessKeyId', 'GoogleAccessId') | 
| 83     else: | 83     else: | 
| 84       raise cloud_bucket.FileNotFoundError(path) | 84       raise cloud_bucket.FileNotFoundError(path) | 
| 85 | 85 | 
| 86   # override | 86   # override | 
| 87   def GetAllPaths(self, prefix): | 87   def GetAllPaths(self, prefix): | 
| 88     return (key.key for key in self.bucket.get_all_keys(prefix=prefix)) | 88     return (key.key for key in self.bucket.get_all_keys(prefix=prefix)) | 
| OLD | NEW | 
|---|