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

Side by Side Diff: scripts/slave/recipe_modules/gsutil/api.py

Issue 1274723004: Converted Android Chromedriver buildbot scripts to recipes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build
Patch Set: Fixed nits. Created 4 years, 5 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 import re 5 import re
6 6
7 from recipe_engine import recipe_api 7 from recipe_engine import recipe_api
8 8
9 class GSUtilApi(recipe_api.RecipeApi): 9 class GSUtilApi(recipe_api.RecipeApi):
10 def __call__(self, cmd, name=None, use_retry_wrapper=True, version=None, 10 def __call__(self, cmd, name=None, use_retry_wrapper=True, version=None,
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 full_dest = 'gs://%s/%s' % (dest_bucket, dest) 107 full_dest = 'gs://%s/%s' % (dest_bucket, dest)
108 cmd = ['cp'] + args + [full_source, full_dest] 108 cmd = ['cp'] + args + [full_source, full_dest]
109 name = kwargs.pop('name', 'copy') 109 name = kwargs.pop('name', 'copy')
110 110
111 result = self(cmd, name, **kwargs) 111 result = self(cmd, name, **kwargs)
112 112
113 if link_name: 113 if link_name:
114 result.presentation.links[link_name] = self._http_url( 114 result.presentation.links[link_name] = self._http_url(
115 dest_bucket, dest, unauthenticated_url=unauthenticated_url) 115 dest_bucket, dest, unauthenticated_url=unauthenticated_url)
116 116
117 def list(self, url, args=None, **kwargs):
118 args = args or []
119 url = self._normalize_url(url)
120 cmd = ['ls'] + args + [url]
121 name = kwargs.pop('name', 'list')
122 return self(cmd, name, **kwargs)
123
117 def signurl(self, private_key_file, bucket, dest, args=None, **kwargs): 124 def signurl(self, private_key_file, bucket, dest, args=None, **kwargs):
118 args = args or [] 125 args = args or []
119 full_source = 'gs://%s/%s' % (bucket, dest) 126 full_source = 'gs://%s/%s' % (bucket, dest)
120 cmd = ['signurl'] + args + [private_key_file, full_source] 127 cmd = ['signurl'] + args + [private_key_file, full_source]
121 name = kwargs.pop('name', 'signurl') 128 name = kwargs.pop('name', 'signurl')
122 return self(cmd, name, **kwargs) 129 return self(cmd, name, **kwargs)
123 130
124 def remove_url(self, url, args=None, **kwargs): 131 def remove_url(self, url, args=None, **kwargs):
125 args = args or [] 132 args = args or []
126 url = self._normalize_url(url) 133 url = self._normalize_url(url)
(...skipping 20 matching lines...) Expand all
147 args = ['--poll', 154 args = ['--poll',
148 '--url', url, 155 '--url', url,
149 '--dst', destination, 156 '--dst', destination,
150 '--poll-interval', str(poll_interval), 157 '--poll-interval', str(poll_interval),
151 '--timeout', str(timeout)] 158 '--timeout', str(timeout)]
152 return self.m.python(name, 159 return self.m.python(name,
153 gsutil_download_path, 160 gsutil_download_path,
154 args, 161 args,
155 cwd=self.m.path['slave_build']) 162 cwd=self.m.path['slave_build'])
156 163
164 def download_latest_file(self, base_url, partial_name, destination,
165 name='Download latest file from GS'):
166 """Get the latest archived object with the given base url and partial name.
167
168 Args:
169 base_url: Base Google Storage archive URL (gs://...) containing the build.
170 partial_name: Partial name of the archive file to download.
171 destination: Destination file/directory where the file will be downloaded.
172 name: The name of the step.
173 """
174 gsutil_download_path = self.m.path['build'].join(
175 'scripts', 'slave', 'gsutil_download.py')
176 args = ['--url', base_url,
177 '--dst', destination,
178 '--partial-name', partial_name]
179 return self.m.python(name,
180 gsutil_download_path,
181 args,
182 cwd=self.m.path['slave_build'])
183
157 def _generate_metadata_args(self, metadata): 184 def _generate_metadata_args(self, metadata):
158 result = [] 185 result = []
159 if metadata: 186 if metadata:
160 for k, v in sorted(metadata.iteritems(), key=lambda (k, _): k): 187 for k, v in sorted(metadata.iteritems(), key=lambda (k, _): k):
161 field = self._get_metadata_field(k) 188 field = self._get_metadata_field(k)
162 param = (field) if v is None else ('%s:%s' % (field, v)) 189 param = (field) if v is None else ('%s:%s' % (field, v))
163 result += ['-h', param] 190 result += ['-h', param]
164 return result 191 return result
165 192
166 def _normalize_url(self, url): 193 def _normalize_url(self, url):
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
202 'Content-Language', 229 'Content-Language',
203 'Content-MD5', 230 'Content-MD5',
204 'Content-Type', 231 'Content-Type',
205 ): 232 ):
206 return name 233 return name
207 234
208 # Add provider prefix 235 # Add provider prefix
209 if not provider_prefix: 236 if not provider_prefix:
210 provider_prefix = 'x-goog-meta' 237 provider_prefix = 'x-goog-meta'
211 return '%s-%s' % (provider_prefix, name) 238 return '%s-%s' % (provider_prefix, name)
OLDNEW
« no previous file with comments | « scripts/slave/recipe_modules/file/api.py ('k') | scripts/slave/recipe_modules/gsutil/example.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698