Fix plugin parsing for base images
If we try to add a plugin to a base image, e.g. [neutron-base-plugin-neutron-fwaas] type = git location = https://github.com/openstack/neutron-fwaas reference = master The build will fail as it parses the above as both "neutron-base-plugin-neutron-fwaas" and "base-plugin-neutron-fwaas". Update the regex to ensure the image name is anchored to the beginning of the conf section. Change-Id: I4099ebd0d25cd28a9bb3bdc4fcfbf311ce22a3fd Closes-Bug: #1638900
This commit is contained in:
parent
dc7001de4c
commit
5ddba7892d
@ -836,7 +836,7 @@ class KollaWorker(object):
|
||||
image.name)
|
||||
image.source = process_source_installation(image, image.name)
|
||||
for plugin in [match.group(0) for match in
|
||||
(re.search('{}-plugin-.+'.format(image.name),
|
||||
(re.search('^{}-plugin-.+'.format(image.name),
|
||||
section) for section in
|
||||
self.conf.list_all_sections()) if match]:
|
||||
try:
|
||||
|
@ -6,6 +6,11 @@ reference = master
|
||||
location = https://git.openstack.org/openstack/networking-arista
|
||||
type = git
|
||||
|
||||
[neutron-base-plugin-neutron-fwaas]
|
||||
reference = master
|
||||
location = https://git.openstack.org/openstack/neutron-fwaas
|
||||
type = git
|
||||
|
||||
[profiles]
|
||||
default = image-base
|
||||
all = image-base,image-child
|
||||
|
@ -195,6 +195,24 @@ class KollaWorkerTest(base.TestCase):
|
||||
else:
|
||||
self.fail('Can not find the expected neutron arista plugin')
|
||||
|
||||
def test_build_image_list_plugin_parsing(self):
|
||||
"""Ensure regex used to parse plugins adds them to the correct image"""
|
||||
self.conf.set_override('install_type', 'source')
|
||||
|
||||
kolla = build.KollaWorker(self.conf)
|
||||
kolla.setup_working_dir()
|
||||
kolla.find_dockerfiles()
|
||||
kolla.create_dockerfiles()
|
||||
kolla.build_image_list()
|
||||
for image in kolla.images:
|
||||
if image.name == 'base':
|
||||
self.assertEqual(len(image.plugins), 0,
|
||||
'base image should not have any plugins '
|
||||
'registered')
|
||||
break
|
||||
else:
|
||||
self.fail('Expected to find the base image in this test')
|
||||
|
||||
def _get_matched_images(self, images):
|
||||
return [image for image in images
|
||||
if image.status == build.STATUS_MATCHED]
|
||||
|
Loading…
x
Reference in New Issue
Block a user