diff --git a/gso/workflows/iptrunk/terminate_iptrunk.py b/gso/workflows/iptrunk/terminate_iptrunk.py index 29eec4c8b4abafc85dd1476cf28bb93b2e1b1328..ae142ed146442bcc7e6cdca924bec3ed5f098557 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}