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

move router vendor into product type

parent e6d42843
No related branches found
No related tags found
No related merge requests found
......@@ -8,13 +8,6 @@ from pydantic import ConstrainedInt
from gso.products.product_blocks.site import SiteBlock, SiteBlockInactive, SiteBlockProvisioning
class RouterVendor(strEnum):
"""Enumerator for the different product vendors that are supported."""
JUNIPER = "juniper"
NOKIA = "nokia"
class RouterRole(strEnum):
"""Enumerator for the different types of routers."""
......@@ -47,7 +40,6 @@ class RouterBlockInactive(
router_si_ipv4_network: ipaddress.IPv4Network | None = None
router_ias_lt_ipv4_network: ipaddress.IPv4Network | None = None
router_ias_lt_ipv6_network: ipaddress.IPv6Network | None = None
router_vendor: RouterVendor | None = None
router_role: RouterRole | None = None
router_site: SiteBlockInactive | None
router_is_ias_connected: bool | None = None
......@@ -69,7 +61,6 @@ class RouterBlockProvisioning(RouterBlockInactive, lifecycle=[SubscriptionLifecy
router_si_ipv4_network: ipaddress.IPv4Network | None = None
router_ias_lt_ipv4_network: ipaddress.IPv4Network | None = None
router_ias_lt_ipv6_network: ipaddress.IPv6Network | None = None
router_vendor: RouterVendor | None = None
router_role: RouterRole | None = None
router_site: SiteBlockProvisioning | None
router_is_ias_connected: bool | None = None
......@@ -96,8 +87,6 @@ class RouterBlock(RouterBlockProvisioning, lifecycle=[SubscriptionLifecycle.ACTI
router_ias_lt_ipv4_network: ipaddress.IPv4Network | None
#: The IAS LT IPv6 network of the router.
router_ias_lt_ipv6_network: ipaddress.IPv6Network | None
#: The vendor of the router, can be any of the values defined in :class:`RouterVendor`.
router_vendor: RouterVendor
#: The role of the router, which can be any of the values defined in :class:`RouterRole`.
router_role: RouterRole
#: The :class:`Site` that this router resides in. Both physically and computationally.
......
from orchestrator.domain.base import SubscriptionModel
from orchestrator.types import SubscriptionLifecycle
from pydantic_forms.types import strEnum
from gso.products.product_blocks.router import RouterBlock, RouterBlockInactive, RouterBlockProvisioning
class RouterVendor(strEnum):
"""Enumerator for the different product vendors that are supported."""
JUNIPER = "juniper"
NOKIA = "nokia"
class RouterInactive(SubscriptionModel, is_base=True):
vendor: RouterVendor
router: RouterBlockInactive
class RouterProvisioning(RouterInactive, lifecycle=[SubscriptionLifecycle.PROVISIONING]):
vendor: RouterVendor
router: RouterBlockProvisioning
class Router(RouterProvisioning, lifecycle=[SubscriptionLifecycle.ACTIVE]):
vendor: RouterVendor
router: RouterBlock
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment