improve error handling of gerrit queries

Change-Id: I7aa91183f7048ea26ccd81ee55e72d3f1e1b3184
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
This commit is contained in:
Doug Hellmann
2017-08-04 10:20:07 -04:00
parent ca9884b44e
commit 35328ef837
+14 -5
View File
@@ -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):