diff --git a/gsutil.py b/gsutil.py index 5d93783cf2..2733558cd4 100755 --- a/gsutil.py +++ b/gsutil.py @@ -164,7 +164,19 @@ def _is_luci_context(): def luci_context(cmd): """Helper to call`luci-auth context`.""" - return _luci_auth_cmd('context', wrapped_cmds=cmd) + p = _luci_auth_cmd('context', wrapped_cmds=cmd) + + # If luci-auth is not logged in, fallback to normal execution. + if b'Not logged in.' in p.stderr: + return _run_subprocess(cmd, interactive=True) + + if p.stdout: + print(p.stdout.decode('utf-8')) + + if p.stderr: + print(p.stderr.decode('utf-8'), file=sys.stderr) + + return p def luci_login(): @@ -182,30 +194,7 @@ def _luci_auth_cmd(luci_cmd, wrapped_cmds=None, interactive=False): if wrapped_cmds: cmd += ['--'] + wrapped_cmds - if interactive: - return _run_subprocess(cmd, interactive=True, env=_enable_luci_auth_ui()) - - p = _run_subprocess(cmd, env=_enable_luci_auth_ui()) - - # If luci-auth is not logged in. - if b'Not logged in.' in p.stderr: - print('Not logged in.\n') - print('Login by running:') - print('\t$ gsutil.py config') - else: - if p.stdout: - print(p.stdout.decode('utf-8')) - - if p.stderr: - print(p.stderr.decode('utf-8'), file=sys.stderr) - - return p - - -def _enable_luci_auth_ui(): - """Returns environment variables to enable luci-auth""" - # TODO(aravindvasudev): clean up after luci-auth UI is released. - return {'LUCI_AUTH_LOGIN_SESSIONS_HOST': 'ci.chromium.org'} + return _run_subprocess(cmd, interactive) def _run_subprocess(cmd, interactive=False, env=None): @@ -229,7 +218,7 @@ def is_boto_present(): def run_gsutil(target, args, clean=False): # Redirect gsutil config calls to luci-auth. - if os.getenv(GSUTIL_ENABLE_LUCI_AUTH) == '1' and 'config' in args: + if os.getenv(GSUTIL_ENABLE_LUCI_AUTH) != '0' and 'config' in args: return luci_login().returncode gsutil_bin = ensure_gsutil(VERSION, target, clean) @@ -262,7 +251,7 @@ def run_gsutil(target, args, clean=False): ] + args_opt + args # Bypass luci-auth when run within a bot or .boto file is set. - if (os.getenv(GSUTIL_ENABLE_LUCI_AUTH) != '1' or _is_luci_context() + if (os.getenv(GSUTIL_ENABLE_LUCI_AUTH) == '0' or _is_luci_context() or os.getenv('SWARMING_HEADLESS') == '1' or os.getenv('BOTO_CONFIG') or os.getenv('AWS_CREDENTIAL_FILE') or is_boto_present()): return _run_subprocess(cmd, interactive=True).returncode