From ae49b5fd946fde9de947cdac814ab34dc16a8d19 Mon Sep 17 00:00:00 2001 From: root <root@simone04.dev.gap.geant.org> Date: Mon, 7 Aug 2023 14:31:11 +0000 Subject: [PATCH] Add all the various conditions for terminating devices --- gso/workflows/device/terminate_device.py | 14 ++++++++++---- gso/workflows/site/create_site.py | 4 ++-- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/gso/workflows/device/terminate_device.py b/gso/workflows/device/terminate_device.py index ac81a231..cedda706 100644 --- a/gso/workflows/device/terminate_device.py +++ b/gso/workflows/device/terminate_device.py @@ -52,7 +52,7 @@ def deprovision_loopback_ips(subscription: Device) -> dict[str, HostAddresses]: @step("Deprovision SI- interface IPs from IPAM/DNS") def deprovision_si_ips(subscription: Device) -> dict[str, V4ServiceNetwork | V6ServiceNetwork]: service_network = ipam.delete_network( - network=ipaddress.ip_network(subscription.device.device_si_ipv4_network), + network=ipaddress.ip_network(subscription.device.device_si_ipv4_network), # type: ignore service_type="SI", ) return {"service_network": service_network} @@ -61,11 +61,11 @@ def deprovision_si_ips(subscription: Device) -> dict[str, V4ServiceNetwork | V6S @step("Deprovision LT- interface (IAS) IPs from IPAM/DNS") def deprovision_lt_ips(subscription: Device) -> dict[str, V4ServiceNetwork | V6ServiceNetwork]: service_network_v4 = ipam.delete_network( - network=ipaddress.ip_network(subscription.device.device_ias_lt_ipv4_network), + network=ipaddress.ip_network(subscription.device.device_ias_lt_ipv4_network), # type: ignore service_type="LT_IAS", ) service_network_v6 = ipam.delete_network( - network=ipaddress.ip_network(subscription.device.device_ias_lt_ipv6_network), + network=ipaddress.ip_network(subscription.device.device_ias_lt_ipv6_network), # type: ignore service_type="LT_IAS", ) return { @@ -87,8 +87,14 @@ def remove_config_from_device() -> None: def terminate_device() -> StepList: run_ipam_steps = conditional(lambda state: state.get("clean_up_ipam", True)) run_config_steps = conditional(lambda state: state.get("remove_configuration", True)) + run_ias_removal = conditional(lambda subscription: "device_ias_lt_ipv4_network" in subscription.get("device", {})) + run_si_removal = conditional(lambda subscription: "device_si_ipv4_network" in subscription.get("device", {})) - ipam_steps = StepList([deprovision_loopback_ips, deprovision_si_ips, deprovision_lt_ips]) + ipam_steps = ( + StepList([deprovision_loopback_ips]) + >> run_si_removal(deprovision_si_ips) + >> run_ias_removal(deprovision_lt_ips) + ) return ( init diff --git a/gso/workflows/site/create_site.py b/gso/workflows/site/create_site.py index b597a913..5930bf15 100644 --- a/gso/workflows/site/create_site.py +++ b/gso/workflows/site/create_site.py @@ -53,8 +53,8 @@ def initialize_subscription( site_longitude: float, site_bgp_community_id: int, site_internal_id: int, - site_tier: site_pb.SiteTier, site_ts_address: str, + site_tier: site_pb.SiteTier, ) -> State: subscription.site.site_name = site_name subscription.site.site_city = site_city @@ -88,4 +88,4 @@ def create_site() -> StepList: >> set_status(SubscriptionLifecycle.ACTIVE) >> resync >> done - site_tier) + ) -- GitLab