diff --git a/gso/workflows/iptrunk/terminate_iptrunk.py b/gso/workflows/iptrunk/terminate_iptrunk.py index 16e6d7b05075361bd0b2caed6d1631e347998e49..f8522852c579a4ad8df3a57cad86dc49df4c2cbb 100644 --- a/gso/workflows/iptrunk/terminate_iptrunk.py +++ b/gso/workflows/iptrunk/terminate_iptrunk.py @@ -59,53 +59,27 @@ def deprovision_ip_trunk_real(subscription: Iptrunk, process_id: UUIDstr, tt_num } -@step("Unreserve involved physical interfaces") -def unreserve_physical_interfaces(subscription: Iptrunk) -> State: - router_sideA = NetBoxClient().get_device_by_name(subscription.iptrunk.iptrunk_sides[0].iptrunk_side_node) - router_sideB = NetBoxClient().get_device_by_name(subscription.iptrunk.iptrunk_sides[1].iptrunk_side_node) - sideA_members = subscription.iptrunk.iptrunk_sides[0].iptrunk_side_ae_members - sideB_members = subscription.iptrunk.iptrunk_sides[1].iptrunk_side_ae_members - for sideA_member in sideA_members: - NetBoxClient().unreserve_interface(router_sideA, sideA_member) - for sideB_member in sideB_members: - NetBoxClient().unreserve_interface(router_sideB, sideB_member) - return {"subscription": subscription} - - -@step("Deallocate involved physical interfaces") -def deallocate_physical_interfaces(subscription: Iptrunk) -> State: - router_sideA = NetBoxClient().get_device_by_name(subscription.iptrunk.iptrunk_sides[0].iptrunk_side_node) - router_sideB = NetBoxClient().get_device_by_name(subscription.iptrunk.iptrunk_sides[1].iptrunk_side_node) - sideA_members = subscription.iptrunk.iptrunk_sides[0].iptrunk_side_ae_members - sideB_members = subscription.iptrunk.iptrunk_sides[1].iptrunk_side_ae_members - for sideA_member in sideA_members: - NetBoxClient().deallocate_interface(router_sideA, sideA_member) - for sideB_member in sideB_members: - NetBoxClient().deallocate_interface(router_sideB, sideB_member) - return {"subscription": subscription} +@step("Remove IP Trunk from NetBox") +def remove_iptrunk_from_netbox(subscription: Iptrunk) -> State: - -@step("Unattach physical interfaces from respective LAG") -def unattach_physical_interfaces(subscription: Iptrunk) -> State: router_sideA = NetBoxClient().get_device_by_name(subscription.iptrunk.iptrunk_sides[0].iptrunk_side_node) router_sideB = NetBoxClient().get_device_by_name(subscription.iptrunk.iptrunk_sides[1].iptrunk_side_node) sideA_members = subscription.iptrunk.iptrunk_sides[0].iptrunk_side_ae_members sideB_members = subscription.iptrunk.iptrunk_sides[1].iptrunk_side_ae_members sideA_ae_iface = subscription.iptrunk.iptrunk_sides[0].iptrunk_side_ae_iface sideB_ae_iface = subscription.iptrunk.iptrunk_sides[1].iptrunk_side_ae_iface + for sideA_member in sideA_members: - NetBoxClient().unattach_interface_from_lag(router_sideA, sideA_ae_iface, sideA_member) - for sideB_member in sideB_members: - NetBoxClient().unattach_interface_from_lag(router_sideB, sideB_ae_iface, sideB_member) - return {"subscription": subscription} + NetBoxClient().unreserve_interface(router_sideA, sideA_member) + NetBoxClient().deallocate_interface(router_sideA, sideA_member) + for sideB_member in sideB_members: + NetBoxClient().unreserve_interface(router_sideB, sideB_member) + NetBoxClient().deallocate_interface(router_sideB, sideB_member) -@step("Delete involved LAGs") -def delete_lags(subscription: Iptrunk) -> State: - sideA_ae_iface = subscription.iptrunk.iptrunk_sides[0].iptrunk_side_ae_iface - sideB_ae_iface = subscription.iptrunk.iptrunk_sides[1].iptrunk_side_ae_iface NetBoxClient().delete_device(sideA_ae_iface) NetBoxClient().delete_device(sideB_ae_iface) + return {"subscription": subscription} @@ -145,6 +119,7 @@ def terminate_iptrunk() -> StepList: >> store_process_subscription(Target.TERMINATE) >> unsync >> run_config_steps(config_steps) + >> remove_iptrunk_from_netbox >> run_ipam_steps(ipam_steps) >> set_status(SubscriptionLifecycle.TERMINATED) >> resync