Commit aa534e50 authored by Paweł Hajdan, Jr's avatar Paweł Hajdan, Jr Committed by Commit Bot

Pass env via context rather than api.step kwargs

See https://groups.google.com/a/chromium.org/d/msg/infra-dev/p8Iq9v9Y4k0/w__b1zTWAQAJ
for more context.

BUG=685746

Change-Id: If0bdcbd354b2535de22a7be78dad86e15c9f2cea
Reviewed-on: https://chromium-review.googlesource.com/456217
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
Reviewed-by: 's avatarRobbie Iannucci <iannucci@chromium.org>
parent 12fb9ede
...@@ -4,5 +4,5 @@ deps { ...@@ -4,5 +4,5 @@ deps {
project_id: "recipe_engine" project_id: "recipe_engine"
url: "https://chromium.googlesource.com/external/github.com/luci/recipes-py.git" url: "https://chromium.googlesource.com/external/github.com/luci/recipes-py.git"
branch: "master" branch: "master"
revision: "d5a670b19aba7fb9a7f6430d39dab1d3414b578a" revision: "57a75df505dfe20cb1aa6b7536231e56267fa2b8"
} }
...@@ -33,16 +33,17 @@ class BotUpdateApi(recipe_api.RecipeApi): ...@@ -33,16 +33,17 @@ class BotUpdateApi(recipe_api.RecipeApi):
assert isinstance(cmd, (list, tuple)) assert isinstance(cmd, (list, tuple))
bot_update_path = self.resource('bot_update.py') bot_update_path = self.resource('bot_update.py')
kwargs.setdefault('infra_step', True) kwargs.setdefault('infra_step', True)
kwargs.setdefault('env', {}) env = self.m.step.get_from_context('env', {})
kwargs['env'].setdefault('PATH', '%(PATH)s') env.setdefault('PATH', '%(PATH)s')
kwargs['env']['PATH'] = self.m.path.pathsep.join([ env['PATH'] = self.m.path.pathsep.join([
kwargs['env']['PATH'], str(self._module.PACKAGE_REPO_ROOT)]) env['PATH'], str(self._module.PACKAGE_REPO_ROOT)])
# These are to prevent git from hanging. If the git connection is slower # These are to prevent git from hanging. If the git connection is slower
# than 1KB/s for more than 5 minutes then git will kill the connection # than 1KB/s for more than 5 minutes then git will kill the connection
# and die with an error "error: RPC failed; curl 28 Operation too slow" # and die with an error "error: RPC failed; curl 28 Operation too slow"
kwargs['env']['GIT_HTTP_LOW_SPEED_LIMIT'] = 1000 env['GIT_HTTP_LOW_SPEED_LIMIT'] = 1000
kwargs['env']['GIT_HTTP_LOW_SPEED_TIME'] = 300 env['GIT_HTTP_LOW_SPEED_TIME'] = 300
return self.m.python(name, bot_update_path, cmd, **kwargs) with self.m.step.context({'env': env}):
return self.m.python(name, bot_update_path, cmd, **kwargs)
@property @property
def last_returned_properties(self): def last_returned_properties(self):
...@@ -54,9 +55,10 @@ class BotUpdateApi(recipe_api.RecipeApi): ...@@ -54,9 +55,10 @@ class BotUpdateApi(recipe_api.RecipeApi):
gerrit_no_rebase_patch_ref=False, **kwargs): gerrit_no_rebase_patch_ref=False, **kwargs):
apply_gerrit_path = self.resource('apply_gerrit.py') apply_gerrit_path = self.resource('apply_gerrit.py')
kwargs.setdefault('infra_step', True) kwargs.setdefault('infra_step', True)
kwargs.setdefault('env', {}).setdefault('PATH', '%(PATH)s') env = self.m.step.get_from_context('env', {})
kwargs['env']['PATH'] = self.m.path.pathsep.join([ env.setdefault('PATH', '%(PATH)s')
kwargs['env']['PATH'], str(self._module.PACKAGE_REPO_ROOT)]) env['PATH'] = self.m.path.pathsep.join([
env['PATH'], str(self._module.PACKAGE_REPO_ROOT)])
cmd = [ cmd = [
'--gerrit_repo', self._repository, '--gerrit_repo', self._repository,
'--gerrit_ref', self._gerrit_ref or '', '--gerrit_ref', self._gerrit_ref or '',
...@@ -66,7 +68,8 @@ class BotUpdateApi(recipe_api.RecipeApi): ...@@ -66,7 +68,8 @@ class BotUpdateApi(recipe_api.RecipeApi):
cmd.append('--gerrit_no_reset') cmd.append('--gerrit_no_reset')
if gerrit_no_rebase_patch_ref: if gerrit_no_rebase_patch_ref:
cmd.append('--gerrit_no_rebase_patch_ref') cmd.append('--gerrit_no_rebase_patch_ref')
return self.m.python('apply_gerrit', apply_gerrit_path, cmd, **kwargs) with self.m.step.context({'env': env}):
return self.m.python('apply_gerrit', apply_gerrit_path, cmd, **kwargs)
def ensure_checkout(self, gclient_config=None, suffix=None, def ensure_checkout(self, gclient_config=None, suffix=None,
patch=True, update_presentation=True, patch=True, update_presentation=True,
......
...@@ -79,16 +79,18 @@ class GclientApi(recipe_api.RecipeApi): ...@@ -79,16 +79,18 @@ class GclientApi(recipe_api.RecipeApi):
if self.spec_alias: if self.spec_alias:
prefix = ('[spec: %s] ' % self.spec_alias) + prefix prefix = ('[spec: %s] ' % self.spec_alias) + prefix
kwargs.setdefault('env', {}) # TODO(phajdan.jr): create a helper for adding to PATH.
kwargs['env'].setdefault('PATH', '%(PATH)s') env = self.m.step.get_from_context('env', {})
kwargs['env']['PATH'] = self.m.path.pathsep.join([ env.setdefault('PATH', '%(PATH)s')
kwargs['env']['PATH'], str(self._module.PACKAGE_REPO_ROOT)]) env['PATH'] = self.m.path.pathsep.join([
env['PATH'], str(self._module.PACKAGE_REPO_ROOT)])
return self.m.python(prefix + name,
self.package_repo_resource('gclient.py'), with self.m.step.context({'env': env}):
cmd, return self.m.python(prefix + name,
infra_step=infra_step, self.package_repo_resource('gclient.py'),
**kwargs) cmd,
infra_step=infra_step,
**kwargs)
@property @property
def use_mirror(self): def use_mirror(self):
......
...@@ -3,4 +3,5 @@ DEPS = [ ...@@ -3,4 +3,5 @@ DEPS = [
'recipe_engine/path', 'recipe_engine/path',
'recipe_engine/python', 'recipe_engine/python',
'recipe_engine/raw_io', 'recipe_engine/raw_io',
'recipe_engine/step',
] ]
...@@ -12,16 +12,17 @@ class GerritApi(recipe_api.RecipeApi): ...@@ -12,16 +12,17 @@ class GerritApi(recipe_api.RecipeApi):
assert isinstance(cmd, (list, tuple)) assert isinstance(cmd, (list, tuple))
prefix = 'gerrit ' prefix = 'gerrit '
kwargs.setdefault('env', {}) env = self.m.step.get_from_context('env', {})
kwargs['env'].setdefault('PATH', '%(PATH)s') env.setdefault('PATH', '%(PATH)s')
kwargs['env']['PATH'] = self.m.path.pathsep.join([ env['PATH'] = self.m.path.pathsep.join([
kwargs['env']['PATH'], str(self._module.PACKAGE_REPO_ROOT)]) env['PATH'], str(self._module.PACKAGE_REPO_ROOT)])
return self.m.python(prefix + name, with self.m.step.context({'env': env}):
self.package_repo_resource('gerrit_client.py'), return self.m.python(prefix + name,
cmd, self.package_repo_resource('gerrit_client.py'),
infra_step=infra_step, cmd,
**kwargs) infra_step=infra_step,
**kwargs)
def create_gerrit_branch(self, host, project, branch, commit, **kwargs): def create_gerrit_branch(self, host, project, branch, commit, **kwargs):
""" """
......
...@@ -278,11 +278,11 @@ class GitApi(recipe_api.RecipeApi): ...@@ -278,11 +278,11 @@ class GitApi(recipe_api.RecipeApi):
name='count-objects before %s' % fetch_step_name, name='count-objects before %s' % fetch_step_name,
step_test_data=lambda: self.m.raw_io.test_api.stream_output( step_test_data=lambda: self.m.raw_io.test_api.stream_output(
self.test_api.count_objects_output(1000))) self.test_api.count_objects_output(1000)))
self('retry', 'fetch', *fetch_args, with self.m.step.context({'env': fetch_env}):
name=fetch_step_name, self('retry', 'fetch', *fetch_args,
env=fetch_env, name=fetch_step_name,
stderr=fetch_stderr, stderr=fetch_stderr,
can_fail_build=can_fail_build) can_fail_build=can_fail_build)
if display_fetch_size: if display_fetch_size:
self.count_objects( self.count_objects(
name='count-objects after %s' % fetch_step_name, name='count-objects after %s' % fetch_step_name,
...@@ -413,7 +413,7 @@ class GitApi(recipe_api.RecipeApi): ...@@ -413,7 +413,7 @@ class GitApi(recipe_api.RecipeApi):
upstream (str): to origin/master. upstream (str): to origin/master.
kwargs: Forwarded to '__call__'. kwargs: Forwarded to '__call__'.
""" """
env = kwargs.pop('env', {}) env = self.m.step.get_from_context('env', {})
env['PATH'] = self.m.path.pathsep.join([ env['PATH'] = self.m.path.pathsep.join([
str(self.package_repo_resource()), '%(PATH)s']) str(self.package_repo_resource()), '%(PATH)s'])
args = ['new-branch', branch] args = ['new-branch', branch]
...@@ -421,4 +421,5 @@ class GitApi(recipe_api.RecipeApi): ...@@ -421,4 +421,5 @@ class GitApi(recipe_api.RecipeApi):
args.extend(['--upstream', upstream]) args.extend(['--upstream', upstream])
if not name: if not name:
name = 'git new-branch %s' % branch name = 'git new-branch %s' % branch
return self(*args, name=name, env=env, **kwargs) with self.m.step.context({'env': env}):
return self(*args, name=name, **kwargs)
DEPS = [ DEPS = [
'recipe_engine/path', 'recipe_engine/path',
'recipe_engine/python', 'recipe_engine/python',
'recipe_engine/step',
] ]
...@@ -14,10 +14,11 @@ class PresubmitApi(recipe_api.RecipeApi): ...@@ -14,10 +14,11 @@ class PresubmitApi(recipe_api.RecipeApi):
name = kwargs.pop('name', 'presubmit') name = kwargs.pop('name', 'presubmit')
kwargs.setdefault('env', {}) env = self.m.step.get_from_context('env', {})
kwargs['env'].setdefault('PATH', '%(PATH)s') env.setdefault('PATH', '%(PATH)s')
kwargs['env']['PATH'] = self.m.path.pathsep.join([ env['PATH'] = self.m.path.pathsep.join([
kwargs['env']['PATH'], str(self._module.PACKAGE_REPO_ROOT)]) env['PATH'], str(self._module.PACKAGE_REPO_ROOT)])
return self.m.python( with self.m.step.context({'env': env}):
name, self.presubmit_support_path, list(args), **kwargs) return self.m.python(
name, self.presubmit_support_path, list(args), **kwargs)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment