diff --git a/gso/workflows/iptrunk/create_iptrunk.py b/gso/workflows/iptrunk/create_iptrunk.py index 2d4ae02025486c066b8ddc43ce02df805c6e0153..f4e7685e22fec1f3e4fc4c8621627970188ad2ce 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