Assume http upload if ssh_info cannot be parsed

When uploading a change for review, we sometimes request /ssh_info to
get the correct port number for uploading via ssh (regardless of
whether or not we intend to upload over ssh).

If we have trouble accessing /ssh_info (for authentication reasons,
etc), we now press on under the assumption that we will upload via http
instead of aborting.

Change-Id: Ica6bbeac1279e89424a903529649b7f4af0b6937
This commit is contained in:
Conley Owens 2013-06-05 13:16:18 -07:00 committed by David Pursehouse
parent efc986c508
commit 745a39ba3d

View File

@ -596,14 +596,11 @@ class Remote(object):
try: try:
info_url = u + 'ssh_info' info_url = u + 'ssh_info'
info = urllib.request.urlopen(info_url).read() info = urllib.request.urlopen(info_url).read()
if '<' in info: if info == 'NOT_AVAILABLE' or '<' in info:
# Assume the server gave us some sort of HTML # If `info` contains '<', we assume the server gave us some sort
# response back, like maybe a login page. # of HTML response back, like maybe a login page.
# #
raise UploadError('%s: Cannot parse response' % info_url) # Assume HTTP if SSH is not enabled or ssh_info doesn't look right.
if info == 'NOT_AVAILABLE':
# Assume HTTP if SSH is not enabled.
self._review_url = http_url + 'p/' self._review_url = http_url + 'p/'
else: else:
host, port = info.split() host, port = info.split()