From 2df16921215abb76923090d7308a83e292470d96 Mon Sep 17 00:00:00 2001 From: Karel van Klink <karel.vanklink@geant.org> Date: Fri, 9 May 2025 16:17:22 +0200 Subject: [PATCH] Improve logging in the subscription validation task Fix an issue where validation workflows would run out-of-order, or in duplicate. --- gso/cli/schedule.py | 1 - gso/schedules/validate_subscriptions.py | 33 +++++++++++++++++++------ 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/gso/cli/schedule.py b/gso/cli/schedule.py index 3446977d8..b0a29c056 100644 --- a/gso/cli/schedule.py +++ b/gso/cli/schedule.py @@ -16,7 +16,6 @@ # limitations under the License. # <!-- vale on --> - import logging from collections.abc import Callable diff --git a/gso/schedules/validate_subscriptions.py b/gso/schedules/validate_subscriptions.py index 7323b6086..db3573802 100644 --- a/gso/schedules/validate_subscriptions.py +++ b/gso/schedules/validate_subscriptions.py @@ -37,26 +37,43 @@ def validate_subscriptions() -> None: return for subscription in subscriptions: - validation_workflow = None - + found_a_validation_workflow = False for workflow in subscription.product.workflows: if workflow.target == Target.SYSTEM and workflow.name.startswith("validate_"): validation_workflow = workflow.name - - if validation_workflow: + found_a_validation_workflow = True validation_workflow_usable = (subscription.status in TARGET_DEFAULT_USABLE_MAP[Target.SYSTEM]) and ( - subscription.insync or (workflow in WF_USABLE_WHILE_OUT_OF_SYNC) + subscription.insync or (validation_workflow in WF_USABLE_WHILE_OUT_OF_SYNC) ) if validation_workflow_usable: - json = [{"subscription_id": str(subscription.subscription_id)}] + logger.info( + "Found a usable validation workflow, scheduling task.", + product=subscription.product.name, + subscription_id=subscription.subscription_id, + subscription_description=subscription.description, + workflow=validation_workflow, + ) + json = [{"subscription_id": str(subscription.subscription_id)}] validate_func = get_execution_context()["validate"] validate_func(validation_workflow, json=json) - if not validation_workflow: + else: + logger.info( + "Validation workflow is not usable on this subscription instance", + product=subscription.product.name, + subscription_id=subscription.subscription_id, + subscription_description=subscription.description, + status=subscription.status, + insync=subscription.insync, + workflow=validation_workflow, + ) + + if not found_a_validation_workflow: logger.warning( "SubscriptionTable has no validation workflow", - subscription=subscription, product=subscription.product.name, + subscription_id=subscription.subscription_id, + subscription_description=subscription.description, ) -- GitLab