Merge "Remove hostname hardcode from commit records links"
This commit is contained in:
commit
d23e09f337
@ -297,6 +297,9 @@ def make_blueprint_link(module, name):
|
|||||||
def make_commit_message(record):
|
def make_commit_message(record):
|
||||||
s = record['message']
|
s = record['message']
|
||||||
module = record['module']
|
module = record['module']
|
||||||
|
# NOTE(aostapenko) Keeping default value here not to brake links
|
||||||
|
# with existing storage data
|
||||||
|
gerrit_hostname = record.get('gerrit_hostname', 'review.openstack.org')
|
||||||
|
|
||||||
s = utils.format_text(s)
|
s = utils.format_text(s)
|
||||||
|
|
||||||
@ -307,8 +310,10 @@ def make_commit_message(record):
|
|||||||
s = re.sub(re.compile('(bug[\s#:]*)([\d]{5,7})', flags=re.IGNORECASE),
|
s = re.sub(re.compile('(bug[\s#:]*)([\d]{5,7})', flags=re.IGNORECASE),
|
||||||
r'\1<a href="https://bugs.launchpad.net/bugs/\2" '
|
r'\1<a href="https://bugs.launchpad.net/bugs/\2" '
|
||||||
r'class="ext_link">\2</a>', s)
|
r'class="ext_link">\2</a>', s)
|
||||||
|
# NOTE(aostapenko) Setting http here as it's common practice to redirect
|
||||||
|
# http -> https, but not vice versa
|
||||||
s = re.sub(r'\s+(I[0-9a-f]{40})',
|
s = re.sub(r'\s+(I[0-9a-f]{40})',
|
||||||
r' <a href="https://review.openstack.org/#/q/\1" '
|
r' <a href="http://%s/#/q/\1" ' % gerrit_hostname +
|
||||||
r'class="ext_link">\1</a>', s)
|
r'class="ext_link">\1</a>', s)
|
||||||
|
|
||||||
s = utils.unwrap_text(s)
|
s = utils.unwrap_text(s)
|
||||||
|
@ -71,12 +71,16 @@ def _merge_commits(original, new):
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
def _record_typer(record_iterator, record_type):
|
def _param_adder(record_iterator, key, value):
|
||||||
for record in record_iterator:
|
for record in record_iterator:
|
||||||
record['record_type'] = record_type
|
record[key] = value
|
||||||
yield record
|
yield record
|
||||||
|
|
||||||
|
|
||||||
|
def _record_typer(record_iterator, record_type):
|
||||||
|
return _param_adder(record_iterator, 'record_type', record_type)
|
||||||
|
|
||||||
|
|
||||||
def _get_repo_branches(repo):
|
def _get_repo_branches(repo):
|
||||||
return ({repo.get('default_branch', 'master')} |
|
return ({repo.get('default_branch', 'master')} |
|
||||||
set(r['branch'] for r in repo.get('releases', [])
|
set(r['branch'] for r in repo.get('releases', [])
|
||||||
@ -147,6 +151,9 @@ def _process_repo_reviews(repo, runtime_storage_inst, record_processor_inst):
|
|||||||
def _process_repo_vcs(repo, runtime_storage_inst, record_processor_inst):
|
def _process_repo_vcs(repo, runtime_storage_inst, record_processor_inst):
|
||||||
vcs_inst = vcs.get_vcs(repo, CONF.sources_root)
|
vcs_inst = vcs.get_vcs(repo, CONF.sources_root)
|
||||||
vcs_inst.fetch()
|
vcs_inst.fetch()
|
||||||
|
gerrit_hostname, _ = rcs.get_socket_tuple_from_uri(
|
||||||
|
repo.get('gerrit_uri', CONF.review_uri)
|
||||||
|
)
|
||||||
|
|
||||||
for branch in _get_repo_branches(repo):
|
for branch in _get_repo_branches(repo):
|
||||||
LOG.info('Processing commits in repo: %s, branch: %s',
|
LOG.info('Processing commits in repo: %s, branch: %s',
|
||||||
@ -157,7 +164,10 @@ def _process_repo_vcs(repo, runtime_storage_inst, record_processor_inst):
|
|||||||
last_id = runtime_storage_inst.get_by_key(vcs_key)
|
last_id = runtime_storage_inst.get_by_key(vcs_key)
|
||||||
|
|
||||||
commit_iterator = vcs_inst.log(branch, last_id)
|
commit_iterator = vcs_inst.log(branch, last_id)
|
||||||
commit_iterator_typed = _record_typer(commit_iterator, 'commit')
|
commit_iterator_review = _param_adder(
|
||||||
|
commit_iterator, 'gerrit_hostname', gerrit_hostname
|
||||||
|
)
|
||||||
|
commit_iterator_typed = _record_typer(commit_iterator_review, 'commit')
|
||||||
processed_commit_iterator = record_processor_inst.process(
|
processed_commit_iterator = record_processor_inst.process(
|
||||||
commit_iterator_typed)
|
commit_iterator_typed)
|
||||||
runtime_storage_inst.set_records(
|
runtime_storage_inst.set_records(
|
||||||
|
@ -29,6 +29,17 @@ REQUEST_COUNT_LIMIT = 20
|
|||||||
SSH_ERRORS_LIMIT = 10
|
SSH_ERRORS_LIMIT = 10
|
||||||
|
|
||||||
|
|
||||||
|
def get_socket_tuple_from_uri(uri):
|
||||||
|
stripped = re.sub(GERRIT_URI_PREFIX, '', uri)
|
||||||
|
if stripped:
|
||||||
|
hostname, semicolon, port = stripped.partition(':')
|
||||||
|
if not port:
|
||||||
|
port = DEFAULT_PORT
|
||||||
|
else:
|
||||||
|
raise RcsException('Invalid rcs uri %s' % uri)
|
||||||
|
return hostname, port
|
||||||
|
|
||||||
|
|
||||||
class RcsException(Exception):
|
class RcsException(Exception):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@ -57,13 +68,7 @@ class Gerrit(Rcs):
|
|||||||
def __init__(self, uri):
|
def __init__(self, uri):
|
||||||
super(Gerrit, self).__init__()
|
super(Gerrit, self).__init__()
|
||||||
|
|
||||||
stripped = re.sub(GERRIT_URI_PREFIX, '', uri)
|
self.hostname, self.port = get_socket_tuple_from_uri(uri)
|
||||||
if stripped:
|
|
||||||
self.hostname, semicolon, self.port = stripped.partition(':')
|
|
||||||
if not self.port:
|
|
||||||
self.port = DEFAULT_PORT
|
|
||||||
else:
|
|
||||||
raise RcsException('Invalid rcs uri %s' % uri)
|
|
||||||
|
|
||||||
self.key_filename = None
|
self.key_filename = None
|
||||||
self.username = None
|
self.username = None
|
||||||
|
@ -46,7 +46,42 @@ returned.
|
|||||||
Fixes bug <a href="https://bugs.launchpad.net/bugs/1076801" class="ext_link">\
|
Fixes bug <a href="https://bugs.launchpad.net/bugs/1076801" class="ext_link">\
|
||||||
1076801</a>
|
1076801</a>
|
||||||
''' + (
|
''' + (
|
||||||
'Change-Id: <a href="https://review.openstack.org/#/q/'
|
'Change-Id: <a href="http://review.openstack.org/#/q/'
|
||||||
|
'Ie49ccd2138905e178843b375a9b16c3fe572d1db" class="ext_link">'
|
||||||
|
'Ie49ccd2138905e178843b375a9b16c3fe572d1db</a>')
|
||||||
|
|
||||||
|
observed = helpers.make_commit_message(record)
|
||||||
|
|
||||||
|
self.assertEqual(expected, observed,
|
||||||
|
'Commit message should be processed correctly')
|
||||||
|
|
||||||
|
def test_make_commit_message_gerrit_host(self):
|
||||||
|
message = '''
|
||||||
|
During finish_migration the manager calls initialize_connection but doesn't
|
||||||
|
update the block_device_mapping with the potentially new connection_info
|
||||||
|
returned.
|
||||||
|
|
||||||
|
|
||||||
|
Fixes bug 1076801
|
||||||
|
Change-Id: Ie49ccd2138905e178843b375a9b16c3fe572d1db'''
|
||||||
|
|
||||||
|
module = 'test'
|
||||||
|
|
||||||
|
gerrit = 'someothergerrit.org'
|
||||||
|
record = {
|
||||||
|
'message': message,
|
||||||
|
'module': module,
|
||||||
|
'gerrit_hostname': gerrit,
|
||||||
|
}
|
||||||
|
|
||||||
|
expected = '''\
|
||||||
|
During finish_migration the manager calls initialize_connection but doesn't \
|
||||||
|
update the block_device_mapping with the potentially new connection_info \
|
||||||
|
returned.
|
||||||
|
Fixes bug <a href="https://bugs.launchpad.net/bugs/1076801" class="ext_link">\
|
||||||
|
1076801</a>
|
||||||
|
''' + (
|
||||||
|
'Change-Id: <a href="http://%s/#/q/' % gerrit +
|
||||||
'Ie49ccd2138905e178843b375a9b16c3fe572d1db" class="ext_link">'
|
'Ie49ccd2138905e178843b375a9b16c3fe572d1db" class="ext_link">'
|
||||||
'Ie49ccd2138905e178843b375a9b16c3fe572d1db</a>')
|
'Ie49ccd2138905e178843b375a9b16c3fe572d1db</a>')
|
||||||
|
|
||||||
@ -73,7 +108,7 @@ Implemented new driver for Cinder <:
|
|||||||
Implements Blueprint ''' + (
|
Implements Blueprint ''' + (
|
||||||
'<a href="https://blueprints.launchpad.net/cinder/+spec/'
|
'<a href="https://blueprints.launchpad.net/cinder/+spec/'
|
||||||
'super-driver" class="ext_link">super-driver</a>' + '\n' +
|
'super-driver" class="ext_link">super-driver</a>' + '\n' +
|
||||||
'Change-Id: <a href="https://review.openstack.org/#/q/'
|
'Change-Id: <a href="http://review.openstack.org/#/q/'
|
||||||
'Ie49ccd2138905e178843b375a9b16c3fe572d1db" class="ext_link">'
|
'Ie49ccd2138905e178843b375a9b16c3fe572d1db" class="ext_link">'
|
||||||
'Ie49ccd2138905e178843b375a9b16c3fe572d1db</a>')
|
'Ie49ccd2138905e178843b375a9b16c3fe572d1db</a>')
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user