From cc33797ee86132cfc91543aabedbb956071734d4 Mon Sep 17 00:00:00 2001 From: gnaponie Date: Aug 22 2019 13:15:33 +0000 Subject: Correct wrong dependency Some images have "rebuild_reason" wrongly set to "dependency", even though they are directly affected by the CVE. This will cause botas to ignore these images. This commit wants to address this issue. ref: FACTORY-5031 Signed-off-by: gnaponie --- 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 d5ab453..21a757a 100644 --- a/freshmaker/handlers/koji/rebuild_images_on_rpm_advisory_change.py +++ b/freshmaker/handlers/koji/rebuild_images_on_rpm_advisory_change.py @@ -263,7 +263,7 @@ class RebuildImagesOnRPMAdvisoryChange(ContainerBuildHandler): # rebuild. If some image is not in the latest released version and # it is included in a rebuild, it must be just a dependency of # other image. - if "latest_released" in image: + if image.get('directly_affected'): rebuild_reason = RebuildReason.DIRECTLY_AFFECTED.value else: rebuild_reason = RebuildReason.DEPENDENCY.value diff --git a/freshmaker/lightblue.py b/freshmaker/lightblue.py index 7a69f79..a0e196c 100644 --- a/freshmaker/lightblue.py +++ b/freshmaker/lightblue.py @@ -1313,6 +1313,7 @@ class LightBlue(object): release_categories = image.get("release_categories", []) if "Beta" not in release_categories and "Tech Preview" not in release_categories: image["latest_released"] = True + image["directly_affected"] = True return image resolved_images = [] 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 712c734..c9249a6 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 @@ -835,8 +835,8 @@ class TestBatches(helpers.ModelsTestCase): [self._mock_build("child1_parent2", "child1_parent3"), self._mock_build("child2_parent1", "child2_parent2")], [self._mock_build("child1_parent1", "child1_parent2", error="Fail"), - self._mock_build("child2", "child2_parent1", latest_released=True)], - [self._mock_build("child1", "child1_parent1", latest_released=True)]] + self._mock_build("child2", "child2_parent1", directly_affected=True)], + [self._mock_build("child1", "child1_parent1", directly_affected=True)]] # Flat list of images from batches with brew build id as a key. images = {} diff --git a/tests/test_lightblue.py b/tests/test_lightblue.py index 19fced0..8f19212 100644 --- a/tests/test_lightblue.py +++ b/tests/test_lightblue.py @@ -1182,6 +1182,7 @@ class TestQueryEntityFromLightBlue(helpers.FreshmakerTestCase): }, 'content_sets': ["dummy-content-set-1"], 'content_sets_source': 'lightblue_container_image', + 'directly_affected': True, "release_categories": ["Generally Available"], 'repositories': [ {'repository': 'product2/repo2', 'published': True,