diff --git a/kolla/image/build.py b/kolla/image/build.py index 231824e85b..9ad42ab8f2 100644 --- a/kolla/image/build.py +++ b/kolla/image/build.py @@ -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: diff --git a/kolla/tests/etc/default.conf b/kolla/tests/etc/default.conf index 214ca8841a..545953e34b 100644 --- a/kolla/tests/etc/default.conf +++ b/kolla/tests/etc/default.conf @@ -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 diff --git a/kolla/tests/test_build.py b/kolla/tests/test_build.py index 515aa1ddd7..d822a4dfec 100644 --- a/kolla/tests/test_build.py +++ b/kolla/tests/test_build.py @@ -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]