From 227c93c79f66b97c1861c9fedf70167749a03bd7 Mon Sep 17 00:00:00 2001 From: Jan Kaluza Date: Jan 22 2019 09:03:44 +0000 Subject: Handle on 'docker' advisories in RebuildImagesOnImageAdvisoryChange. Other content_types don't make sense for this handler. --- diff --git a/freshmaker/handlers/bob/rebuild_images_on_image_advisory_change.py b/freshmaker/handlers/bob/rebuild_images_on_image_advisory_change.py index adb9ce5..39822cf 100644 --- a/freshmaker/handlers/bob/rebuild_images_on_image_advisory_change.py +++ b/freshmaker/handlers/bob/rebuild_images_on_image_advisory_change.py @@ -36,7 +36,14 @@ class RebuildImagesOnImageAdvisoryChange(ContainerBuildHandler): name = 'RebuildImagesOnImageAdvisoryChange' def can_handle(self, event): - return isinstance(event, ErrataAdvisoryStateChangedEvent) + if not isinstance(event, ErrataAdvisoryStateChangedEvent): + return False + + if 'docker' not in event.advisory.content_types: + self.log_info('Skip non-Docker advisory %s.', event.advisory.errata_id) + return False + + return True @fail_event_on_handler_exception def handle(self, event): diff --git a/tests/handlers/bob/test_rebuild_images_on_image_advisory_change.py b/tests/handlers/bob/test_rebuild_images_on_image_advisory_change.py index cfab08b..3dd6357 100644 --- a/tests/handlers/bob/test_rebuild_images_on_image_advisory_change.py +++ b/tests/handlers/bob/test_rebuild_images_on_image_advisory_change.py @@ -42,6 +42,16 @@ class RebuildImagesOnImageAdvisoryChangeTest(helpers.ModelsTestCase): self.handler = RebuildImagesOnImageAdvisoryChange() self.db_event = MagicMock() + def test_can_handle(self): + self.event.advisory.content_types = ["docker"] + ret = self.handler.can_handle(self.event) + self.assertTrue(ret) + + def test_can_handle_non_docker_advisory(self): + self.event.advisory.content_types = ["rpm"] + ret = self.handler.can_handle(self.event) + self.assertFalse(ret) + @patch.object(freshmaker.conf, 'handler_build_whitelist', new={ 'RebuildImagesOnImageAdvisoryChange': { "image": {"advisory_state": "SHIPPED_LIVE"}