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