From 2b8017e522170da59b3608a6c305f25c7f8300d1 Mon Sep 17 00:00:00 2001 From: Giulia Naponiello Date: Oct 24 2019 11:33:32 +0000 Subject: Allow image rebuild for modules too ...and not only for RPMs. JIRA: FACTORY-5323 Signed-off-by: Giulia Naponiello --- diff --git a/freshmaker/handlers/koji/rebuild_images_on_rpm_advisory_change.py b/freshmaker/handlers/koji/rebuild_images_on_rpm_advisory_change.py index 21a757a..e7d61aa 100644 --- a/freshmaker/handlers/koji/rebuild_images_on_rpm_advisory_change.py +++ b/freshmaker/handlers/koji/rebuild_images_on_rpm_advisory_change.py @@ -51,8 +51,8 @@ class RebuildImagesOnRPMAdvisoryChange(ContainerBuildHandler): if not isinstance(event, ErrataAdvisoryRPMsSignedEvent): return False - if 'rpm' not in event.advisory.content_types: - self.log_info('Skip non-RPM advisory %s.', event.advisory.errata_id) + if not {'rpm', 'module'} & set(event.advisory.content_types): + self.log_info('Skip non-RPM and non-module advisory %s.', event.advisory.errata_id) return False return True @@ -60,7 +60,7 @@ class RebuildImagesOnRPMAdvisoryChange(ContainerBuildHandler): @fail_event_on_handler_exception def handle(self, event): """ - Rebuilds all Docker images which contain packages from the Errata + Rebuilds all container images which contain packages from the Errata advisory. """ diff --git a/tests/handlers/koji/test_rebuild_images_on_rpm_advisory_change.py b/tests/handlers/koji/test_rebuild_images_on_rpm_advisory_change.py index c9249a6..147d3e2 100644 --- a/tests/handlers/koji/test_rebuild_images_on_rpm_advisory_change.py +++ b/tests/handlers/koji/test_rebuild_images_on_rpm_advisory_change.py @@ -225,15 +225,28 @@ class TestRebuildImagesOnRPMAdvisoryChange(helpers.ModelsTestCase): self.patcher.unpatch_all() def test_can_handle_manual_rebuild_with_advisory_event(self): - event = ManualRebuildWithAdvisoryEvent( - "123", - ErrataAdvisory(123, "RHBA-2017", "REL_PREP", ["rpm"], - security_impact="", - product_short_name="product"), - ["foo-container", "bar-container"]) - handler = RebuildImagesOnRPMAdvisoryChange() - ret = handler.can_handle(event) - self.assertTrue(ret) + for content_type in [["rpm"], ["module"]]: + event = ManualRebuildWithAdvisoryEvent( + "123", + ErrataAdvisory(123, "RHBA-2017", "REL_PREP", content_type, + security_impact="", + product_short_name="product"), + ["foo-container", "bar-container"]) + handler = RebuildImagesOnRPMAdvisoryChange() + ret = handler.can_handle(event) + self.assertTrue(ret) + + def test_cannot_handle_manual_rebuild_for_non_rpm_and_module(self): + for content_type in [["non-rpm"], []]: + event = ManualRebuildWithAdvisoryEvent( + "123", + ErrataAdvisory(123, "RHBA-2017", "REL_PREP", content_type, + security_impact="", + product_short_name="product"), + ["foo-container", "bar-container"]) + handler = RebuildImagesOnRPMAdvisoryChange() + ret = handler.can_handle(event) + self.assertFalse(ret) @patch.object(freshmaker.conf, 'handler_build_whitelist', new={ 'RebuildImagesOnRPMAdvisoryChange': {