Skip to content
Snippets Groups Projects
Commit 4e12f70a authored by Karel van Klink's avatar Karel van Klink :smiley_cat: Committed by Neda Moeini
Browse files

Only run validation workflows on subscriptions that are both ACTIVE and in sync

parent 4b015e72
No related branches found
No related tags found
1 merge request!139Feature/add validation workflows
......@@ -6,7 +6,7 @@ from orchestrator.services.subscriptions import TARGET_DEFAULT_USABLE_MAP, WF_US
from orchestrator.targets import Target
from gso.schedules.scheduling import CronScheduleConfig, scheduler
from gso.services.subscriptions import get_insync_subscriptions
from gso.services.subscriptions import get_active_insync_subscriptions
from gso.worker import celery
logger = structlog.get_logger(__name__)
......@@ -16,7 +16,7 @@ logger = structlog.get_logger(__name__)
@scheduler(CronScheduleConfig(name="Subscriptions Validator", minute="10", hour="0"))
def validate_subscriptions() -> None:
"""Validate all subscriptions using their corresponding validation workflow."""
subscriptions = get_insync_subscriptions()
subscriptions = get_active_insync_subscriptions()
if not subscriptions:
logger.info("No subscriptions to validate")
return
......
......@@ -210,6 +210,15 @@ def get_insync_subscriptions() -> list[SubscriptionTable]:
return SubscriptionTable.query.join(ProductTable).filter(SubscriptionTable.insync.is_(True)).all()
def get_active_insync_subscriptions() -> list[SubscriptionTable]:
"""Retrieve all subscriptions that are currently active and in sync."""
return (
SubscriptionTable.query.join(ProductTable)
.filter(SubscriptionTable.insync.is_(True), SubscriptionTable.status.is_(SubscriptionLifecycle.ACTIVE))
.all()
)
def get_site_by_name(site_name: str) -> Site:
"""Get a site by its name.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment