From 1e268b8d1838981aca492a81230146f36b92c1ab Mon Sep 17 00:00:00 2001
From: Aleksandr Kurbatov <ak@geant.org>
Date: Wed, 21 May 2025 10:54:41 +0100
Subject: [PATCH] Initial work to update edge_port

---
 gso/products/product_blocks/edge_port.py    | 3 +++
 gso/workflows/edge_port/create_edge_port.py | 4 ++++
 2 files changed, 7 insertions(+)

diff --git a/gso/products/product_blocks/edge_port.py b/gso/products/product_blocks/edge_port.py
index 7fa1b5c70..571162bd0 100644
--- a/gso/products/product_blocks/edge_port.py
+++ b/gso/products/product_blocks/edge_port.py
@@ -70,6 +70,7 @@ class EdgePortBlockInactive(
     edge_port_name: str | None = None
     edge_port_description: str | None = None
     enable_lacp: bool | None = None
+    lacp_xmit_interval_slow: bool = False
     encapsulation: EncapsulationType = EncapsulationType.DOT1Q
     mac_address: str | None = None
     member_speed: PhysicalPortCapacity | None = None
@@ -88,6 +89,7 @@ class EdgePortBlockProvisioning(EdgePortBlockInactive, lifecycle=[SubscriptionLi
     edge_port_name: str
     edge_port_description: str | None = None
     enable_lacp: bool
+    lacp_xmit_interval_slow: bool = False
     encapsulation: EncapsulationType = EncapsulationType.DOT1Q
     mac_address: str | None = None
     member_speed: PhysicalPortCapacity
@@ -122,6 +124,7 @@ class EdgePortBlock(EdgePortBlockProvisioning, lifecycle=[SubscriptionLifecycle.
     edge_port_name: str
     edge_port_description: str | None = None
     enable_lacp: bool
+    lacp_xmit_interval_slow: bool = False
     encapsulation: EncapsulationType = EncapsulationType.DOT1Q
     mac_address: str | None = None
     member_speed: PhysicalPortCapacity
diff --git a/gso/workflows/edge_port/create_edge_port.py b/gso/workflows/edge_port/create_edge_port.py
index e25ad1349..d3b58f4e7 100644
--- a/gso/workflows/edge_port/create_edge_port.py
+++ b/gso/workflows/edge_port/create_edge_port.py
@@ -50,6 +50,7 @@ def initial_input_form_generator(product_name: str) -> FormGenerator:
         partner: partner_choice()  # type: ignore[valid-type]
         service_type: EdgePortType
         enable_lacp: bool = False
+        lacp_xmit_interval_slow: bool = False
         speed: PhysicalPortCapacity
         encapsulation: EncapsulationType | str = EncapsulationType.DOT1Q  # TODO: remove type hint workaround
         number_of_members: int
@@ -130,6 +131,7 @@ def initial_input_form_generator(product_name: str) -> FormGenerator:
         "mac_address",
         "ignore_if_down",
         "enable_lacp",
+        "lacp_xmit_interval_slow",
         "edge_port_name",
         "edge_port_description",
         "edge_port_ae_members",
@@ -162,6 +164,7 @@ def initialize_subscription(
     mac_address: str | None,
     partner: str,
     enable_lacp: bool,  # noqa: FBT001
+    lacp_xmit_interval_slow: bool,  #noqa: FBT001
     ignore_if_down: bool,  # noqa: FBT001
     generate_ga_id: bool,  # noqa: FBT001
     ae_members: list[dict[str, Any]],
@@ -174,6 +177,7 @@ def initialize_subscription(
     subscription.edge_port.node = router
     subscription.edge_port.edge_port_type = service_type
     subscription.edge_port.enable_lacp = enable_lacp
+    subscription.edge_port.lacp_xmit_interval_slow = lacp_xmit_interval_slow
     subscription.edge_port.member_speed = speed
     subscription.edge_port.encapsulation = encapsulation
     subscription.edge_port.edge_port_name = name
-- 
GitLab