diff --git a/gso/workflows/iptrunk/terminate_iptrunk.py b/gso/workflows/iptrunk/terminate_iptrunk.py index ae142ed146442bcc7e6cdca924bec3ed5f098557..df309a76e703b1bd3bc8814588fc3d7703218982 100644 --- a/gso/workflows/iptrunk/terminate_iptrunk.py +++ b/gso/workflows/iptrunk/terminate_iptrunk.py @@ -8,6 +8,7 @@ from orchestrator.workflow import StepList, conditional, done, init, step, workf from orchestrator.workflows.steps import resync, set_status, store_process_subscription, unsync from orchestrator.workflows.utils import wrap_modify_initial_input_form +from gso.products.product_blocks.router import RouterVendor from gso.products.product_types.iptrunk import Iptrunk from gso.services import infoblox, provisioning_proxy from gso.services.netbox_client import NetBoxClient @@ -62,22 +63,30 @@ 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 = subscription.iptrunk.iptrunk_sides[0].iptrunk_side_node.router_fqdn - router_sideB = subscription.iptrunk.iptrunk_sides[1].iptrunk_side_node.router_fqdn + _router_sideA = subscription.iptrunk.iptrunk_sides[0].iptrunk_side_node + _router_sideB = subscription.iptrunk.iptrunk_sides[1].iptrunk_side_node + router_sideA = _router_sideA.router_fqdn + router_sideB = _router_sideB.router_fqdn + router_sideA_vendor = _router_sideA.router_vendor + router_sideB_vendor = _router_sideB.router_vendor 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().clear_interface(router_sideA, sideA_member) - for sideB_member in sideB_members: - NetBoxClient().clear_interface(router_sideB, sideB_member) + if router_sideA_vendor == RouterVendor.NOKIA: + for sideA_member in sideA_members: + NetBoxClient().clear_interface(router_sideA, sideA_member) + if router_sideB_vendor == RouterVendor.NOKIA: + for sideB_member in sideB_members: + NetBoxClient().clear_interface(router_sideB, sideB_member) # Delete LAGs - NetBoxClient().delete_interface(router_sideA, sideA_ae_iface) - NetBoxClient().delete_interface(router_sideB, sideB_ae_iface) + if router_sideA_vendor == RouterVendor.NOKIA: + NetBoxClient().delete_interface(router_sideA, sideA_ae_iface) + if router_sideB_vendor == RouterVendor.NOKIA: + NetBoxClient().delete_interface(router_sideB, sideB_ae_iface) return {"subscription": subscription}