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

Make GA-GID and GA-SID optional

parent aab233b7
No related branches found
No related tags found
1 merge request!191Make GA-GID and GA-SID optional
Pipeline #86156 passed
...@@ -62,7 +62,7 @@ class IptrunkImportModel(BaseModel): ...@@ -62,7 +62,7 @@ class IptrunkImportModel(BaseModel):
"""Required fields for importing an existing :class:`gso.products.product_types.iptrunk`.""" """Required fields for importing an existing :class:`gso.products.product_types.iptrunk`."""
partner: str partner: str
geant_s_sid: str geant_s_sid: str | None
iptrunk_type: IptrunkType iptrunk_type: IptrunkType
iptrunk_description: str iptrunk_description: str
iptrunk_speed: PhysicalPortCapacity iptrunk_speed: PhysicalPortCapacity
...@@ -70,11 +70,11 @@ class IptrunkImportModel(BaseModel): ...@@ -70,11 +70,11 @@ class IptrunkImportModel(BaseModel):
iptrunk_isis_metric: int iptrunk_isis_metric: int
side_a_node_id: str side_a_node_id: str
side_a_ae_iface: str side_a_ae_iface: str
side_a_ae_geant_a_sid: str side_a_ae_geant_a_sid: str | None
side_a_ae_members: list[LAGMember] side_a_ae_members: list[LAGMember]
side_b_node_id: str side_b_node_id: str
side_b_ae_iface: str side_b_ae_iface: str
side_b_ae_geant_a_sid: str side_b_ae_geant_a_sid: str | None
side_b_ae_members: list[LAGMember] side_b_ae_members: list[LAGMember]
iptrunk_ipv4_network: ipaddress.IPv4Network iptrunk_ipv4_network: ipaddress.IPv4Network
......
...@@ -139,7 +139,7 @@ class IptrunkBlock(IptrunkBlockProvisioning, lifecycle=[SubscriptionLifecycle.AC ...@@ -139,7 +139,7 @@ class IptrunkBlock(IptrunkBlockProvisioning, lifecycle=[SubscriptionLifecycle.AC
"""A trunk that's currently deployed in the network.""" """A trunk that's currently deployed in the network."""
#: GÉANT service ID associated with this trunk. #: GÉANT service ID associated with this trunk.
geant_s_sid: str geant_s_sid: str | None = None
#: A human-readable description of this trunk. #: A human-readable description of this trunk.
iptrunk_description: str iptrunk_description: str
#: The type of trunk, can be either dark fibre or leased capacity. #: The type of trunk, can be either dark fibre or leased capacity.
......
...@@ -57,7 +57,7 @@ def initial_input_form_generator(product_name: str) -> FormGenerator: ...@@ -57,7 +57,7 @@ def initial_input_form_generator(product_name: str) -> FormGenerator:
tt_number: str tt_number: str
partner: str = ReadOnlyField("GEANT") partner: str = ReadOnlyField("GEANT")
geant_s_sid: str geant_s_sid: str | None
iptrunk_description: str iptrunk_description: str
iptrunk_type: IptrunkType iptrunk_type: IptrunkType
iptrunk_speed: PhysicalPortCapacity iptrunk_speed: PhysicalPortCapacity
...@@ -108,7 +108,7 @@ def initial_input_form_generator(product_name: str) -> FormGenerator: ...@@ -108,7 +108,7 @@ def initial_input_form_generator(product_name: str) -> FormGenerator:
title = f"Provide subscription details for side A of the trunk.({router_a_fqdn})" title = f"Provide subscription details for side A of the trunk.({router_a_fqdn})"
side_a_ae_iface: available_lags_choices(router_a) or str # type: ignore[valid-type] side_a_ae_iface: available_lags_choices(router_a) or str # type: ignore[valid-type]
side_a_ae_geant_a_sid: str side_a_ae_geant_a_sid: str | None
side_a_ae_members: ae_members_side_a # type: ignore[valid-type] side_a_ae_members: ae_members_side_a # type: ignore[valid-type]
@validator("side_a_ae_members", allow_reuse=True) @validator("side_a_ae_members", allow_reuse=True)
...@@ -159,7 +159,7 @@ def initial_input_form_generator(product_name: str) -> FormGenerator: ...@@ -159,7 +159,7 @@ def initial_input_form_generator(product_name: str) -> FormGenerator:
title = f"Provide subscription details for side B of the trunk.({router_b_fqdn})" title = f"Provide subscription details for side B of the trunk.({router_b_fqdn})"
side_b_ae_iface: available_lags_choices(router_b) or str # type: ignore[valid-type] side_b_ae_iface: available_lags_choices(router_b) or str # type: ignore[valid-type]
side_b_ae_geant_a_sid: str side_b_ae_geant_a_sid: str | None
side_b_ae_members: ae_members_side_b # type: ignore[valid-type] side_b_ae_members: ae_members_side_b # type: ignore[valid-type]
@validator("side_b_ae_members", allow_reuse=True) @validator("side_b_ae_members", allow_reuse=True)
...@@ -209,18 +209,18 @@ def get_info_from_ipam(subscription: IptrunkInactive) -> State: ...@@ -209,18 +209,18 @@ def get_info_from_ipam(subscription: IptrunkInactive) -> State:
@step("Initialize subscription") @step("Initialize subscription")
def initialize_subscription( def initialize_subscription(
subscription: IptrunkInactive, subscription: IptrunkInactive,
geant_s_sid: str, geant_s_sid: str | None,
iptrunk_type: IptrunkType, iptrunk_type: IptrunkType,
iptrunk_description: str, iptrunk_description: str,
iptrunk_speed: PhysicalPortCapacity, iptrunk_speed: PhysicalPortCapacity,
iptrunk_minimum_links: int, iptrunk_minimum_links: int,
side_a_node_id: str, side_a_node_id: str,
side_a_ae_iface: str, side_a_ae_iface: str,
side_a_ae_geant_a_sid: str, side_a_ae_geant_a_sid: str | None,
side_a_ae_members: list[dict], side_a_ae_members: list[dict],
side_b_node_id: str, side_b_node_id: str,
side_b_ae_iface: str, side_b_ae_iface: str,
side_b_ae_geant_a_sid: str, side_b_ae_geant_a_sid: str | None,
side_b_ae_members: list[dict], side_b_ae_members: list[dict],
) -> State: ) -> State:
"""Take all input from the user, and store it in the database.""" """Take all input from the user, and store it in the database."""
......
...@@ -79,7 +79,7 @@ def initial_input_form_generator(subscription_id: UUIDstr) -> FormGenerator: ...@@ -79,7 +79,7 @@ def initial_input_form_generator(subscription_id: UUIDstr) -> FormGenerator:
class ModifyIptrunkForm(FormPage): class ModifyIptrunkForm(FormPage):
tt_number: str tt_number: str
geant_s_sid: str = subscription.iptrunk.geant_s_sid geant_s_sid: str | None = subscription.iptrunk.geant_s_sid
iptrunk_description: str = subscription.iptrunk.iptrunk_description iptrunk_description: str = subscription.iptrunk.iptrunk_description
iptrunk_type: IptrunkType = subscription.iptrunk.iptrunk_type iptrunk_type: IptrunkType = subscription.iptrunk.iptrunk_type
warning_label: Label = ( warning_label: Label = (
...@@ -105,7 +105,7 @@ def initial_input_form_generator(subscription_id: UUIDstr) -> FormGenerator: ...@@ -105,7 +105,7 @@ def initial_input_form_generator(subscription_id: UUIDstr) -> FormGenerator:
side_a_node: str = ReadOnlyField(subscription.iptrunk.iptrunk_sides[0].iptrunk_side_node.router_fqdn) side_a_node: str = ReadOnlyField(subscription.iptrunk.iptrunk_sides[0].iptrunk_side_node.router_fqdn)
side_a_ae_iface: str = ReadOnlyField(subscription.iptrunk.iptrunk_sides[0].iptrunk_side_ae_iface) side_a_ae_iface: str = ReadOnlyField(subscription.iptrunk.iptrunk_sides[0].iptrunk_side_ae_iface)
side_a_ae_geant_a_sid: str = subscription.iptrunk.iptrunk_sides[0].iptrunk_side_ae_geant_a_sid side_a_ae_geant_a_sid: str | None = subscription.iptrunk.iptrunk_sides[0].iptrunk_side_ae_geant_a_sid
side_a_ae_members: ae_members_side_a = ( # type: ignore[valid-type] side_a_ae_members: ae_members_side_a = ( # type: ignore[valid-type]
subscription.iptrunk.iptrunk_sides[0].iptrunk_side_ae_members subscription.iptrunk.iptrunk_sides[0].iptrunk_side_ae_members
if initial_user_input.iptrunk_speed == subscription.iptrunk.iptrunk_speed if initial_user_input.iptrunk_speed == subscription.iptrunk.iptrunk_speed
...@@ -130,7 +130,7 @@ def initial_input_form_generator(subscription_id: UUIDstr) -> FormGenerator: ...@@ -130,7 +130,7 @@ def initial_input_form_generator(subscription_id: UUIDstr) -> FormGenerator:
side_b_node: str = ReadOnlyField(subscription.iptrunk.iptrunk_sides[1].iptrunk_side_node.router_fqdn) side_b_node: str = ReadOnlyField(subscription.iptrunk.iptrunk_sides[1].iptrunk_side_node.router_fqdn)
side_b_ae_iface: str = ReadOnlyField(subscription.iptrunk.iptrunk_sides[1].iptrunk_side_ae_iface) side_b_ae_iface: str = ReadOnlyField(subscription.iptrunk.iptrunk_sides[1].iptrunk_side_ae_iface)
side_b_ae_geant_a_sid: str = subscription.iptrunk.iptrunk_sides[1].iptrunk_side_ae_geant_a_sid side_b_ae_geant_a_sid: str | None = subscription.iptrunk.iptrunk_sides[1].iptrunk_side_ae_geant_a_sid
side_b_ae_members: ae_members_side_b = ( # type: ignore[valid-type] side_b_ae_members: ae_members_side_b = ( # type: ignore[valid-type]
subscription.iptrunk.iptrunk_sides[1].iptrunk_side_ae_members subscription.iptrunk.iptrunk_sides[1].iptrunk_side_ae_members
if initial_user_input.iptrunk_speed == subscription.iptrunk.iptrunk_speed if initial_user_input.iptrunk_speed == subscription.iptrunk.iptrunk_speed
...@@ -154,14 +154,14 @@ def initial_input_form_generator(subscription_id: UUIDstr) -> FormGenerator: ...@@ -154,14 +154,14 @@ def initial_input_form_generator(subscription_id: UUIDstr) -> FormGenerator:
@step("Update subscription") @step("Update subscription")
def modify_iptrunk_subscription( def modify_iptrunk_subscription(
subscription: Iptrunk, subscription: Iptrunk,
geant_s_sid: str, geant_s_sid: str | None,
iptrunk_type: IptrunkType, iptrunk_type: IptrunkType,
iptrunk_description: str, iptrunk_description: str,
iptrunk_speed: PhysicalPortCapacity, iptrunk_speed: PhysicalPortCapacity,
iptrunk_minimum_links: int, iptrunk_minimum_links: int,
side_a_ae_geant_a_sid: str, side_a_ae_geant_a_sid: str | None,
side_a_ae_members: list[dict], side_a_ae_members: list[dict],
side_b_ae_geant_a_sid: str, side_b_ae_geant_a_sid: str | None,
side_b_ae_members: list[dict], side_b_ae_members: list[dict],
) -> State: ) -> State:
"""Modify the subscription in the service database, reflecting the changes to the newly selected interfaces.""" """Modify the subscription in the service database, reflecting the changes to the newly selected interfaces."""
......
...@@ -39,7 +39,7 @@ def initial_input_form_generator() -> FormGenerator: ...@@ -39,7 +39,7 @@ def initial_input_form_generator() -> FormGenerator:
title = "Import Iptrunk" title = "Import Iptrunk"
partner: str partner: str
geant_s_sid: str geant_s_sid: str | None
iptrunk_description: str iptrunk_description: str
iptrunk_type: IptrunkType iptrunk_type: IptrunkType
iptrunk_speed: PhysicalPortCapacity iptrunk_speed: PhysicalPortCapacity
...@@ -48,12 +48,12 @@ def initial_input_form_generator() -> FormGenerator: ...@@ -48,12 +48,12 @@ def initial_input_form_generator() -> FormGenerator:
side_a_node_id: router_enum # type: ignore[valid-type] side_a_node_id: router_enum # type: ignore[valid-type]
side_a_ae_iface: str side_a_ae_iface: str
side_a_ae_geant_a_sid: str side_a_ae_geant_a_sid: str | None
side_a_ae_members: UniqueConstrainedList[LAGMember] side_a_ae_members: UniqueConstrainedList[LAGMember]
side_b_node_id: router_enum # type: ignore[valid-type] side_b_node_id: router_enum # type: ignore[valid-type]
side_b_ae_iface: str side_b_ae_iface: str
side_b_ae_geant_a_sid: str side_b_ae_geant_a_sid: str | None
side_b_ae_members: UniqueConstrainedList[LAGMember] side_b_ae_members: UniqueConstrainedList[LAGMember]
iptrunk_ipv4_network: ipaddress.IPv4Network iptrunk_ipv4_network: ipaddress.IPv4Network
...@@ -80,7 +80,7 @@ def create_subscription(partner: str) -> State: ...@@ -80,7 +80,7 @@ def create_subscription(partner: str) -> State:
@step("Initialize subscription") @step("Initialize subscription")
def initialize_subscription( def initialize_subscription(
subscription: IptrunkInactive, subscription: IptrunkInactive,
geant_s_sid: str, geant_s_sid: str | None,
iptrunk_type: IptrunkType, iptrunk_type: IptrunkType,
iptrunk_description: str, iptrunk_description: str,
iptrunk_speed: PhysicalPortCapacity, iptrunk_speed: PhysicalPortCapacity,
...@@ -88,11 +88,11 @@ def initialize_subscription( ...@@ -88,11 +88,11 @@ def initialize_subscription(
iptrunk_isis_metric: int, iptrunk_isis_metric: int,
side_a_node_id: str, side_a_node_id: str,
side_a_ae_iface: str, side_a_ae_iface: str,
side_a_ae_geant_a_sid: str, side_a_ae_geant_a_sid: str | None,
side_a_ae_members: list[dict], side_a_ae_members: list[dict],
side_b_node_id: str, side_b_node_id: str,
side_b_ae_iface: str, side_b_ae_iface: str,
side_b_ae_geant_a_sid: str, side_b_ae_geant_a_sid: str | None,
side_b_ae_members: list[dict], side_b_ae_members: list[dict],
) -> State: ) -> State:
"""Take all input from the user, and store it in the database.""" """Take all input from the user, and store it in the database."""
......
...@@ -71,7 +71,7 @@ def input_form_wizard_data(request, juniper_router_subscription_factory, nokia_r ...@@ -71,7 +71,7 @@ def input_form_wizard_data(request, juniper_router_subscription_factory, nokia_r
create_ip_trunk_side_a_router_name = {"side_a_node_id": router_side_a} create_ip_trunk_side_a_router_name = {"side_a_node_id": router_side_a}
create_ip_trunk_side_a_step = { create_ip_trunk_side_a_step = {
"side_a_ae_iface": "lag-1", "side_a_ae_iface": "lag-1",
"side_a_ae_geant_a_sid": faker.geant_sid(), "side_a_ae_geant_a_sid": None,
"side_a_ae_members": [ "side_a_ae_members": [
LAGMember( LAGMember(
interface_name=f"Interface{interface}", interface_name=f"Interface{interface}",
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment