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

NAT-244: make netbox operations a single workflow step

parent 6278d4ee
No related branches found
No related tags found
1 merge request!94Feature/Netbox integration terminate ip trunk
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment