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):
"""Required fields for importing an existing :class:`gso.products.product_types.iptrunk`."""
partner: str
geant_s_sid: str
geant_s_sid: str | None
iptrunk_type: IptrunkType
iptrunk_description: str
iptrunk_speed: PhysicalPortCapacity
......@@ -70,11 +70,11 @@ class IptrunkImportModel(BaseModel):
iptrunk_isis_metric: int
side_a_node_id: 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_b_node_id: 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]
iptrunk_ipv4_network: ipaddress.IPv4Network
......
......@@ -139,7 +139,7 @@ class IptrunkBlock(IptrunkBlockProvisioning, lifecycle=[SubscriptionLifecycle.AC
"""A trunk that's currently deployed in the network."""
#: 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.
iptrunk_description: str
#: 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:
tt_number: str
partner: str = ReadOnlyField("GEANT")
geant_s_sid: str
geant_s_sid: str | None
iptrunk_description: str
iptrunk_type: IptrunkType
iptrunk_speed: PhysicalPortCapacity
......@@ -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})"
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]
@validator("side_a_ae_members", allow_reuse=True)
......@@ -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})"
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]
@validator("side_b_ae_members", allow_reuse=True)
......@@ -209,18 +209,18 @@ def get_info_from_ipam(subscription: IptrunkInactive) -> State:
@step("Initialize subscription")
def initialize_subscription(
subscription: IptrunkInactive,
geant_s_sid: str,
geant_s_sid: str | None,
iptrunk_type: IptrunkType,
iptrunk_description: str,
iptrunk_speed: PhysicalPortCapacity,
iptrunk_minimum_links: int,
side_a_node_id: 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_b_node_id: 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],
) -> State:
"""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:
class ModifyIptrunkForm(FormPage):
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_type: IptrunkType = subscription.iptrunk.iptrunk_type
warning_label: Label = (
......@@ -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_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]
subscription.iptrunk.iptrunk_sides[0].iptrunk_side_ae_members
if initial_user_input.iptrunk_speed == subscription.iptrunk.iptrunk_speed
......@@ -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_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]
subscription.iptrunk.iptrunk_sides[1].iptrunk_side_ae_members
if initial_user_input.iptrunk_speed == subscription.iptrunk.iptrunk_speed
......@@ -154,14 +154,14 @@ def initial_input_form_generator(subscription_id: UUIDstr) -> FormGenerator:
@step("Update subscription")
def modify_iptrunk_subscription(
subscription: Iptrunk,
geant_s_sid: str,
geant_s_sid: str | None,
iptrunk_type: IptrunkType,
iptrunk_description: str,
iptrunk_speed: PhysicalPortCapacity,
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_b_ae_geant_a_sid: str,
side_b_ae_geant_a_sid: str | None,
side_b_ae_members: list[dict],
) -> State:
"""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:
title = "Import Iptrunk"
partner: str
geant_s_sid: str
geant_s_sid: str | None
iptrunk_description: str
iptrunk_type: IptrunkType
iptrunk_speed: PhysicalPortCapacity
......@@ -48,12 +48,12 @@ def initial_input_form_generator() -> FormGenerator:
side_a_node_id: router_enum # type: ignore[valid-type]
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_b_node_id: router_enum # type: ignore[valid-type]
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]
iptrunk_ipv4_network: ipaddress.IPv4Network
......@@ -80,7 +80,7 @@ def create_subscription(partner: str) -> State:
@step("Initialize subscription")
def initialize_subscription(
subscription: IptrunkInactive,
geant_s_sid: str,
geant_s_sid: str | None,
iptrunk_type: IptrunkType,
iptrunk_description: str,
iptrunk_speed: PhysicalPortCapacity,
......@@ -88,11 +88,11 @@ def initialize_subscription(
iptrunk_isis_metric: int,
side_a_node_id: 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_b_node_id: 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],
) -> State:
"""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
create_ip_trunk_side_a_router_name = {"side_a_node_id": router_side_a}
create_ip_trunk_side_a_step = {
"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": [
LAGMember(
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