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

move router vendor into product type

parent dc9f3763
No related branches found
No related tags found
1 merge request!105Feature/remodel router product
......@@ -13,13 +13,6 @@ from gso.products.product_blocks.site import (
)
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."""
......@@ -54,7 +47,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
......@@ -77,7 +69,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
......@@ -104,8 +95,6 @@ class RouterBlock(RouterBlockProvisioning, lifecycle=[SubscriptionLifecycle.ACTI
router_ias_lt_ipv4_network: ipaddress.IPv4Network | None
#: The :term:`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.
......
......@@ -2,6 +2,7 @@
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,
......@@ -10,19 +11,29 @@ from gso.products.product_blocks.router import (
)
class RouterVendor(strEnum):
"""Enumerator for the different product vendors that are supported."""
JUNIPER = "juniper"
NOKIA = "nokia"
class RouterInactive(SubscriptionModel, is_base=True):
"""An inactive router."""
vendor: RouterVendor
router: RouterBlockInactive
class RouterProvisioning(RouterInactive, lifecycle=[SubscriptionLifecycle.PROVISIONING]):
"""A router that is being provisioned."""
vendor: RouterVendor
router: RouterBlockProvisioning
class Router(RouterProvisioning, lifecycle=[SubscriptionLifecycle.ACTIVE]):
"""A router that is currently active."""
vendor: RouterVendor
router: RouterBlock
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