From 1ea83b3a7324da6582f1e9295745e0ab9bd65439 Mon Sep 17 00:00:00 2001
From: Hakan Calim <hakan.calim@fau.de>
Date: Fri, 24 Nov 2023 15:29:18 +0100
Subject: [PATCH] NAT-329: added validation for juniper router interface names

---
 gso/workflows/iptrunk/create_iptrunk.py | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/gso/workflows/iptrunk/create_iptrunk.py b/gso/workflows/iptrunk/create_iptrunk.py
index e488fde3..983a1854 100644
--- a/gso/workflows/iptrunk/create_iptrunk.py
+++ b/gso/workflows/iptrunk/create_iptrunk.py
@@ -29,6 +29,7 @@ from gso.utils.helpers import (
     available_interfaces_choices,
     available_lags_choices,
     get_router_vendor,
+    validate_interface_name_list,
     validate_iptrunk_unique_interface,
     validate_router_in_netbox,
 )
@@ -103,6 +104,16 @@ def initial_input_form_generator(product_name: str) -> FormGenerator:
         def validate_iptrunk_unique_interface_side_a(cls, side_a_ae_members: list[LAGMember]) -> list[LAGMember]:
             return validate_iptrunk_unique_interface(side_a_ae_members)
 
+        @validator("side_a_ae_members", allow_reuse=True)
+        def validate_interface_name_members(cls, side_a_ae_members: list[LAGMember]) -> list[LAGMember]:
+            ret_val = None
+            if get_router_vendor(router_a) == RouterVendor.NOKIA:
+                ret_val = side_a_ae_members
+            else:
+                ret_val = validate_interface_name_list(side_a_ae_members)
+
+            return ret_val
+
     user_input_side_a = yield CreateIptrunkSideAForm
     # Remove the selected router for side A, to prevent any loops
     routers.pop(str(router_a))
-- 
GitLab