diff --git a/openstack_releases/cmds/list_changes.py b/openstack_releases/cmds/list_changes.py index 08a7a00956..2bfdf8d1c9 100644 --- a/openstack_releases/cmds/list_changes.py +++ b/openstack_releases/cmds/list_changes.py @@ -18,7 +18,6 @@ import argparse import atexit import glob -import json import logging import os import os.path @@ -29,10 +28,10 @@ import sys import tempfile from openstack_governance import governance -import requests from openstack_releases import defaults from openstack_releases import deliverable +from openstack_releases import gerritutils from openstack_releases import gitutils from openstack_releases import hound from openstack_releases import liaisons @@ -133,27 +132,10 @@ def git_diff(workdir, repo, git_range, file_pattern, title=''): print() -def gerrit_query(*query): - url = 'https://review.openstack.org/changes/?q=' + '+'.join(query) - response = requests.get(url) - 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: - print('could not parse response from %s' % url) - print(repr(content)) - raise RuntimeError('failed to parse gerrit response') - - def list_gerrit_patches(title, template, query): header('{}: "{}"'.format(title, query)) try: - reviews = gerrit_query(query) + reviews = gerritutils.gerrit_query(query) except Exception as err: print(err) else: diff --git a/openstack_releases/cmds/list_deliverables.py b/openstack_releases/cmds/list_deliverables.py index f489132a5f..cf6027d39d 100644 --- a/openstack_releases/cmds/list_deliverables.py +++ b/openstack_releases/cmds/list_deliverables.py @@ -16,9 +16,9 @@ import operator import requests import openstack_releases -from openstack_releases.cmds.list_changes import gerrit_query from openstack_releases import defaults from openstack_releases import deliverable +from openstack_releases import gerritutils from openstack_releases import schema from openstack_releases import series_status @@ -310,7 +310,7 @@ def main(): if args.no_merge_since: query = f'project:openstack%2F{deliv.name}+branch:master+mergedafter:{args.no_merge_since}' - patches = gerrit_query(query) + patches = gerritutils.gerrit_query(query) if len(patches) > 0: continue diff --git a/openstack_releases/gerritutils.py b/openstack_releases/gerritutils.py new file mode 100644 index 0000000000..0ef33efa9e --- /dev/null +++ b/openstack_releases/gerritutils.py @@ -0,0 +1,36 @@ +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +import json +import requests + + +GERRIT_URL = 'https://review.opendev.org/changes/?q=' + + +def gerrit_query(*query): + query_url = GERRIT_URL + '+'.join(query) + response = requests.get(query_url) + if (response.status_code // 100) != 2: + raise RuntimeError( + 'Bad HTTP response from gerrit %s: %s' % + (query_url, response.status_code) + ) + elif response.content[:4] == b")]}'": + content = response.content[5:].decode('utf-8') + return json.loads(content) + else: + print('could not parse response from %s' % query_url) + print(repr(response.content)) + raise RuntimeError('failed to parse gerrit response')