| OLD | NEW |
| 1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 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 from slave import recipe_api | 5 from recipe_engine import recipe_api |
| 6 | 6 |
| 7 import urllib | 7 import urllib |
| 8 | 8 |
| 9 class UrlApi(recipe_api.RecipeApi): | 9 class UrlApi(recipe_api.RecipeApi): |
| 10 urlencode = staticmethod(urllib.urlencode) | 10 urlencode = staticmethod(urllib.urlencode) |
| 11 | 11 |
| 12 @recipe_api.non_step | 12 @recipe_api.non_step |
| 13 def join(self, *parts): | 13 def join(self, *parts): |
| 14 return '/'.join(str(x).strip('/') for x in parts) | 14 return '/'.join(str(x).strip('/') for x in parts) |
| 15 | 15 |
| 16 def fetch(self, url, step_name=None, attempts=None, **kwargs): | 16 def fetch(self, url, step_name=None, attempts=None, **kwargs): |
| 17 if not step_name: | 17 if not step_name: |
| 18 step_name = 'fetch %s' % url | 18 step_name = 'fetch %s' % url |
| 19 args = [ | 19 args = [ |
| 20 url, | 20 url, |
| 21 '--outfile', self.m.raw_io.output(), | 21 '--outfile', self.m.raw_io.output(), |
| 22 ] | 22 ] |
| 23 if attempts: | 23 if attempts: |
| 24 args.extend(['--attempts', attempts]) | 24 args.extend(['--attempts', attempts]) |
| 25 fetch_result = self.m.python( | 25 fetch_result = self.m.python( |
| 26 name=step_name, | 26 name=step_name, |
| 27 script=self.m.path['build'].join('scripts', 'tools', 'pycurl.py'), | 27 script=self.m.path['build'].join('scripts', 'tools', 'pycurl.py'), |
| 28 args=args, | 28 args=args, |
| 29 **kwargs) | 29 **kwargs) |
| 30 return fetch_result.raw_io.output | 30 return fetch_result.raw_io.output |
| OLD | NEW |