From ecf8f2b7c8e68ee78c5a90ecd8a9b48e73195b80 Mon Sep 17 00:00:00 2001 From: David Pursehouse Date: Fri, 24 May 2013 12:12:23 +0900 Subject: [PATCH] Handle HTTPException when attempting to get ssh_info The call to `urlopen` can raise `HTTPException`, but this is not caught which results in a python Traceback. Add handling of the exception. Because `HTTPException` and its derived classes do not have any message, print the name of the exception in the error message instead. Change-Id: Ic90fb4cc0e92702375cd976d4a03876c8ce8bffc --- git_config.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/git_config.py b/git_config.py index 431cd457..2270200c 100644 --- a/git_config.py +++ b/git_config.py @@ -40,6 +40,10 @@ else: from signal import SIGTERM from error import GitError, UploadError from trace import Trace +if is_python3(): + from http.client import HTTPException +else: + from httplib import HTTPException from git_command import GitCommand from git_command import ssh_sock @@ -608,6 +612,8 @@ class Remote(object): raise UploadError('%s: %s' % (self.review, str(e))) except urllib.error.URLError as e: raise UploadError('%s: %s' % (self.review, str(e))) + except HTTPException as e: + raise UploadError('%s: %s' % (self.review, e.__class__.__name__)) REVIEW_CACHE[u] = self._review_url return self._review_url + self.projectname