diff --git a/gso/workflows/device/create_device.py b/gso/workflows/device/create_device.py index e3cc74acb2319176a8b2da824a10150dc53a9aa8..4d3f0cd787a152b9f3325efda2a2a24dba5635f7 100644 --- a/gso/workflows/device/create_device.py +++ b/gso/workflows/device/create_device.py @@ -45,10 +45,10 @@ def initial_input_form_generator(product_name: str) -> FormGenerator: device_site: site_selector() # type: ignore hostname: str - ts_address: ipaddress.IPv4Address ts_port: int device_vendor: device_pb.DeviceVendor device_role: device_pb.DeviceRole + is_ias_connected: bool user_input = yield CreateDeviceForm @@ -73,22 +73,26 @@ def iso_from_ipv4(ipv4_address: ipaddress.IPv4Address) -> str: @step("Get information from IPAM") -def get_info_from_ipam(subscription: DeviceProvisioning) -> State: +def get_info_from_ipam(subscription: DeviceProvisioning, is_ias_connected: bool) -> State: lo0_alias = re.sub(".geant.net", "", subscription.device.device_fqdn) lo0_name = f"lo0.{lo0_alias}" lo0_addr = ipam.allocate_host(hostname=lo0_name, service_type="LO", cname_aliases=[lo0_alias]) subscription.device.device_lo_ipv4_address = lo0_addr.v4 subscription.device.device_lo_ipv6_address = lo0_addr.v6 subscription.device.device_lo_iso_address = iso_from_ipv4(subscription.device.device_lo_ipv4_address) - subscription.device.device_si_ipv4_network = ipam.allocate_ipv4_network( - service_type="SI", comment=f"SI for {lo0_name}" - ).v4 - subscription.device.device_ias_lt_ipv4_network = ipam.allocate_ipv4_network( - service_type="LT_IAS", comment=f"LT for {lo0_name}" - ).v4 - subscription.device.device_ias_lt_ipv6_network = ipam.allocate_ipv6_network( - service_type="LT_IAS", comment=f"LT for {lo0_name}" - ).v6 + subscription.device.device_is_ias_connected = is_ias_connected + + if is_ias_connected is True: + subscription.device.device_si_ipv4_network = ipam.allocate_ipv4_network( + service_type="SI", comment=f"SI for {lo0_name}" + ).v4 + subscription.device.device_ias_lt_ipv4_network = ipam.allocate_ipv4_network( + service_type="LT_IAS", comment=f"LT for {lo0_name}" + ).v4 + subscription.device.device_ias_lt_ipv6_network = ipam.allocate_ipv6_network( + service_type="LT_IAS", comment=f"LT for {lo0_name}" + ).v6 + return {"subscription": subscription}