Skip to content
Snippets Groups Projects
Commit ae49b5fd authored by root's avatar root
Browse files

Add all the various conditions for terminating devices

parent 98299b68
No related branches found
No related tags found
1 merge request!56Reworked devices and sites - added new attribute to manage local connection to IAS
Pipeline #83804 failed
......@@ -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
......
......@@ -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)
)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment