2016-06-04

run_isolated.py: install CIPD packages

add cipd options to run_isolated.py:
--cipd-package: package name and version, both required. Can be specified multiple times
--cipd-server: URL of CIPD server
--cipd-client-package: CIPD client package to install
--cipd-cache: cache dir for CIPD clients, client versions and packages

expand ${platform} and ${os_ver} parameters in package name with values
read from current machine.

expand ${CIPD_PACKAGE} and ${EXE_SUFFIX} parameters on command line with
path to CIPD package installation dir and (.exe|) suffix.

cipd client installation:
- lookup client version (typically a git_revision tag) in version cache
(typically DiskCache)
- on cache miss, resolve version to instance id using CIPD backend API
- lookup client instance id in client cache (DiskCache)
- on cache miss, fetch it from cipd backend / GS, put to disk cache and
make executable

package installation:
- put list of packages to a file
- use cipd-ensure to install packages
- pass -verbose and log all cipd-ensure output: stdout->INFO,
stderr->DEBUGpass -verbose and log all cipd-ensure output:
stdout->INFO, stderr->DEBUG. Typically there is only stderr
- set -cache-dir flag to "<cipd-cache flag value>/packages"

R=maruel@chromium.org, vadimsh@chromium.org
BUG=

Show more