From d81cb7e321e1d438dea40a2115b361ba4f6f2b23 Mon Sep 17 00:00:00 2001 From: Hakan Calim <hakan.calim@fau.de> Date: Mon, 27 Nov 2023 15:59:36 +0100 Subject: [PATCH] NAT-329 added validation for juniper interface names --- .../iptrunk/modify_trunk_interface.py | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gso/workflows/iptrunk/modify_trunk_interface.py b/gso/workflows/iptrunk/modify_trunk_interface.py index 07c8b9de..12c5671e 100644 --- a/gso/workflows/iptrunk/modify_trunk_interface.py +++ b/gso/workflows/iptrunk/modify_trunk_interface.py @@ -28,6 +28,7 @@ from gso.utils.helpers import ( available_interfaces_choices, available_interfaces_choices_including_current_members, get_router_vendor, + validate_interface_name_list, validate_iptrunk_unique_interface, ) @@ -108,6 +109,16 @@ def initial_input_form_generator(subscription_id: UUIDstr) -> 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]: + vendor = subscription.iptrunk.iptrunk_sides[0].iptrunk_side_node.router_vendor + if vendor == 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 ModifyIptrunkSideAForm ae_members_side_b = initialize_ae_members(subscription, initial_user_input.dict(), 1) @@ -128,6 +139,16 @@ def initial_input_form_generator(subscription_id: UUIDstr) -> FormGenerator: def validate_iptrunk_unique_interface_side_b(cls, side_b_ae_members: list[LAGMember]) -> list[LAGMember]: return validate_iptrunk_unique_interface(side_b_ae_members) + @validator("side_b_ae_members", allow_reuse=True) + def validate_interface_name_members(cls, side_b_ae_members: list[LAGMember]) -> list[LAGMember]: + vendor = subscription.iptrunk.iptrunk_sides[1].iptrunk_side_node.router_vendor + if vendor == RouterVendor.NOKIA: + ret_val = side_b_ae_members + else: + ret_val = validate_interface_name_list(side_b_ae_members) + + return ret_val + user_input_side_b = yield ModifyIptrunkSideBForm return initial_user_input.dict() | user_input_side_a.dict() | user_input_side_b.dict() -- GitLab