Skip to content
Snippets Groups Projects

Feature/vrf

Merged Neda Moeini requested to merge feature/vrf into develop
All threads resolved!
2 files
+ 103
0
Compare changes
  • Side-by-side
  • Inline
Files
2
+ 46
0
"""Product blocks for Layer 3 Core VRF products."""
from orchestrator.domain.base import ProductBlockModel
from orchestrator.types import SubscriptionLifecycle
from pydantic import Field
from gso.products.product_blocks.nren_l3_core_service import (
NRENAccessPort,
NRENAccessPortInactive,
NRENAccessPortProvisioning,
)
class L3CoreVRFBlockInactive(
ProductBlockModel, lifecycle=[SubscriptionLifecycle.INITIAL], product_block_name="L3CoreVRFBlock"
):
"""An inactive Layer 3 Core VRF service subscription. See :class:`L3CoreVRFBlock`."""
vrf_ap_list: list[NRENAccessPortInactive] = Field(default_factory=list)
vrf_name: str
route_distinguisher: str
route_target: str
class L3CoreVRFBlockProvisioning(
L3CoreVRFBlockInactive, lifecycle=[SubscriptionLifecycle.PROVISIONING]
):
"""A provisioning Layer 3 Core VRF service subscription. See :class:`L3CoreVRFBlock`."""
vrf_ap_list: list[NRENAccessPortProvisioning] # type: ignore[assignment]
vrf_name: str
route_distinguisher: str
route_target: str
class L3CoreVRFBlock(L3CoreVRFBlockProvisioning, lifecycle=[SubscriptionLifecycle.ACTIVE]):
"""Represents an active Layer 3 Core VRF service subscription block."""
#: List of Access Points associated with this VRF.
nren_ap_list: list[NRENAccessPort] # type: ignore[assignment]
#: Unique name identifying this VRF.
vrf_name: str
#: Route Distinguisher (RD) ensuring unique route identification within this VRF.
route_distinguisher: str
#: Route Target (RT) defining routing policies for importing/exporting routes.
route_target: str
Loading