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

update iptrunk service model

parent 162dc793
Branches
Tags
1 merge request!83Clean up the repo a bit, and add some unit tests
...@@ -20,6 +20,24 @@ class IptrunkType(strEnum): ...@@ -20,6 +20,24 @@ class IptrunkType(strEnum):
T = TypeVar("T", covariant=True) T = TypeVar("T", covariant=True)
class IptrunkInterfaceBlockInactive(
ProductBlockModel, lifecycle=[SubscriptionLifecycle.INITIAL], product_block_name="IptrunkInterfaceBlock"
):
# TODO: add validation for interface names, making the type a constrained string
interface_name: str | None = None
interface_description: str | None = None
class IptrunkInterfaceBlockProvisioning(IptrunkInterfaceBlockInactive, lifecycle=[SubscriptionLifecycle.PROVISIONING]):
interface_name: str
interface_description: str
class IptrunkInterfaceBlock(IptrunkInterfaceBlockProvisioning, lifecycle=[SubscriptionLifecycle.ACTIVE]):
interface_name: str
interface_description: str
class IptrunkSides(UniqueConstrainedList[T]): # type: ignore[type-var] class IptrunkSides(UniqueConstrainedList[T]): # type: ignore[type-var]
min_items = 2 min_items = 2
max_items = 2 max_items = 2
...@@ -31,24 +49,21 @@ class IptrunkSideBlockInactive( ...@@ -31,24 +49,21 @@ class IptrunkSideBlockInactive(
iptrunk_side_node: RouterBlockInactive iptrunk_side_node: RouterBlockInactive
iptrunk_side_ae_iface: str | None = None iptrunk_side_ae_iface: str | None = None
iptrunk_side_ae_geant_a_sid: str | None = None iptrunk_side_ae_geant_a_sid: str | None = None
iptrunk_side_ae_members: list[str] = Field(default_factory=list) iptrunk_side_ae_members: list[IptrunkInterfaceBlockInactive] = Field(default_factory=list)
iptrunk_side_ae_members_description: list[str] = Field(default_factory=list)
class IptrunkSideBlockProvisioning(IptrunkSideBlockInactive, lifecycle=[SubscriptionLifecycle.PROVISIONING]): class IptrunkSideBlockProvisioning(IptrunkSideBlockInactive, lifecycle=[SubscriptionLifecycle.PROVISIONING]):
iptrunk_side_node: RouterBlockProvisioning iptrunk_side_node: RouterBlockProvisioning
iptrunk_side_ae_iface: str | None = None iptrunk_side_ae_iface: str | None = None
iptrunk_side_ae_geant_a_sid: str | None = None iptrunk_side_ae_geant_a_sid: str | None = None
iptrunk_side_ae_members: list[str] = Field(default_factory=list) iptrunk_side_ae_members: list[IptrunkInterfaceBlockProvisioning] = Field(default_factory=list)
iptrunk_side_ae_members_description: list[str] = Field(default_factory=list)
class IptrunkSideBlock(IptrunkSideBlockProvisioning, lifecycle=[SubscriptionLifecycle.ACTIVE]): class IptrunkSideBlock(IptrunkSideBlockProvisioning, lifecycle=[SubscriptionLifecycle.ACTIVE]):
iptrunk_side_node: RouterBlock iptrunk_side_node: RouterBlock
iptrunk_side_ae_iface: str | None = None iptrunk_side_ae_iface: str | None = None
iptrunk_side_ae_geant_a_sid: str | None = None iptrunk_side_ae_geant_a_sid: str | None = None
iptrunk_side_ae_members: list[str] = Field(default_factory=list) iptrunk_side_ae_members: list[IptrunkInterfaceBlock] = Field(default_factory=list)
iptrunk_side_ae_members_description: list[str] = Field(default_factory=list)
class IptrunkBlockInactive( class IptrunkBlockInactive(
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment