Skip to content
Snippets Groups Projects
Verified Commit 2df16921 authored by Karel van Klink's avatar Karel van Klink :smiley_cat:
Browse files

Improve logging in the subscription validation task

Fix an issue where validation workflows would run out-of-order, or in duplicate.
parent 1a277beb
No related branches found
No related tags found
1 merge request!420Improve logging in the subscription validation task
Pipeline #94025 passed
......@@ -16,7 +16,6 @@
# limitations under the License.
# <!-- vale on -->
import logging
from collections.abc import Callable
......
......@@ -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,
)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment