From d4bb5654cc358d8840ca5843736f9438f39e84e2 Mon Sep 17 00:00:00 2001 From: Erik Reid <erik.reid@geant.org> Date: Sat, 22 Apr 2023 10:20:09 +0200 Subject: [PATCH] one possible way of combining similar methods --- gso/workflows/iptrunk/create_iptrunk.py | 27 +++++-------------------- 1 file changed, 5 insertions(+), 22 deletions(-) diff --git a/gso/workflows/iptrunk/create_iptrunk.py b/gso/workflows/iptrunk/create_iptrunk.py index 2d4ae020..f4e7685e 100644 --- a/gso/workflows/iptrunk/create_iptrunk.py +++ b/gso/workflows/iptrunk/create_iptrunk.py @@ -19,26 +19,8 @@ from orchestrator.db.models import ProductTable, SubscriptionTable from orchestrator.forms.validators import Choice, choice_list from typing import List, Optional -def a_side_device_selector() -> list: - device_subscriptions = {} - for device_id, device_description in ( - SubscriptionTable.query.join(ProductTable) - .filter( - ProductTable.product_type == "Device", - SubscriptionTable.status == "active", - ) - .with_entities(SubscriptionTable.subscription_id, SubscriptionTable.description) - .all() - ): - device_subscriptions[str(device_id)] = device_description - - return choice_list( - Choice("DeviceEnumA", zip(device_subscriptions.keys(), device_subscriptions.items())), # type:ignore - min_items=1, - max_items=1, - ) -def b_side_device_selector() -> list: +def device_selector(choice_value: str) -> list: device_subscriptions = {} for device_id, device_description in ( SubscriptionTable.query.join(ProductTable) @@ -52,19 +34,20 @@ def b_side_device_selector() -> list: device_subscriptions[str(device_id)] = device_description return choice_list( - Choice("DeviceEnumB", zip(device_subscriptions.keys(), device_subscriptions.items())), # type:ignore + Choice(choice_value, zip(device_subscriptions.keys(), device_subscriptions.items())), # type:ignore min_items=1, max_items=1, ) + def initial_input_form_generator(product_name: str) -> FormGenerator: class CreateIptrunkForm(FormPage): class Config: title = product_name geant_s_sid: str - iptrunk_sideA_fqdn: a_side_device_selector() - iptrunk_sideB_fqdn: b_side_device_selector() + iptrunk_sideA_fqdn: device_selector(choice_value='DeviceEnumA') + iptrunk_sideB_fqdn: device_selector(choice_value='DeviceEnumB') user_input = yield CreateIptrunkForm -- GitLab