diff --git a/gso/products/product_blocks/iptrunk.py b/gso/products/product_blocks/iptrunk.py index 40c0016dab7d0767e174de4a332098b185796008..3ac520de5633dfb0be9b62a8efc86b12ca5adde8 100644 --- a/gso/products/product_blocks/iptrunk.py +++ b/gso/products/product_blocks/iptrunk.py @@ -28,13 +28,15 @@ class IptrunkBlockInactive(ProductBlockModel, iptrunk_sideA_ae_iface: Optional[str] = None iptrunk_sideA_ae_geant_a_sid: Optional[str] = None iptrunk_sideA_ae_members: list[str] = Field(default_factory=list) - iptrunk_sideA_ae_members_description: list[str] = Field(default_factory=list) + iptrunk_sideA_ae_members_description: list[str] \ + = Field(default_factory=list) # iptrunk_sideB_node: DeviceBlockInactive iptrunk_sideB_ae_iface: Optional[str] = None iptrunk_sideB_ae_geant_a_sid: Optional[str] = None iptrunk_sideB_ae_members: list[str] = Field(default_factory=list) - iptrunk_sideB_ae_members_description: list[str] = Field(default_factory=list) + iptrunk_sideB_ae_members_description: list[str] \ + = Field(default_factory=list) class IptrunkBlockProvisioning(IptrunkBlockInactive, diff --git a/gso/workflows/device/create_device.py b/gso/workflows/device/create_device.py index 86a17d458b46c01c1ba75342907ca012c0a8a2db..40a03c900c28c42ced40e030d1dbe643630718b3 100644 --- a/gso/workflows/device/create_device.py +++ b/gso/workflows/device/create_device.py @@ -26,13 +26,13 @@ def site_selector() -> list: site_subscriptions = {} for site_id, site_description in ( SubscriptionTable.query.join(ProductTable) - .filter( + .filter( ProductTable.product_type == "Site", SubscriptionTable.status == "active", ) - .with_entities(SubscriptionTable.subscription_id, - SubscriptionTable.description) - .all() + .with_entities(SubscriptionTable.subscription_id, + SubscriptionTable.description) + .all() ): site_subscriptions[str(site_id)] = site_description @@ -142,6 +142,7 @@ def provision_device_real(subscription: DeviceProvisioning, return {'subscription': subscription} + @workflow( 'Create device', initial_input_form=wrap_create_initial_input_form( diff --git a/gso/workflows/iptrunk/create_iptrunk.py b/gso/workflows/iptrunk/create_iptrunk.py index 2b485a9b18f8444d528684069514c68eac7a4965..4cfe1c39b7ab4d6cb6f1990a5684a1598434a8f5 100644 --- a/gso/workflows/iptrunk/create_iptrunk.py +++ b/gso/workflows/iptrunk/create_iptrunk.py @@ -22,7 +22,6 @@ from orchestrator.forms.validators import Choice, choice_list from orchestrator.utils.json import json_dumps - def device_selector(choice_value: str) -> list: device_subscriptions = {} for device_id, device_description in ( @@ -93,8 +92,10 @@ def create_subscription(product: UUIDstr) -> State: @step("Get information from IPAM ") def get_info_from_ipam(subscription: iptrunk.IptrunkInactive) -> State: # TODO: get info about how these should be generated - subscription.iptrunk.iptrunk_ipv4_network = ipaddress.ip_network('192.168.255.0/31') - subscription.iptrunk.iptrunk_ipv6_network = ipaddress.ip_network('fc00:798:255::150/126') + subscription.iptrunk.iptrunk_ipv4_network \ + = ipaddress.ip_network('192.168.255.0/31') + subscription.iptrunk.iptrunk_ipv6_network \ + = ipaddress.ip_network('fc00:798:255::150/126') return {"subscription": subscription} @@ -156,14 +157,14 @@ def provision_iptrunk_dry( subscription: iptrunk.IptrunkProvisioning, ) -> State: import ansible_runner - + r = ansible_runner.run( private_data_dir="/opt/geant-gap-ansible", - playbook="iptrunks.yaml", - inventory= str(subscription.iptrunk.iptrunk_sideA_node.device_fqdn +"\n"+ - subscription.iptrunk.iptrunk_sideB_node.device_fqdn+"\n"), - extravars={ - "verb": "compile", + playbook = "iptrunks.yaml", + inventory = str(subscription.iptrunk.iptrunk_sideA_node.device_fqdn +"\n"+ + subscription.iptrunk.iptrunk_sideB_node.device_fqdn+"\n"), + extravars = { + "verb": "deploy", "wfo_trunk_json":json_dumps(subscription), "config_object":"trunk_interface", },