From b9cbf3fcdf329c4229aa2beda69ba7c6624591c4 Mon Sep 17 00:00:00 2001 From: Jorge Sasiain <jorge.sasiain@ehu.eus> Date: Fri, 6 Oct 2023 08:09:46 +0000 Subject: [PATCH] NAT-244: optimize netbox queries in iptrunk termination --- gso/workflows/iptrunk/terminate_iptrunk.py | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/gso/workflows/iptrunk/terminate_iptrunk.py b/gso/workflows/iptrunk/terminate_iptrunk.py index 29eec4c8..ae142ed1 100644 --- a/gso/workflows/iptrunk/terminate_iptrunk.py +++ b/gso/workflows/iptrunk/terminate_iptrunk.py @@ -62,25 +62,22 @@ def deprovision_ip_trunk_real(subscription: Iptrunk, process_id: UUIDstr, tt_num @step("Remove IP Trunk from NetBox") def remove_iptrunk_from_netbox(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) + router_sideA = subscription.iptrunk.iptrunk_sides[0].iptrunk_side_node.router_fqdn + router_sideB = subscription.iptrunk.iptrunk_sides[1].iptrunk_side_node.router_fqdn 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 + # Remove physical interfaces from LAGs for sideA_member in sideA_members: - NetBoxClient().unreserve_interface(router_sideA, sideA_member) - NetBoxClient().deallocate_interface(router_sideA, sideA_member) - NetBoxClient().update_interface_description(router_sideA, sideA_member, "") - + NetBoxClient().clear_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) - NetBoxClient().update_interface_description(router_sideB, sideB_member, "") + NetBoxClient().clear_interface(router_sideB, sideB_member) - NetBoxClient().delete_device(sideA_ae_iface) - NetBoxClient().delete_device(sideB_ae_iface) + # Delete LAGs + NetBoxClient().delete_interface(router_sideA, sideA_ae_iface) + NetBoxClient().delete_interface(router_sideB, sideB_ae_iface) return {"subscription": subscription} -- GitLab