Merge #560 Do not reuse components when rpm macros change

This commit is contained in:
Ralph Bean
2017-05-22 12:45:42 +00:00
2 changed files with 27 additions and 0 deletions

View File

@@ -944,6 +944,16 @@ def get_reusable_component(session, module, component_name):
.format(previous_module_build.version, previous_module_build.name))
return None
# If the mmd.buildopts.macros.rpms changed, we cannot reuse
modulemd_macros = ""
old_modulemd_macros = ""
if mmd.buildopts and mmd.buildopts.rpms:
modulemd_macros = mmd.buildopts.rpms.macros
if old_mmd.buildopts and old_mmd.buildopts.rpms:
modulemd_macros = old_mmd.buildopts.rpms.macros
if modulemd_macros != old_modulemd_macros:
return None
# If the module buildrequires are different, then we can't reuse the
# component
if mmd.buildrequires.keys() != old_mmd.buildrequires.keys():

View File

@@ -208,6 +208,23 @@ class TestUtils(unittest.TestCase):
db.session, second_module_build, 'tangerine')
self.assertEqual(tangerine_rv, None)
def test_get_reusable_component_different_rpm_macros(self):
test_reuse_component_init_data()
second_module_build = models.ModuleBuild.query.filter_by(id=2).one()
mmd = second_module_build.mmd()
mmd.buildopts.rpms.macros = "%my_macro 1"
second_module_build.modulemd = mmd.dumps()
db.session.commit()
plc_rv = module_build_service.utils.get_reusable_component(
db.session, second_module_build, 'perl-List-Compare')
self.assertEqual(plc_rv, None)
# perl-Tangerine has a different commit hash
pt_rv = module_build_service.utils.get_reusable_component(
db.session, second_module_build, 'perl-Tangerine')
self.assertEqual(pt_rv, None)
def test_get_reusable_component_different_buildrequires_hash(self):
test_reuse_component_init_data()
second_module_build = models.ModuleBuild.query.filter_by(id=2).one()