Skip to content
Snippets Groups Projects
Commit 6278d4ee authored by JORGE SASIAIN's avatar JORGE SASIAIN Committed by Neda Moeini
Browse files

NAT-244: Add preliminary steps in terminate iptrunk workflow for NetBox

parent ecb845b3
Branches
Tags
1 merge request!94Feature/Netbox integration terminate ip trunk
......@@ -10,6 +10,7 @@ from orchestrator.workflows.utils import wrap_modify_initial_input_form
from gso.products.product_types.iptrunk import Iptrunk
from gso.services import infoblox, provisioning_proxy
from gso.services.netbox_client import NetBoxClient
from gso.services.provisioning_proxy import pp_interaction
from gso.utils.helpers import set_isis_to_90000
......@@ -58,6 +59,56 @@ 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("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}
@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}
@step("Deprovision IPv4 networks")
def deprovision_ip_trunk_ipv4(subscription: Iptrunk) -> dict:
infoblox.delete_network(ipaddress.IPv4Network(subscription.iptrunk.iptrunk_ipv4_network))
......
......@@ -179,7 +179,6 @@ def free_interface(fqdn: str, iface: str) -> None:
freed_iface = NetboxClient().free_interface(fqdn, iface)
click.echo(freed_iface)
@action.command()
@click.option("--fqdn", help="Device name from where to get interface to edit")
@click.option("--iface", help="Interface name to edit")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment