Repo: fall back to http, if ssh connection fails for http repos

if a gerrit server has ssh and https access enabled, but user access
(for some users) is limited to https, 'repo upload' command will fail
for them.

Gerrit returns a ssh configuration (gerrit/ssh_info), that does not work
for users limited to https.

With this patch repo will test, if the returned ssh configuration from
gerrit/ssh_info is working. if not, it will fall back to https for upload.

Change-Id: If98f472e994f350bf71f35610cd649b163f1ab33
This commit is contained in:
Timo Lotterbach 2016-07-15 16:55:39 +02:00
parent 39252ba028
commit 488bf092d5

View File

@ -638,7 +638,10 @@ class Remote(object):
self._review_url = http_url
else:
host, port = info.split()
self._review_url = self._SshReviewUrl(userEmail, host, port)
if _open_ssh(host, port):
self._review_url = self._SshReviewUrl(userEmail, host, port)
else:
self._review_url = http_url
except urllib.error.HTTPError as e:
raise UploadError('%s: %s' % (self.review, str(e)))
except urllib.error.URLError as e: