From 35328ef837763d56464a4c12cc69ff8a84620e2c Mon Sep 17 00:00:00 2001 From: Doug Hellmann Date: Fri, 4 Aug 2017 10:20:07 -0400 Subject: [PATCH] improve error handling of gerrit queries Change-Id: I7aa91183f7048ea26ccd81ee55e72d3f1e1b3184 Signed-off-by: Doug Hellmann --- openstack_releases/cmds/list_changes.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/openstack_releases/cmds/list_changes.py b/openstack_releases/cmds/list_changes.py index 60785ac950..a360709454 100644 --- a/openstack_releases/cmds/list_changes.py +++ b/openstack_releases/cmds/list_changes.py @@ -112,7 +112,12 @@ def git_diff(workdir, repo, git_range, file_pattern): def gerrit_query(*query): url = 'https://review.openstack.org/changes/?q=' + '+'.join(query) response = requests.get(url) - if response.content[:4] == b")]}'": + if (response.status_code // 100) != 2: + raise RuntimeError( + 'Bad HTTP response from gerrit %s: %s' % + (url, response.status_code) + ) + elif response.content[:4] == b")]}'": content = response.content[5:].decode('utf-8') return json.loads(content) else: @@ -123,10 +128,14 @@ def gerrit_query(*query): def list_gerrit_patches(title, template, query): header('{}: "{}"'.format(title, query)) - reviews = gerrit_query(query) - for r in reviews: - print(template.format(**r)) - print('{} results\n'.format(len(reviews))) + try: + reviews = gerrit_query(query) + except Exception as err: + print(err) + else: + for r in reviews: + print(template.format(**r)) + print('{} results\n'.format(len(reviews))) def show_watched_queries(branch, repo):