Use vpython to execute gsutil in virtualenv
This addresses the issue with BOTO configuration which was breaking
Fuchsia bots when used with hermetic bundles.
Change-Id: Id4b0c4711f17310ea1893f84d2bf06a1cf645ce9
diff --git a/recipe_modules/gsutil/api.py b/recipe_modules/gsutil/api.py
index 01c92bb..c4a73dd 100644
--- a/recipe_modules/gsutil/api.py
+++ b/recipe_modules/gsutil/api.py
@@ -13,20 +13,12 @@
def __init__(self, *args, **kwargs):
super(GSUtilApi, self).__init__(*args, **kwargs)
self._gsutil_tool = None
- self._boto_config = None
-
- def set_boto_config(self, path):
- self._boto_config = path
-
- @property
- def default_boto_config(self):
- return self.m.path.expanduser(self.m.path.join('~', '.boto'))
def __call__(self, *args, **kwargs):
"""Return a step to run arbitrary gsutil command."""
assert self._gsutil_tool
name = kwargs.pop('name', 'gsutil ' + args[0])
-
+ infra_step = kwargs.pop('infra_step', True)
cmd_prefix = []
# Note that metadata arguments have to be passed before the command.
metadata = kwargs.pop('metadata', [])
@@ -46,13 +38,9 @@
'-o',
'GSUtil:software_update_check_period=0',
])
-
- env = self.m.context.env
- if self._boto_config:
- env.setdefault('BOTO_CONFIG', self._boto_config)
-
- with self.m.context(env=env):
- return self.m.python(name, self._gsutil_tool, cmd_prefix + list(args), **kwargs)
+ return self.m.python(name, self._gsutil_tool, cmd_prefix + list(args),
+ venv=self.resource('gsutil.vpython'),
+ infra_step=infra_step, **kwargs)
@recipe_api.non_step
def normalize(self, url):
diff --git a/recipe_modules/gsutil/examples/full.expected/basic.json b/recipe_modules/gsutil/examples/full.expected/basic.json
index b924316..fcb04af 100644
--- a/recipe_modules/gsutil/examples/full.expected/basic.json
+++ b/recipe_modules/gsutil/examples/full.expected/basic.json
@@ -31,7 +31,9 @@
},
{
"cmd": [
- "python",
+ "vpython",
+ "-spec",
+ "RECIPE_MODULE[infra::gsutil]/resources/gsutil.vpython",
"-u",
"[START_DIR]/cipd/gsutil/gsutil",
"-h",
@@ -48,9 +50,7 @@
"[TMP_BASE]/file",
"gs://example/path/to/file"
],
- "env": {
- "BOTO_CONFIG": "[HOME]/.boto"
- },
+ "infra_step": true,
"name": "gsutil cp",
"~followup_annotations": [
"@@@STEP_LINK@gsutil.upload@https://storage.googleapis.com/example/path/to/file@@@"
@@ -58,7 +58,9 @@
},
{
"cmd": [
- "python",
+ "vpython",
+ "-spec",
+ "RECIPE_MODULE[infra::gsutil]/resources/gsutil.vpython",
"-u",
"[START_DIR]/cipd/gsutil/gsutil",
"-h",
@@ -78,9 +80,7 @@
"[TMP_BASE]/file",
"gs://example/path/to/file"
],
- "env": {
- "BOTO_CONFIG": "[HOME]/.boto"
- },
+ "infra_step": true,
"name": "gsutil cp (2)",
"~followup_annotations": [
"@@@STEP_LINK@gsutil.upload@https://storage.googleapis.com/example/path/to/file@@@"
@@ -88,7 +88,9 @@
},
{
"cmd": [
- "python",
+ "vpython",
+ "-spec",
+ "RECIPE_MODULE[infra::gsutil]/resources/gsutil.vpython",
"-u",
"[START_DIR]/cipd/gsutil/gsutil",
"-o",
@@ -97,14 +99,14 @@
"gs://example/some/random/path/**",
"gs://example/staging"
],
- "env": {
- "BOTO_CONFIG": "[HOME]/.boto"
- },
+ "infra_step": true,
"name": "gsutil cp (3)"
},
{
"cmd": [
- "python",
+ "vpython",
+ "-spec",
+ "RECIPE_MODULE[infra::gsutil]/resources/gsutil.vpython",
"-u",
"[START_DIR]/cipd/gsutil/gsutil",
"-o",
@@ -113,14 +115,14 @@
"gs://example/path/to/file",
"[TMP_BASE]/file"
],
- "env": {
- "BOTO_CONFIG": "[HOME]/.boto"
- },
+ "infra_step": true,
"name": "gsutil download url"
},
{
"cmd": [
- "python",
+ "vpython",
+ "-spec",
+ "RECIPE_MODULE[infra::gsutil]/resources/gsutil.vpython",
"-u",
"[START_DIR]/cipd/gsutil/gsutil",
"-o",
@@ -129,14 +131,14 @@
"gs://example/staging/to/file",
"[TMP_BASE]/erang"
],
- "env": {
- "BOTO_CONFIG": "[HOME]/.boto"
- },
+ "infra_step": true,
"name": "gsutil cp (4)"
},
{
"cmd": [
- "python",
+ "vpython",
+ "-spec",
+ "RECIPE_MODULE[infra::gsutil]/resources/gsutil.vpython",
"-u",
"[START_DIR]/cipd/gsutil/gsutil",
"-o",
@@ -146,14 +148,14 @@
"example",
"path/to/file"
],
- "env": {
- "BOTO_CONFIG": "[HOME]/.boto"
- },
+ "infra_step": true,
"name": "gsutil signurl"
},
{
"cmd": [
- "python",
+ "vpython",
+ "-spec",
+ "RECIPE_MODULE[infra::gsutil]/resources/gsutil.vpython",
"-u",
"[START_DIR]/cipd/gsutil/gsutil",
"-o",
@@ -161,14 +163,14 @@
"rm",
"gs://example/staging/to/file"
],
- "env": {
- "BOTO_CONFIG": "[HOME]/.boto"
- },
+ "infra_step": true,
"name": "gsutil rm"
},
{
"cmd": [
- "python",
+ "vpython",
+ "-spec",
+ "RECIPE_MODULE[infra::gsutil]/resources/gsutil.vpython",
"-u",
"[START_DIR]/cipd/gsutil/gsutil",
"-o",
@@ -176,14 +178,14 @@
"ls",
"gs://example/foo"
],
- "env": {
- "BOTO_CONFIG": "[HOME]/.boto"
- },
+ "infra_step": true,
"name": "gsutil ls"
},
{
"cmd": [
- "python",
+ "vpython",
+ "-spec",
+ "RECIPE_MODULE[infra::gsutil]/resources/gsutil.vpython",
"-u",
"[START_DIR]/cipd/gsutil/gsutil",
"-o",
@@ -192,9 +194,7 @@
"gs://example/path/to/file",
"gs://example/staging/to/file"
],
- "env": {
- "BOTO_CONFIG": "[HOME]/.boto"
- },
+ "infra_step": true,
"name": "gsutil cp (5)",
"~followup_annotations": [
"@@@STEP_LINK@gsutil.copy@https://storage.cloud.google.com/example/staging/to/file@@@"
@@ -202,7 +202,9 @@
},
{
"cmd": [
- "python",
+ "vpython",
+ "-spec",
+ "RECIPE_MODULE[infra::gsutil]/resources/gsutil.vpython",
"-u",
"[START_DIR]/cipd/gsutil/gsutil",
"-o",
@@ -210,9 +212,7 @@
"cat",
"gs://example/foo"
],
- "env": {
- "BOTO_CONFIG": "[HOME]/.boto"
- },
+ "infra_step": true,
"name": "gsutil cat"
},
{
diff --git a/recipe_modules/gsutil/examples/full.py b/recipe_modules/gsutil/examples/full.py
index 17c48f8..daec5ff 100644
--- a/recipe_modules/gsutil/examples/full.py
+++ b/recipe_modules/gsutil/examples/full.py
@@ -10,7 +10,6 @@
def RunSteps(api):
api.gsutil.ensure_gsutil()
- api.gsutil.set_boto_config(api.gsutil.default_boto_config)
local_file = api.path['tmp_base'].join('file')
bucket = 'example'
diff --git a/recipe_modules/gsutil/resources/gsutil.vpython b/recipe_modules/gsutil/resources/gsutil.vpython
new file mode 100644
index 0000000..680bbed
--- /dev/null
+++ b/recipe_modules/gsutil/resources/gsutil.vpython
@@ -0,0 +1,10 @@
+# vpython VirtualEnv installation package for "gsutil".
+
+wheel <
+ name: "infra/python/wheels/google_compute_engine-py2_py3"
+ version: "version:2.3.7"
+>
+wheel <
+ name: "infra/python/wheels/boto-py2_py3"
+ version: "version:2.47.0"
+>
diff --git a/recipes/fuchsia.expected/arm64_skip_tests.json b/recipes/fuchsia.expected/arm64_skip_tests.json
index 96d771d..fc55376 100644
--- a/recipes/fuchsia.expected/arm64_skip_tests.json
+++ b/recipes/fuchsia.expected/arm64_skip_tests.json
@@ -143,7 +143,9 @@
},
{
"cmd": [
- "python",
+ "vpython",
+ "-spec",
+ "RECIPE_MODULE[infra::gsutil]/resources/gsutil.vpython",
"-u",
"[START_DIR]/cipd/gsutil/gsutil",
"-o",
@@ -152,9 +154,6 @@
"[TMP_BASE]/jiri.snapshot",
"gs://fuchsia/jiri/snapshots/8ac5404b688b34f2d34d1c8a648413aca30b7a97"
],
- "env": {
- "BOTO_CONFIG": "[HOME]/.boto"
- },
"infra_step": true,
"name": "upload jiri.snapshot",
"~followup_annotations": [
@@ -361,7 +360,9 @@
},
{
"cmd": [
- "python",
+ "vpython",
+ "-spec",
+ "RECIPE_MODULE[infra::gsutil]/resources/gsutil.vpython",
"-u",
"[START_DIR]/cipd/gsutil/gsutil",
"-o",
@@ -370,9 +371,7 @@
"[TMP_BASE]/fuchsia.tar.gz",
"gs://fuchsia-archive/cd963da3f17c3acc611a9b9c1b272fcd6ae39909"
],
- "env": {
- "BOTO_CONFIG": "[HOME]/.boto"
- },
+ "infra_step": true,
"name": "upload fuchsia.tar.gz",
"~followup_annotations": [
"@@@STEP_LINK@fuchsia.tar.gz@https://storage.cloud.google.com/fuchsia-archive/cd963da3f17c3acc611a9b9c1b272fcd6ae39909@@@"
diff --git a/recipes/fuchsia.expected/backtrace.json b/recipes/fuchsia.expected/backtrace.json
index 9058123..9d4baab 100644
--- a/recipes/fuchsia.expected/backtrace.json
+++ b/recipes/fuchsia.expected/backtrace.json
@@ -175,7 +175,9 @@
},
{
"cmd": [
- "python",
+ "vpython",
+ "-spec",
+ "RECIPE_MODULE[infra::gsutil]/resources/gsutil.vpython",
"-u",
"[START_DIR]/cipd/gsutil/gsutil",
"-o",
@@ -184,9 +186,6 @@
"[TMP_BASE]/jiri.snapshot",
"gs://fuchsia/jiri/snapshots/8ac5404b688b34f2d34d1c8a648413aca30b7a97"
],
- "env": {
- "BOTO_CONFIG": "[HOME]/.boto"
- },
"infra_step": true,
"name": "upload jiri.snapshot",
"~followup_annotations": [
diff --git a/recipes/fuchsia.expected/boot_module.json b/recipes/fuchsia.expected/boot_module.json
index 6bf9bf7..32bf143 100644
--- a/recipes/fuchsia.expected/boot_module.json
+++ b/recipes/fuchsia.expected/boot_module.json
@@ -175,7 +175,9 @@
},
{
"cmd": [
- "python",
+ "vpython",
+ "-spec",
+ "RECIPE_MODULE[infra::gsutil]/resources/gsutil.vpython",
"-u",
"[START_DIR]/cipd/gsutil/gsutil",
"-o",
@@ -184,9 +186,6 @@
"[TMP_BASE]/jiri.snapshot",
"gs://fuchsia/jiri/snapshots/8ac5404b688b34f2d34d1c8a648413aca30b7a97"
],
- "env": {
- "BOTO_CONFIG": "[HOME]/.boto"
- },
"infra_step": true,
"name": "upload jiri.snapshot",
"~followup_annotations": [
@@ -449,7 +448,9 @@
},
{
"cmd": [
- "python",
+ "vpython",
+ "-spec",
+ "RECIPE_MODULE[infra::gsutil]/resources/gsutil.vpython",
"-u",
"[START_DIR]/cipd/gsutil/gsutil",
"-o",
@@ -458,9 +459,7 @@
"[TMP_BASE]/fuchsia.tar.gz",
"gs://fuchsia-archive/cd963da3f17c3acc611a9b9c1b272fcd6ae39909"
],
- "env": {
- "BOTO_CONFIG": "[HOME]/.boto"
- },
+ "infra_step": true,
"name": "upload fuchsia.tar.gz",
"~followup_annotations": [
"@@@STEP_LINK@fuchsia.tar.gz@https://storage.cloud.google.com/fuchsia-archive/cd963da3f17c3acc611a9b9c1b272fcd6ae39909@@@"
diff --git a/recipes/fuchsia.expected/default.json b/recipes/fuchsia.expected/default.json
index a648bad..f99d79b 100644
--- a/recipes/fuchsia.expected/default.json
+++ b/recipes/fuchsia.expected/default.json
@@ -143,7 +143,9 @@
},
{
"cmd": [
- "python",
+ "vpython",
+ "-spec",
+ "RECIPE_MODULE[infra::gsutil]/resources/gsutil.vpython",
"-u",
"[START_DIR]/cipd/gsutil/gsutil",
"-o",
@@ -152,9 +154,6 @@
"[TMP_BASE]/jiri.snapshot",
"gs://fuchsia/jiri/snapshots/8ac5404b688b34f2d34d1c8a648413aca30b7a97"
],
- "env": {
- "BOTO_CONFIG": "[HOME]/.boto"
- },
"infra_step": true,
"name": "upload jiri.snapshot",
"~followup_annotations": [
@@ -363,7 +362,9 @@
},
{
"cmd": [
- "python",
+ "vpython",
+ "-spec",
+ "RECIPE_MODULE[infra::gsutil]/resources/gsutil.vpython",
"-u",
"[START_DIR]/cipd/gsutil/gsutil",
"-o",
@@ -372,9 +373,7 @@
"[TMP_BASE]/fuchsia.tar.gz",
"gs://fuchsia-archive/cd963da3f17c3acc611a9b9c1b272fcd6ae39909"
],
- "env": {
- "BOTO_CONFIG": "[HOME]/.boto"
- },
+ "infra_step": true,
"name": "upload fuchsia.tar.gz",
"~followup_annotations": [
"@@@STEP_LINK@fuchsia.tar.gz@https://storage.cloud.google.com/fuchsia-archive/cd963da3f17c3acc611a9b9c1b272fcd6ae39909@@@"
diff --git a/recipes/fuchsia.expected/failed_tests.json b/recipes/fuchsia.expected/failed_tests.json
index 46c57dc..5b40dc2 100644
--- a/recipes/fuchsia.expected/failed_tests.json
+++ b/recipes/fuchsia.expected/failed_tests.json
@@ -175,7 +175,9 @@
},
{
"cmd": [
- "python",
+ "vpython",
+ "-spec",
+ "RECIPE_MODULE[infra::gsutil]/resources/gsutil.vpython",
"-u",
"[START_DIR]/cipd/gsutil/gsutil",
"-o",
@@ -184,9 +186,6 @@
"[TMP_BASE]/jiri.snapshot",
"gs://fuchsia/jiri/snapshots/8ac5404b688b34f2d34d1c8a648413aca30b7a97"
],
- "env": {
- "BOTO_CONFIG": "[HOME]/.boto"
- },
"infra_step": true,
"name": "upload jiri.snapshot",
"~followup_annotations": [
diff --git a/recipes/fuchsia.expected/no_goma.json b/recipes/fuchsia.expected/no_goma.json
index 3864ef7..8a66fe5 100644
--- a/recipes/fuchsia.expected/no_goma.json
+++ b/recipes/fuchsia.expected/no_goma.json
@@ -111,7 +111,9 @@
},
{
"cmd": [
- "python",
+ "vpython",
+ "-spec",
+ "RECIPE_MODULE[infra::gsutil]/resources/gsutil.vpython",
"-u",
"[START_DIR]/cipd/gsutil/gsutil",
"-o",
@@ -120,9 +122,6 @@
"[TMP_BASE]/jiri.snapshot",
"gs://fuchsia/jiri/snapshots/8ac5404b688b34f2d34d1c8a648413aca30b7a97"
],
- "env": {
- "BOTO_CONFIG": "[HOME]/.boto"
- },
"infra_step": true,
"name": "upload jiri.snapshot",
"~followup_annotations": [
@@ -230,7 +229,9 @@
},
{
"cmd": [
- "python",
+ "vpython",
+ "-spec",
+ "RECIPE_MODULE[infra::gsutil]/resources/gsutil.vpython",
"-u",
"[START_DIR]/cipd/gsutil/gsutil",
"-o",
@@ -239,9 +240,7 @@
"[TMP_BASE]/fuchsia.tar.gz",
"gs://fuchsia-archive/cd963da3f17c3acc611a9b9c1b272fcd6ae39909"
],
- "env": {
- "BOTO_CONFIG": "[HOME]/.boto"
- },
+ "infra_step": true,
"name": "upload fuchsia.tar.gz",
"~followup_annotations": [
"@@@STEP_LINK@fuchsia.tar.gz@https://storage.cloud.google.com/fuchsia-archive/cd963da3f17c3acc611a9b9c1b272fcd6ae39909@@@"
diff --git a/recipes/fuchsia.expected/release.json b/recipes/fuchsia.expected/release.json
index 1a96688..5111229 100644
--- a/recipes/fuchsia.expected/release.json
+++ b/recipes/fuchsia.expected/release.json
@@ -143,7 +143,9 @@
},
{
"cmd": [
- "python",
+ "vpython",
+ "-spec",
+ "RECIPE_MODULE[infra::gsutil]/resources/gsutil.vpython",
"-u",
"[START_DIR]/cipd/gsutil/gsutil",
"-o",
@@ -152,9 +154,6 @@
"[TMP_BASE]/jiri.snapshot",
"gs://fuchsia/jiri/snapshots/8ac5404b688b34f2d34d1c8a648413aca30b7a97"
],
- "env": {
- "BOTO_CONFIG": "[HOME]/.boto"
- },
"infra_step": true,
"name": "upload jiri.snapshot",
"~followup_annotations": [
@@ -364,7 +363,9 @@
},
{
"cmd": [
- "python",
+ "vpython",
+ "-spec",
+ "RECIPE_MODULE[infra::gsutil]/resources/gsutil.vpython",
"-u",
"[START_DIR]/cipd/gsutil/gsutil",
"-o",
@@ -373,9 +374,7 @@
"[TMP_BASE]/fuchsia.tar.gz",
"gs://fuchsia-archive/cd963da3f17c3acc611a9b9c1b272fcd6ae39909"
],
- "env": {
- "BOTO_CONFIG": "[HOME]/.boto"
- },
+ "infra_step": true,
"name": "upload fuchsia.tar.gz",
"~followup_annotations": [
"@@@STEP_LINK@fuchsia.tar.gz@https://storage.cloud.google.com/fuchsia-archive/cd963da3f17c3acc611a9b9c1b272fcd6ae39909@@@"
diff --git a/recipes/fuchsia.expected/tests.json b/recipes/fuchsia.expected/tests.json
index 860ca04..7c2b250 100644
--- a/recipes/fuchsia.expected/tests.json
+++ b/recipes/fuchsia.expected/tests.json
@@ -175,7 +175,9 @@
},
{
"cmd": [
- "python",
+ "vpython",
+ "-spec",
+ "RECIPE_MODULE[infra::gsutil]/resources/gsutil.vpython",
"-u",
"[START_DIR]/cipd/gsutil/gsutil",
"-o",
@@ -184,9 +186,6 @@
"[TMP_BASE]/jiri.snapshot",
"gs://fuchsia/jiri/snapshots/8ac5404b688b34f2d34d1c8a648413aca30b7a97"
],
- "env": {
- "BOTO_CONFIG": "[HOME]/.boto"
- },
"infra_step": true,
"name": "upload jiri.snapshot",
"~followup_annotations": [
@@ -449,7 +448,9 @@
},
{
"cmd": [
- "python",
+ "vpython",
+ "-spec",
+ "RECIPE_MODULE[infra::gsutil]/resources/gsutil.vpython",
"-u",
"[START_DIR]/cipd/gsutil/gsutil",
"-o",
@@ -458,9 +459,7 @@
"[TMP_BASE]/fuchsia.tar.gz",
"gs://fuchsia-archive/cd963da3f17c3acc611a9b9c1b272fcd6ae39909"
],
- "env": {
- "BOTO_CONFIG": "[HOME]/.boto"
- },
+ "infra_step": true,
"name": "upload fuchsia.tar.gz",
"~followup_annotations": [
"@@@STEP_LINK@fuchsia.tar.gz@https://storage.cloud.google.com/fuchsia-archive/cd963da3f17c3acc611a9b9c1b272fcd6ae39909@@@"
diff --git a/recipes/fuchsia.py b/recipes/fuchsia.py
index 2db3042..b9de43a 100644
--- a/recipes/fuchsia.py
+++ b/recipes/fuchsia.py
@@ -231,7 +231,6 @@
api.jiri.ensure_jiri()
api.gsutil.ensure_gsutil()
- api.gsutil.set_boto_config(api.gsutil.default_boto_config)
if use_goma:
api.goma.ensure_goma()
if tests:
diff --git a/recipes/go_toolchain.expected/linux_new.json b/recipes/go_toolchain.expected/linux_new.json
index b35993c..fc47d67 100644
--- a/recipes/go_toolchain.expected/linux_new.json
+++ b/recipes/go_toolchain.expected/linux_new.json
@@ -328,7 +328,9 @@
},
{
"cmd": [
- "python",
+ "vpython",
+ "-spec",
+ "RECIPE_MODULE[infra::gsutil]/resources/gsutil.vpython",
"-u",
"[START_DIR]/cipd/gsutil/gsutil",
"-o",
@@ -337,6 +339,7 @@
"[TMP_BASE]/go.cipd",
"gs://fuchsia/golang/linux-amd64/40-chars-fake-of-the-package-instance_id"
],
+ "infra_step": true,
"name": "gsutil cp",
"~followup_annotations": [
"@@@STEP_LINK@gsutil.upload@https://storage.googleapis.com/fuchsia/golang/linux-amd64/40-chars-fake-of-the-package-instance_id@@@"
diff --git a/recipes/go_toolchain.expected/mac_new.json b/recipes/go_toolchain.expected/mac_new.json
index 9d0544b..867ae14 100644
--- a/recipes/go_toolchain.expected/mac_new.json
+++ b/recipes/go_toolchain.expected/mac_new.json
@@ -328,7 +328,9 @@
},
{
"cmd": [
- "python",
+ "vpython",
+ "-spec",
+ "RECIPE_MODULE[infra::gsutil]/resources/gsutil.vpython",
"-u",
"[START_DIR]/cipd/gsutil/gsutil",
"-o",
@@ -337,6 +339,7 @@
"[TMP_BASE]/go.cipd",
"gs://fuchsia/golang/mac-amd64/40-chars-fake-of-the-package-instance_id"
],
+ "infra_step": true,
"name": "gsutil cp",
"~followup_annotations": [
"@@@STEP_LINK@gsutil.upload@https://storage.googleapis.com/fuchsia/golang/mac-amd64/40-chars-fake-of-the-package-instance_id@@@"
diff --git a/recipes/jiri.expected/ci_new.json b/recipes/jiri.expected/ci_new.json
index 3b6bffd..8708372 100644
--- a/recipes/jiri.expected/ci_new.json
+++ b/recipes/jiri.expected/ci_new.json
@@ -289,7 +289,9 @@
},
{
"cmd": [
- "python",
+ "vpython",
+ "-spec",
+ "RECIPE_MODULE[infra::gsutil]/resources/gsutil.vpython",
"-u",
"[START_DIR]/cipd/gsutil/gsutil",
"-o",
@@ -298,6 +300,7 @@
"[TMP_BASE]/jiri.cipd",
"gs://fuchsia/jiri/linux-amd64/40-chars-fake-of-the-package-instance_id"
],
+ "infra_step": true,
"name": "gsutil cp",
"~followup_annotations": [
"@@@STEP_LINK@gsutil.upload@https://storage.googleapis.com/fuchsia/jiri/linux-amd64/40-chars-fake-of-the-package-instance_id@@@"
diff --git a/recipes/rust_toolchain.expected/linux_new.json b/recipes/rust_toolchain.expected/linux_new.json
index 550cded..6f825f6 100644
--- a/recipes/rust_toolchain.expected/linux_new.json
+++ b/recipes/rust_toolchain.expected/linux_new.json
@@ -271,7 +271,9 @@
},
{
"cmd": [
- "python",
+ "vpython",
+ "-spec",
+ "RECIPE_MODULE[infra::gsutil]/resources/gsutil.vpython",
"-u",
"[START_DIR]/cipd/gsutil/gsutil",
"-o",
@@ -280,6 +282,7 @@
"[TMP_BASE]/rust_tmp_1/rust.cipd",
"gs://fuchsia/rust/linux-amd64/40-chars-fake-of-the-package-instance_id"
],
+ "infra_step": true,
"name": "gsutil cp",
"~followup_annotations": [
"@@@STEP_LINK@gsutil.upload@https://storage.googleapis.com/fuchsia/rust/linux-amd64/40-chars-fake-of-the-package-instance_id@@@"
diff --git a/recipes/rust_toolchain.expected/mac_new.json b/recipes/rust_toolchain.expected/mac_new.json
index f34dc23..72f44c4 100644
--- a/recipes/rust_toolchain.expected/mac_new.json
+++ b/recipes/rust_toolchain.expected/mac_new.json
@@ -271,7 +271,9 @@
},
{
"cmd": [
- "python",
+ "vpython",
+ "-spec",
+ "RECIPE_MODULE[infra::gsutil]/resources/gsutil.vpython",
"-u",
"[START_DIR]/cipd/gsutil/gsutil",
"-o",
@@ -280,6 +282,7 @@
"[TMP_BASE]/rust_tmp_1/rust.cipd",
"gs://fuchsia/rust/mac-amd64/40-chars-fake-of-the-package-instance_id"
],
+ "infra_step": true,
"name": "gsutil cp",
"~followup_annotations": [
"@@@STEP_LINK@gsutil.upload@https://storage.googleapis.com/fuchsia/rust/mac-amd64/40-chars-fake-of-the-package-instance_id@@@"
diff --git a/recipes/web_view.expected/default.json b/recipes/web_view.expected/default.json
index f22420d..da071bb 100644
--- a/recipes/web_view.expected/default.json
+++ b/recipes/web_view.expected/default.json
@@ -300,7 +300,9 @@
},
{
"cmd": [
- "python",
+ "vpython",
+ "-spec",
+ "RECIPE_MODULE[infra::gsutil]/resources/gsutil.vpython",
"-u",
"[START_DIR]/cipd/gsutil/gsutil",
"-o",
@@ -309,9 +311,7 @@
"[START_DIR]/out/release-x86-64/x64-shared/libwebkit.so",
"gs://fuchsia/x86_64/webkit/c22471f4e3f842ae18dd9adec82ed9eb78ed1127/libwebkit.so"
],
- "env": {
- "BOTO_CONFIG": "[HOME]/.boto"
- },
+ "infra_step": true,
"name": "upload libwebkit.so",
"~followup_annotations": [
"@@@STEP_LINK@libwebkit.so@https://storage.googleapis.com/fuchsia/x86_64/webkit/c22471f4e3f842ae18dd9adec82ed9eb78ed1127/libwebkit.so@@@"
diff --git a/recipes/web_view.py b/recipes/web_view.py
index 11cfaeb..f172050 100644
--- a/recipes/web_view.py
+++ b/recipes/web_view.py
@@ -42,7 +42,6 @@
patch_storage, patch_repository_url, manifest, remote, target):
api.jiri.ensure_jiri()
api.gsutil.ensure_gsutil()
- api.gsutil.set_boto_config(api.gsutil.default_boto_config)
api.goma.ensure_goma()
with api.context(infra_steps=True):