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

move productType enum into __init__ file for products

parent 285e9068
No related branches found
No related tags found
1 merge request!83Clean up the repo a bit, and add some unit tests
"""Module that updates the domain model of :term:`GSO`. Should contain all types of subscriptions."""
from orchestrator.domain import SUBSCRIPTION_MODEL_REGISTRY
from pydantic_forms.types import strEnum
from gso.products.product_types.iptrunk import Iptrunk
from gso.products.product_types.router import Router
from gso.products.product_types.site import Site
class ProductType(strEnum):
SITE = "Site"
ROUTER = "Router"
IP_TRUNK = "IP trunk"
SUBSCRIPTION_MODEL_REGISTRY.update(
{
"Site": Site,
"Router": Router,
"IP trunk": Iptrunk,
ProductType.SITE.value: Site,
ProductType.ROUTER.value: Router,
ProductType.IP_TRUNK.value: Iptrunk,
}
)
__all__ = ["Site", "Iptrunk", "Router"]
from orchestrator.types import strEnum
class ProductType(strEnum):
SITE = "Site"
ROUTER = "Router"
IP_TRUNK = "IP trunk"
class SubscriptionStatus(strEnum):
ACTIVE = "active"
......@@ -8,14 +8,12 @@ from orchestrator.db import (
SubscriptionInstanceValueTable,
SubscriptionTable,
)
from orchestrator.types import SubscriptionLifecycle
from gso.schemas.enums import ProductType, SubscriptionStatus
from gso.products import ProductType
def get_active_subscriptions(
product_type: str,
fields: list[str],
) -> list[Subscription]:
def get_active_subscriptions(product_type: str, fields: list[str]) -> list[Subscription]:
"""Retrieve active subscriptions for a specific product type.
:param product_type: The type of the product for which to retrieve subscriptions.
......@@ -32,7 +30,7 @@ def get_active_subscriptions(
SubscriptionTable.query.join(ProductTable)
.filter(
ProductTable.product_type == product_type,
SubscriptionTable.status == SubscriptionStatus.ACTIVE,
SubscriptionTable.status == SubscriptionLifecycle.ACTIVE,
)
.with_entities(*dynamic_fields)
.all()
......@@ -91,6 +89,6 @@ def get_active_site_subscription_by_name(site_name: str) -> Subscription:
.join(ResourceTypeTable)
.filter(SubscriptionInstanceValueTable.value == site_name)
.filter(ResourceTypeTable.resource_type == "site_name")
.filter(SubscriptionTable.status == SubscriptionStatus.ACTIVE)
.filter(SubscriptionTable.status == SubscriptionLifecycle.ACTIVE)
.first()
)
......@@ -11,7 +11,7 @@ from orchestrator.workflows.steps import resync, set_status, store_process_subsc
from gso.products.product_blocks import PhyPortCapacity
from gso.products.product_blocks.iptrunk import IptrunkType
from gso.products.product_types.iptrunk import IptrunkInactive, IptrunkProvisioning
from gso.schemas.enums import ProductType
from gso.products import ProductType
from gso.services import subscriptions
from gso.services.crm import get_customer_by_name
from gso.workflows.iptrunk.create_iptrunk import initialize_subscription
......
......@@ -14,7 +14,7 @@ from gso.products.product_types import router
from gso.products.product_types.router import RouterInactive
from gso.products.product_types.site import Site
from gso.products.shared import PortNumber
from gso.schemas.enums import ProductType
from gso.products import ProductType
from gso.services import subscriptions
from gso.services.crm import get_customer_by_name
......
......@@ -8,7 +8,7 @@ from orchestrator.workflows.steps import resync, set_status, store_process_subsc
from gso.products.product_blocks.site import SiteTier
from gso.products.product_types.site import SiteInactive
from gso.schemas.enums import ProductType
from gso.products import ProductType
from gso.services import subscriptions
from gso.services.crm import get_customer_by_name
from gso.workflows.site.create_site import initialize_subscription
......
......@@ -9,8 +9,8 @@ from gso.products.product_blocks.router import RouterRole, RouterVendor
from gso.products.product_blocks.site import SiteTier
from gso.products.product_types.router import RouterInactive
from gso.products.product_types.site import Site, SiteInactive
from gso.schemas.enums import ProductType
from gso.services import subscriptions
from gso.products import ProductType
CUSTOMER_ID: UUIDstr = "2f47f65a-0911-e511-80d0-005056956c1a"
......
......@@ -6,7 +6,7 @@ import pytest
from gso.products import Iptrunk
from gso.products.product_blocks import PhyPortCapacity
from gso.products.product_blocks.iptrunk import IptrunkType
from gso.schemas.enums import ProductType
from gso.products import ProductType
from gso.services.crm import get_customer_by_name
from gso.services.subscriptions import get_product_id_by_name
from gso.workflows.utils import customer_selector
......
......@@ -2,7 +2,7 @@ import pytest
from gso.products.product_blocks.site import SiteTier
from gso.products.product_types.site import Site
from gso.schemas.enums import ProductType
from gso.products import ProductType
from gso.services.crm import get_customer_by_name
from gso.services.subscriptions import get_product_id_by_name
from test.workflows import assert_complete, extract_state, run_workflow
......
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