diff --git a/gso/workflows/device/terminate_device.py b/gso/workflows/device/terminate_device.py index ac81a231189fa8d0582569b5ecce35ec73acded9..cedda7061a539034cfb484b3bb80a64739b06ebc 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 b597a91357d952809539cc691952222fa9d26e61..5930bf155e1fd48eb61ecf31bbe4742d0db069f2 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) + )