From c6cb04d36d06ed24f574810ecf6aa911d73d662b Mon Sep 17 00:00:00 2001 From: Jan Kaluza Date: Feb 01 2019 08:29:05 +0000 Subject: Tweak the BUILDING/COMPLETE Event state reasons to contain more useful info. These messages are used in various systems to show the summary of the event, so we should try to show some useful information there. --- 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 4b63830..59d4cc2 100644 --- a/freshmaker/handlers/bob/rebuild_images_on_image_advisory_change.py +++ b/freshmaker/handlers/bob/rebuild_images_on_image_advisory_change.py @@ -100,6 +100,10 @@ class RebuildImagesOnImageAdvisoryChange(ContainerBuildHandler): self.log_info("Found following Docker repositories updated by the advisory: %r", docker_repos.keys()) + # Count the number of impacted builds to show them in state reason + # when moving the Event to COMPLETE. + num_impacted = None + # Submit rebuild request to Bob :). for repo_name in docker_repos.keys(): self.log_info("Requesting Bob rebuild of %s", repo_name) @@ -120,10 +124,18 @@ class RebuildImagesOnImageAdvisoryChange(ContainerBuildHandler): resp = r.json() self.log_info("Response: %r", resp) if "impacted" in resp: + if num_impacted is None: + num_impacted = 0 + num_impacted += len(resp["impacted"]) for external_repo_name in resp["impacted"]: self.record_build( db_event, external_repo_name, ArtifactType.IMAGE_REPOSITORY, state=ArtifactBuildState.DONE.value, dep_on=parent_build) - db_event.transition(EventState.COMPLETE) + msg = "Advisory %s: Informed Bob about update of %d image repositories." % ( + db_event.search_key, len(docker_repos)) + if num_impacted is not None: + msg += " Bob is rebuilding %d impacted external image repositories." % ( + num_impacted) + db_event.transition(EventState.COMPLETE, msg) db.session.commit() diff --git a/freshmaker/handlers/koji/rebuild_images_on_parent_image_build.py b/freshmaker/handlers/koji/rebuild_images_on_parent_image_build.py index f560dc3..5673508 100644 --- a/freshmaker/handlers/koji/rebuild_images_on_parent_image_build.py +++ b/freshmaker/handlers/koji/rebuild_images_on_parent_image_build.py @@ -147,13 +147,13 @@ class RebuildImagesOnParentImageBuild(ContainerBuildHandler): if num_failed: db_event.transition( EventState.COMPLETE, - '%d of %d container image(s) failed to rebuild.' % ( - num_failed, len(db_event.builds),)) + 'Advisory %s: %d of %d container image(s) failed to rebuild.' % ( + db_event.search_key, num_failed, len(db_event.builds),)) else: db_event.transition( EventState.COMPLETE, - 'All %s container images have been rebuilt.' % ( - len(db_event.builds),)) + 'Advisory %s: All %s container images have been rebuilt.' % ( + db_event.search_key, len(db_event.builds),)) def _verify_advisory_rpms_in_container_build(self, errata_id, container_build_id): """ 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 46b6d3c..0546ce1 100644 --- a/freshmaker/handlers/koji/rebuild_images_on_rpm_advisory_change.py +++ b/freshmaker/handlers/koji/rebuild_images_on_rpm_advisory_change.py @@ -123,8 +123,8 @@ class RebuildImagesOnRPMAdvisoryChange(ContainerBuildHandler): self.start_to_build_images( db_event.get_image_builds_in_first_batch(db.session)) - msg = ('Waiting for composes to finish in order to start to ' - 'schedule images for rebuild.') + msg = 'Advisory %s: Rebuilding %d container images.' % ( + db_event.search_key, len(db_event.builds)) db_event.transition(EventState.BUILDING, msg) return [] diff --git a/tests/handlers/koji/test_rebuild_images_on_parent_image_build.py b/tests/handlers/koji/test_rebuild_images_on_parent_image_build.py index fb488a6..dce3c00 100644 --- a/tests/handlers/koji/test_rebuild_images_on_parent_image_build.py +++ b/tests/handlers/koji/test_rebuild_images_on_parent_image_build.py @@ -161,7 +161,7 @@ class TestRebuildImagesOnParentImageBuild(helpers.ModelsTestCase): self.assertEqual(EventState.COMPLETE.value, self.db_advisory_rpm_signed_event.state) - self.assertEqual("1 of 4 container image(s) failed to rebuild.", + self.assertEqual("Advisory 12345: 1 of 4 container image(s) failed to rebuild.", self.db_advisory_rpm_signed_event.state_reason) @mock.patch('freshmaker.handlers.ContainerBuildHandler.build_image_artifact_build')