| 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
|
| deleted file mode 100644
|
| index 138ec98593362cd1a0bba2c44ac045c8acff3cf0..0000000000000000000000000000000000000000
|
| --- a/scripts/slave/recipe_modules/cipd/api.py
|
| +++ /dev/null
|
| @@ -1,246 +0,0 @@
|
| -# 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."""
|
| - def __init__(self, *args, **kwargs):
|
| - super(CIPDApi, self).__init__(*args, **kwargs)
|
| - self._cipd_executable = None
|
| - self._cipd_version = None
|
| - self._cipd_credentials = None
|
| -
|
| - def set_service_account_credentials(self, path):
|
| - self._cipd_credentials = path
|
| -
|
| - @property
|
| - def default_bot_service_account_credentials(self):
|
| - # Path to a service account credentials to use to talk to CIPD backend.
|
| - # Deployed by Puppet.
|
| - if self.m.platform.is_win:
|
| - return 'C:\\creds\\service_accounts\\service-account-cipd-builder.json'
|
| - else:
|
| - return '/creds/service_accounts/service-account-cipd-builder.json'
|
| -
|
| - def platform_suffix(self):
|
| - """Use to get full package name that is platform indepdent.
|
| -
|
| - Example:
|
| - >>> 'my/package/%s' % api.cipd.platform_suffix()
|
| - 'my/package/linux-amd64'
|
| - """
|
| - return '%s-%s' % (
|
| - self.m.platform.name.replace('win', 'windows'),
|
| - {
|
| - 32: '386',
|
| - 64: 'amd64',
|
| - }[self.m.platform.bits],
|
| - )
|
| -
|
| - def install_client(self, step_name='install cipd', version=None):
|
| - """Ensures the client is installed.
|
| -
|
| - If you specify version as a hash, make sure its correct platform.
|
| - """
|
| - # TODO(seanmccullough): clean up older CIPD installations.
|
| - step = self.m.python(
|
| - name=step_name,
|
| - script=self.resource('bootstrap.py'),
|
| - args=[
|
| - '--platform', self.platform_suffix(),
|
| - '--dest-directory', self.m.path['slave_build'].join('cipd'),
|
| - '--json-output', self.m.json.output(),
|
| - ] +
|
| - (['--version', version] if version else []),
|
| - step_test_data=lambda: self.test_api.example_install_client(version)
|
| - )
|
| - self._cipd_executable = step.json.output['executable']
|
| - self._cipd_instance_id = step.json.output['instance_id']
|
| -
|
| - step.presentation.step_text = (
|
| - 'cipd instance_id: %s' % self._cipd_instance_id)
|
| - return step
|
| -
|
| - def get_executable(self):
|
| - return self._cipd_executable
|
| -
|
| - def build(self, input_dir, output_package, package_name, install_mode=None):
|
| - assert self._cipd_executable
|
| - assert not install_mode or install_mode in ['copy', 'symlink']
|
| - return self.m.step(
|
| - 'build %s' % self.m.path.basename(package_name),
|
| - [
|
| - self._cipd_executable,
|
| - 'pkg-build',
|
| - '--in', input_dir,
|
| - '--name', package_name,
|
| - '--out', output_package,
|
| - '--json-output', self.m.json.output(),
|
| - ] + (
|
| - ['--install-mode', install_mode] if install_mode else []
|
| - ),
|
| - step_test_data=lambda: self.test_api.example_build(package_name)
|
| - )
|
| -
|
| - def register(self, package_name, package_path, refs=None, tags=None):
|
| - assert self._cipd_executable
|
| -
|
| - cmd = [
|
| - self._cipd_executable,
|
| - 'pkg-register', package_path,
|
| - '--json-output', self.m.json.output(),
|
| - ]
|
| - if self._cipd_credentials:
|
| - cmd.extend(['--service-account-json', self._cipd_credentials])
|
| - if refs:
|
| - for ref in refs:
|
| - cmd.extend(['--ref', ref])
|
| - if tags:
|
| - for tag, value in sorted(tags.items()):
|
| - cmd.extend(['--tag', '%s:%s' % (tag, value)])
|
| - return self.m.step(
|
| - 'register %s' % package_name,
|
| - cmd,
|
| - step_test_data=lambda: self.test_api.example_register(package_name)
|
| - )
|
| -
|
| - def create(self, pkg_def, refs=None, tags=None):
|
| - """Creates a package based on YAML package definition file.
|
| -
|
| - This builds and uploads the package in one step.
|
| - """
|
| - assert self._cipd_executable
|
| - cmd = [
|
| - self._cipd_executable,
|
| - 'create',
|
| - '--pkg-def', pkg_def,
|
| - '--json-output', self.m.json.output(),
|
| - ]
|
| - if self._cipd_credentials:
|
| - cmd.extend(['--service-account-json', self._cipd_credentials])
|
| - if refs:
|
| - for ref in refs:
|
| - cmd.extend(['--ref', ref])
|
| - if tags:
|
| - for tag, value in sorted(tags.items()):
|
| - cmd.extend(['--tag', '%s:%s' % (tag, value)])
|
| - return self.m.step('create %s' % self.m.path.basename(pkg_def), cmd)
|
| -
|
| - def ensure(self, root, packages):
|
| - """Ensures that packages are installed in a given root dir.
|
| -
|
| - packages must be a mapping from package name to its version, where
|
| - * name must be for right platform (see also ``platform_suffix``),
|
| - * version could be either instance_id, or ref, or unique tag.
|
| -
|
| - If installing a package requires credentials, call
|
| - ``set_service_account_credentials`` before calling this function.
|
| - """
|
| - assert self._cipd_executable
|
| -
|
| - package_list = ['%s %s' % (name, version)
|
| - for name, version in sorted(packages.items())]
|
| - list_data = self.m.raw_io.input('\n'.join(package_list))
|
| - bin_path = self.m.path['slave_build'].join('cipd')
|
| - cmd = [
|
| - self._cipd_executable,
|
| - 'ensure',
|
| - '--root', root,
|
| - '--list', list_data,
|
| - '--json-output', self.m.json.output(),
|
| - ]
|
| - if self._cipd_credentials:
|
| - cmd.extend(['--service-account-json', self._cipd_credentials])
|
| - return self.m.step(
|
| - 'ensure_installed', cmd,
|
| - step_test_data=lambda: self.test_api.example_ensure(packages)
|
| - )
|
| -
|
| - def set_tag(self, package_name, version, tags):
|
| - assert self._cipd_executable
|
| -
|
| - cmd = [
|
| - self._cipd_executable,
|
| - 'set-tag', package_name,
|
| - '--version', version,
|
| - '--json-output', self.m.json.output(),
|
| - ]
|
| - if self._cipd_credentials:
|
| - cmd.extend(['--service-account-json', self._cipd_credentials])
|
| - for tag, value in sorted(tags.items()):
|
| - cmd.extend(['--tag', '%s:%s' % (tag, value)])
|
| -
|
| - return self.m.step(
|
| - 'cipd set-tag %s' % package_name,
|
| - cmd,
|
| - step_test_data=lambda: self.test_api.example_set_tag(
|
| - package_name, version
|
| - )
|
| - )
|
| -
|
| - def set_ref(self, package_name, version, refs):
|
| - assert self._cipd_executable
|
| -
|
| - cmd = [
|
| - self._cipd_executable,
|
| - 'set-ref', package_name,
|
| - '--version', version,
|
| - '--json-output', self.m.json.output(),
|
| - ]
|
| - if self._cipd_credentials:
|
| - cmd.extend(['--service-account-json', self._cipd_credentials])
|
| - for r in refs:
|
| - cmd.extend(['--ref', r])
|
| -
|
| - return self.m.step(
|
| - 'cipd set-ref %s' % package_name,
|
| - cmd,
|
| - step_test_data=lambda: self.test_api.example_set_ref(
|
| - package_name, version
|
| - )
|
| - )
|
| -
|
| - def search(self, package_name, tag):
|
| - assert self._cipd_executable
|
| - assert ':' in tag, 'tag must be in a form "k:v"'
|
| -
|
| - cmd = [
|
| - self._cipd_executable,
|
| - 'search', package_name,
|
| - '--tag', tag,
|
| - '--json-output', self.m.json.output(),
|
| - ]
|
| - if self._cipd_credentials:
|
| - cmd.extend(['--service-account-json', self._cipd_credentials])
|
| -
|
| - return self.m.step(
|
| - 'cipd search %s %s' % (package_name, tag),
|
| - cmd,
|
| - step_test_data=lambda: self.test_api.example_search(package_name)
|
| - )
|
| -
|
| - def describe(self, package_name, version,
|
| - test_data_refs=None, test_data_tags=None):
|
| - assert self._cipd_executable
|
| -
|
| - cmd = [
|
| - self._cipd_executable,
|
| - 'describe', package_name,
|
| - '--version', version,
|
| - '--json-output', self.m.json.output(),
|
| - ]
|
| - if self._cipd_credentials:
|
| - cmd.extend(['--service-account-json', self._cipd_credentials])
|
| -
|
| - return self.m.step(
|
| - 'cipd describe %s' % package_name,
|
| - cmd,
|
| - step_test_data=lambda: self.test_api.example_describe(
|
| - package_name, version,
|
| - test_data_refs=test_data_refs,
|
| - test_data_tags=test_data_tags
|
| - )
|
| - )
|
|
|