summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimo Lotterbach <timo.lotterbach@bmw-carit.de>2016-07-15 16:55:39 +0200
committerTimo Lotterbach <timo.lotterbach@bmw-carit.de>2016-08-30 07:35:03 +0000
commit488bf092d5992bd1b8f8681c444f2cc283d05bcb (patch)
tree015fa757c763eb9c9df5bd92250ffdd3cc4282f0
parent39252ba028012fd14e4e283217d842fb80206c52 (diff)
downloadgit-repo-488bf092d5992bd1b8f8681c444f2cc283d05bcb.tar.gz
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
-rw-r--r--git_config.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/git_config.py b/git_config.py
index 0379181a..09c4b48f 100644
--- a/git_config.py
+++ b/git_config.py
@@ -638,7 +638,10 @@ class Remote(object):
638 self._review_url = http_url 638 self._review_url = http_url
639 else: 639 else:
640 host, port = info.split() 640 host, port = info.split()
641 self._review_url = self._SshReviewUrl(userEmail, host, port) 641 if _open_ssh(host, port):
642 self._review_url = self._SshReviewUrl(userEmail, host, port)
643 else:
644 self._review_url = http_url
642 except urllib.error.HTTPError as e: 645 except urllib.error.HTTPError as e:
643 raise UploadError('%s: %s' % (self.review, str(e))) 646 raise UploadError('%s: %s' % (self.review, str(e)))
644 except urllib.error.URLError as e: 647 except urllib.error.URLError as e: