From 7baaeb33af8113b82d7f1a03b5666ea41c03f396 Mon Sep 17 00:00:00 2001 From: Karel van Klink <karel.vanklink@geant.org> Date: Fri, 2 Jun 2023 15:10:56 +0200 Subject: [PATCH] Small improvements * minimum is a minimum again, not a maximum * amount of interfaces and descriptions of side B is automatically set equal to that of the A side --- gso/workflows/iptrunk/create_iptrunk.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/gso/workflows/iptrunk/create_iptrunk.py b/gso/workflows/iptrunk/create_iptrunk.py index 4fa47271..326793b9 100644 --- a/gso/workflows/iptrunk/create_iptrunk.py +++ b/gso/workflows/iptrunk/create_iptrunk.py @@ -52,9 +52,8 @@ def initial_input_form_generator(product_name: str) -> FormGenerator: initial_user_input = yield CreateIptrunkForm - class AeMembersList(UniqueConstrainedList[str]): + class AeMembersListA(UniqueConstrainedList[str]): min_items = initial_user_input.iptrunk_minimum_links - max_items = initial_user_input.iptrunk_minimum_links DeviceEnumA = Choice('Device A', zip(devices.keys(), devices.items())) @@ -65,8 +64,8 @@ def initial_input_form_generator(product_name: str) -> FormGenerator: iptrunk_sideA_node_id: DeviceEnumA iptrunk_sideA_ae_iface: str iptrunk_sideA_ae_geant_a_sid: str - iptrunk_sideA_ae_members: AeMembersList - iptrunk_sideA_ae_members_descriptions: AeMembersList + iptrunk_sideA_ae_members: AeMembersListA + iptrunk_sideA_ae_members_descriptions: AeMembersListA user_input_side_a = yield CreateIptrunkSideAForm @@ -74,6 +73,10 @@ def initial_input_form_generator(product_name: str) -> FormGenerator: devices.pop(str(user_input_side_a.iptrunk_sideA_node_id.name)) DeviceEnumB = Choice('Device B', zip(devices.keys(), devices.items())) + class AeMembersListB(UniqueConstrainedList[str]): + min_items = len(user_input_side_a.iptrunk_sideA_ae_members) + max_items = len(user_input_side_a.iptrunk_sideA_ae_members) + class CreateIptrunkSideBForm(FormPage): class Config: title = 'Provide subscription details for side B of the trunk.' @@ -81,8 +84,8 @@ def initial_input_form_generator(product_name: str) -> FormGenerator: iptrunk_sideB_node_id: DeviceEnumB iptrunk_sideB_ae_iface: str iptrunk_sideB_ae_geant_a_sid: str - iptrunk_sideB_ae_members: AeMembersList - iptrunk_sideB_ae_members_descriptions: AeMembersList + iptrunk_sideB_ae_members: AeMembersListB + iptrunk_sideB_ae_members_descriptions: AeMembersListB user_input_side_b = yield CreateIptrunkSideBForm -- GitLab