Chromium Code Reviews| Index: scripts/slave/recipe_modules/cipd/api.py |
| diff --git a/scripts/slave/recipe_modules/cipd/api.py b/scripts/slave/recipe_modules/cipd/api.py |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..7dd25fc5fd855f05274bf5846881deb75aab04eb |
| --- /dev/null |
| +++ b/scripts/slave/recipe_modules/cipd/api.py |
| @@ -0,0 +1,45 @@ |
| +# Copyright 2015 The Chromium Authors. All rights reserved. |
| +# Use of this source code is governed by a BSD-style license that can be |
| +# found in the LICENSE file. |
| + |
| +from recipe_engine import recipe_api |
| + |
| +class CIPDApi(recipe_api.RecipeApi): |
| + """CIPDApi provides support for CIPD.""" |
| + CLIENT_VERSIONS = { |
| + 'linux-amd64': '9579504cec0336688292f5b0b68c3ed4e288e273', |
| + } |
| + |
| + def install_client(self, step_name): |
| + self.bin_path = self.m.path['slave_build'].join('cipd/cipd_%s' % self.CLIENT_VERSIONS[self.platform_tag()]) |
|
Vadim Sh.
2015/06/30 17:58:35
nit: 80 cols
|
| + package = "infra/tools/cipd/%s" % self.platform_tag() |
| + script_input = { |
| + 'package': package, |
| + 'version': self.CLIENT_VERSIONS[self.platform_tag()], |
| + } |
| + |
| + self.m.python( |
| + name=step_name, |
| + script=self.resource('bootstrap.py'), |
| + stdin=self.m.json.input(script_input)) |
| + |
| + # TODO(seanmccullough): clean up older CIPD installations. |
| + |
| + def platform_tag(self): |
| + # TODO(seanmccullough): get the arch from env instead of hardcoding it. |
| + return "linux-amd64" |
|
Vadim Sh.
2015/06/30 17:58:35
nit: use " or ' consistently. Now some strings are
|
| + |
| + def ensure_installed(self, root): |
| + pkg_list = [] |
| + for pkg_name in sorted(self.c.packages): |
| + pkg_spec = self.c.packages[pkg_name] |
| + pkg_list.append("%s %s" % (pkg_name, pkg_spec['version'])) |
| + |
| + list_data = self.m.raw_io.input("\n".join(pkg_list)) |
| + |
| + self.m.step( |
| + "ensure_installed", |
| + [self.m.path['slave_build'].join('cipd'), "ensure", |
|
Vadim Sh.
2015/06/30 17:58:35
the binary is cipd/cipd_<version>
|
| + "--root", root, "--list", list_data], |
| + ) |
| + |