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

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

parent be977d6f
No related branches found
No related tags found
No related merge requests found
...@@ -6,7 +6,7 @@ from orchestrator.services.subscriptions import TARGET_DEFAULT_USABLE_MAP, WF_US ...@@ -6,7 +6,7 @@ from orchestrator.services.subscriptions import TARGET_DEFAULT_USABLE_MAP, WF_US
from orchestrator.targets import Target from orchestrator.targets import Target
from gso.schedules.scheduling import CronScheduleConfig, scheduler 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 from gso.worker import celery
logger = structlog.get_logger(__name__) logger = structlog.get_logger(__name__)
...@@ -16,7 +16,7 @@ logger = structlog.get_logger(__name__) ...@@ -16,7 +16,7 @@ logger = structlog.get_logger(__name__)
@scheduler(CronScheduleConfig(name="Subscriptions Validator", minute="10", hour="0")) @scheduler(CronScheduleConfig(name="Subscriptions Validator", minute="10", hour="0"))
def validate_subscriptions() -> None: def validate_subscriptions() -> None:
"""Validate all subscriptions using their corresponding validation workflow.""" """Validate all subscriptions using their corresponding validation workflow."""
subscriptions = get_insync_subscriptions() subscriptions = get_active_insync_subscriptions()
if not subscriptions: if not subscriptions:
logger.info("No subscriptions to validate") logger.info("No subscriptions to validate")
return return
......
...@@ -210,6 +210,15 @@ def get_insync_subscriptions() -> list[SubscriptionTable]: ...@@ -210,6 +210,15 @@ def get_insync_subscriptions() -> list[SubscriptionTable]:
return SubscriptionTable.query.join(ProductTable).filter(SubscriptionTable.insync.is_(True)).all() 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: def get_site_by_name(site_name: str) -> Site:
"""Get a site by its name. """Get a site by its name.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment