diff --git a/gso/workflows/iptrunk/modify_trunk_interface.py b/gso/workflows/iptrunk/modify_trunk_interface.py index 07c8b9deb901996787fd452de00eec544c004149..12c5671ea46a67f4d0ef2ae0a91a59c7fc9053a1 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()