Skip to content
Snippets Groups Projects

Add Edge Port, GÉANT IP and IAS products

Merged Karel van Klink requested to merge feature/add-geant-ip into develop
All threads resolved!
17 files
+ 115
85
Compare changes
  • Side-by-side
  • Inline
Files
17
"""Product blocks for :class:`GeantIP` products."""
"""Product blocks for :class:`NREN` Layer 3 Core Service products."""
from orchestrator.domain.base import ProductBlockModel
from orchestrator.domain.base import ProductBlockModel
from orchestrator.types import SubscriptionLifecycle
from orchestrator.types import SubscriptionLifecycle
@@ -17,42 +17,44 @@ class NRENAccessPortInactive(
@@ -17,42 +17,44 @@ class NRENAccessPortInactive(
):
):
"""An access port for an R&E :term:`NREN` service that is inactive."""
"""An access port for an R&E :term:`NREN` service that is inactive."""
nren_ap_type: APType | None = None
ap_type: APType | None = None
geant_ip_sbp: ServiceBindingPortInactive
sbp: ServiceBindingPortInactive
class NRENAccessPortProvisioning(NRENAccessPortInactive, lifecycle=[SubscriptionLifecycle.PROVISIONING]):
class NRENAccessPortProvisioning(NRENAccessPortInactive, lifecycle=[SubscriptionLifecycle.PROVISIONING]):
"""An access port for an R&E :term:`NREN` service that is being provisioned."""
"""An access port for an R&E :term:`NREN` service that is being provisioned."""
nren_ap_type: APType
ap_type: APType
geant_ip_sbp: ServiceBindingPortProvisioning
sbp: ServiceBindingPortProvisioning
class NRENAccessPort(NRENAccessPortProvisioning, lifecycle=[SubscriptionLifecycle.ACTIVE]):
class NRENAccessPort(NRENAccessPortProvisioning, lifecycle=[SubscriptionLifecycle.ACTIVE]):
"""An access port for an R&E :term:`NREN` service."""
"""An access port for an R&E :term:`NREN` service."""
#: The type of Access Port
#: The type of Access Port
nren_ap_type: APType
ap_type: APType
#: The corresponding :term:`SBP` of this Access Port.
#: The corresponding :term:`SBP` of this Access Port.
geant_ip_sbp: ServiceBindingPort
sbp: ServiceBindingPort
class GeantIPBlockInactive(
class NRENL3CoreServiceBlockInactive(
ProductBlockModel, lifecycle=[SubscriptionLifecycle.INITIAL], product_block_name="GeantIPBlock"
ProductBlockModel, lifecycle=[SubscriptionLifecycle.INITIAL], product_block_name="NRENL3CoreServiceBlock"
):
):
"""A GÉANT IP subscription that is currently inactive. See :class:`GeantIPBlock`."""
"""An inactive :term:`NREN` L3 Core service subscription. See :class:`NRENL3CoreServiceBlock`."""
geant_ip_ap_list: list[NRENAccessPortInactive] = Field(default_factory=list)
nren_ap_list: list[NRENAccessPortInactive] = Field(default_factory=list)
class GeantIPBlockProvisioning(GeantIPBlockInactive, lifecycle=[SubscriptionLifecycle.PROVISIONING]):
class NRENL3CoreServiceBlockProvisioning(
"""A GÉANT IP subscription that is currently being provisioned. See :class:`GeantIPBlock`."""
NRENL3CoreServiceBlockInactive, lifecycle=[SubscriptionLifecycle.PROVISIONING]
 
):
 
"""A provisioning :term:`NREN` L3 Core Service subscription. See :class:`NRENL3CoreServiceBlock`."""
geant_ip_ap_list: list[NRENAccessPortProvisioning] # type: ignore[assignment]
nren_ap_list: list[NRENAccessPortProvisioning] # type: ignore[assignment]
class GeantIPBlock(GeantIPBlockProvisioning, lifecycle=[SubscriptionLifecycle.ACTIVE]):
class NRENL3CoreServiceBlock(NRENL3CoreServiceBlockProvisioning, lifecycle=[SubscriptionLifecycle.ACTIVE]):
"""A GÉANT IP subscription block."""
"""An active :term:`NREN` L3 Core Service subscription block."""
#: The list of Access Points where this service is present.
#: The list of Access Points where this service is present.
geant_ip_ap_list: list[NRENAccessPort] # type: ignore[assignment]
nren_ap_list: list[NRENAccessPort] # type: ignore[assignment]
Loading