gerrit-util: Fix GCE check from behind proxy.

Setting HTTP_PROXY or HTTPS_PROXY environment variables will cause git cl
to fail.

The behavior of an unreachable server behind proxy is different from a direct
connection, it won't throw a httplib2.ServerNotFoundError error,
so catch httplib2.Httplib2Error instead.

Bug: 1050380
Change-Id: I32e2220483de1fd6222c7fd6063039fb86277ef0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2050947
Reviewed-by: Anthony Polito <apolito@google.com>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
changes/47/2050947/2
Edward Lemur 5 years ago committed by LUCI CQ
parent e9ed65aa19
commit 9ee86e5a46

@ -288,8 +288,7 @@ class GceAuthenticator(Authenticator):
# Based on https://cloud.google.com/compute/docs/metadata#runninggce
try:
resp, _ = cls._get(cls._INFO_URL)
except (socket.error, httplib2.ServerNotFoundError,
httplib2.socks.HTTPError):
except (socket.error, httplib2.Httplib2Error):
# Could not resolve URL.
return False
return resp.get('metadata-flavor') == 'Google'

Loading…
Cancel
Save