diff --git a/gso/products/product_blocks/iptrunk.py b/gso/products/product_blocks/iptrunk.py index 6fed08b9c502d2fb6bb7d7be527a13d803c4918d..026074eecdb5c13aee8fe64e3bf9e5b1104f0f28 100644 --- a/gso/products/product_blocks/iptrunk.py +++ b/gso/products/product_blocks/iptrunk.py @@ -1,5 +1,4 @@ from typing import Optional -from typing import List from pydantic import Field from orchestrator.domain.base import ProductBlockModel @@ -8,36 +7,12 @@ from gso.products.product_blocks.device \ import DeviceBlock, DeviceBlockInactive, DeviceBlockProvisioning import ipaddress -# - id: GS-00012 -# name: AMS2-LON-IPTRUNK-100G -# config: -# common: -# speed: '100' -# is_leased_line: false -# isis_metric: '9000' -# minimum_links: 1 -# nodeA: -# name: rt2.ams.nl.geant.net -# ae_name: ae2 -# ipv4_address: 62.40.98.164/31 -# ipv6_address: 2001:798:cc::5/126 -# members: -# - et-0/0/0 -# port_id: GA-02036 -# nodeB: -# name: mx1.lon.uk.geant.net -# ae_name: ae8 -# ipv4_address: 62.40.98.165/31 -# ipv6_address: 2001:798:cc::6/126 -# members: -# - et-4/0/2 -# port_id: GA-01834 - class IptrunkType(strEnum): Dark_fiber = "Dark_fiber" Leased = "Leased" + class IptrunkBlockInactive(ProductBlockModel, lifecycle=[SubscriptionLifecycle.INITIAL], product_block_name="IptrunkBlock"): diff --git a/gso/products/product_types/iptrunk.py b/gso/products/product_types/iptrunk.py index 2c4bf9a4a069205dab6ec7a4688cdf8f145d4d35..16765fece6f07fd3b9e541311a481b14eeef85ab 100644 --- a/gso/products/product_types/iptrunk.py +++ b/gso/products/product_types/iptrunk.py @@ -1,5 +1,5 @@ from orchestrator.domain.base import SubscriptionModel -from orchestrator.types import SubscriptionLifecycle, strEnum +from orchestrator.types import SubscriptionLifecycle from gso.products.product_blocks.iptrunk \ import IptrunkBlock, IptrunkBlockInactive, IptrunkBlockProvisioning diff --git a/gso/workflows/device/create_device.py b/gso/workflows/device/create_device.py index dc855ff8f93abb5465c98774e3c5d642aed8c6ca..4082c46d4d1c3ee5f74013af3bc6a30b6e023020 100644 --- a/gso/workflows/device/create_device.py +++ b/gso/workflows/device/create_device.py @@ -12,7 +12,7 @@ from orchestrator.workflows.steps import resync, set_status from orchestrator.workflows.steps import store_process_subscription from orchestrator.workflows.utils import wrap_create_initial_input_form from gso.products.product_types import device -from gso.services import ipam, provisioning_proxy +# from gso.services import ipam, provisioning_proxy def initial_input_form_generator(product_name: str) -> FormGenerator: @@ -42,9 +42,9 @@ def create_subscription(product: UUIDstr) -> State: @step("Get information from IPAM ") def get_info_from_ipam(subscription: device.DeviceInactive) -> State: - #lo = ipam.new_device_lo_address() - #subscription.device.lo_ipv4_address = lo.v4 - #subscription.device.lo_ipv6_address = lo.v6 + # lo = ipam.new_device_lo_address() + # subscription.device.lo_ipv4_address = lo.v4 + # subscription.device.lo_ipv6_address = lo.v6 # TODO: get info about how these should be generated subscription.device.lo_ipv4_address = "10.10.10.10" subscription.device.lo_ipv6_address = "fc00:798:10::10" @@ -125,11 +125,11 @@ def provision_device_dry( # # if r.rc != 0: # # raise ValueError("Ansible has failed") # return {"dry_run_output": out_splitted, "return_code": r.rc} - #provisioning_proxy.provision_node( - # node_subscription_params=subscription, - # dry_run=True) - # TODO: figure out what to return when we are suspending & waiting - # for the provisioning-proxy to call back + # provisioning_proxy.provision_node( + # node_subscription_params=subscription, + # dry_run=True) + # TODO: figure out what to return when we are suspending & waiting + # for the provisioning-proxy to call back return {"return_code": 0} diff --git a/gso/workflows/iptrunk/create_iptrunk.py b/gso/workflows/iptrunk/create_iptrunk.py index ac34d27a8e1b32a75f0a67bac0e94cc96269cc97..673cfdc477482fbaf211eb498285931fb29e9e9b 100644 --- a/gso/workflows/iptrunk/create_iptrunk.py +++ b/gso/workflows/iptrunk/create_iptrunk.py @@ -1,4 +1,4 @@ -import ipaddress +# import ipaddress from uuid import uuid4 from orchestrator.forms import FormPage @@ -14,12 +14,11 @@ from orchestrator.workflows.utils import wrap_create_initial_input_form from gso.products.product_types import iptrunk from gso.products.product_blocks import iptrunk as iptrunk_pb from gso.products.product_types.device import Device -from gso.services import ipam, provisioning_proxy +# from gso.services import ipam, provisioning_proxy -from gso.products.product_types import device +# from gso.products.product_types import device from orchestrator.db.models import ProductTable, SubscriptionTable from orchestrator.forms.validators import Choice, choice_list -from typing import List, Optional def device_selector(choice_value: str) -> list: @@ -48,7 +47,7 @@ def initial_input_form_generator(product_name: str) -> FormGenerator: title = product_name geant_s_sid: str - iptrunk_description: str + iptrunk_description: str iptrunk_type: iptrunk_pb.IptrunkType iptrunk_speed: str # This should be an enum: 1/10/100/400 iptrunk_minimum_links: int @@ -92,8 +91,6 @@ def get_info_from_ipam(subscription: iptrunk.IptrunkInactive) -> State: return {"subscription": subscription} - - @step("Initialize subscription") def initialize_subscription( subscription: iptrunk.IptrunkInactive, @@ -107,7 +104,7 @@ def initialize_subscription( iptrunk_sideA_ae_geant_a_sid: str, iptrunk_sideA_ae_members: list[str], iptrunk_sideA_ae_members_descriptions: list[str], - iptrunk_sideB_node_id: str, + iptrunk_sideB_node_id: str, iptrunk_sideB_ae_iface: str, iptrunk_sideB_ae_geant_a_sid: str, iptrunk_sideB_ae_members: list[str], @@ -167,10 +164,10 @@ def provision_iptrunk_dry( # # if r.rc != 0: # # raise ValueError("Ansible has failed") # return {"dry_run_output": out_splitted, "return_code": r.rc} - #provisioning_proxy.provision_node( - # node_subscription_params=subscription, - # dry_run=True) - # TODO: figure out what to return when we are suspending & waiting + # provisioning_proxy.provision_node( + # node_subscription_params=subscription, + # dry_run=True) + # TODO: figure out what to return when we are suspending & waiting # for the provisioning-proxy to call back return {"return_code": 0} @@ -210,9 +207,9 @@ def provision_iptrunk_real( # out = r.stdout.read() # out_splitted = out.splitlines() # - ## return {"real_run_output": out_splitted, "return_code": r.rc} - #provisioning_proxy.provision_node( - # node_subscription_params=subscription) + # # return {"real_run_output": out_splitted, "return_code": r.rc} + # provisioning_proxy.provision_node( + # node_subscription_params=subscription) # TODO: figure out what to return when we are suspending & waiting # for the provisioning-proxy to call back return {"return_code": 0}