Skip to content
Snippets Groups Projects

Trunk migration checks

Merged Aleksandr Kurbatov requested to merge feature/NAT-473_trunk_migration_checks into develop
All threads resolved!
Files
4
@@ -220,6 +220,25 @@ def calculate_old_side_data(subscription: Iptrunk, replace_index: int) -> State:
return {"old_side_data": old_side_data}
@step("Check Optical levels on the trunk endpoint")
def check_ip_trunk_optical_levels(
subscription: Iptrunk,
callback_route: str,
replace_index: int,
) -> State:
"""Check Optical levels on the trunk."""
extra_vars = {"wfo_ip_trunk_json": json.loads(json_dumps(subscription)), "check": "optical"}
execute_playbook(
playbook_name="iptrunks_checks.yaml",
callback_route=callback_route,
inventory=subscription.iptrunk.iptrunk_sides[1 - replace_index].iptrunk_side_node.router_fqdn,
extra_vars=extra_vars,
)
return {"subscription": subscription}
@step("[DRY RUN] Disable configuration on old router")
def disable_old_config_dry(
subscription: Iptrunk,
@@ -385,6 +404,25 @@ def confirm_continue_move_fiber() -> FormGenerator:
return {}
@step("Check IP connectivity of the trunk")
def check_ip_trunk_connectivity(
subscription: Iptrunk,
callback_route: str,
replace_index: int,
) -> State:
"""Check successful connectivity across the new trunk."""
extra_vars = {"wfo_ip_trunk_json": json.loads(json_dumps(subscription)), "check": "ping"}
execute_playbook(
playbook_name="iptrunks_checks.yaml",
callback_route=callback_route,
inventory=subscription.iptrunk.iptrunk_sides[1 - replace_index].iptrunk_side_node.router_fqdn,
extra_vars=extra_vars,
)
return {"subscription": subscription}
@step("Deploy ISIS configuration on new router")
def deploy_new_isis(
subscription: Iptrunk,
@@ -422,6 +460,25 @@ def deploy_new_isis(
return {"subscription": subscription}
@step("Check ISIS adjacency")
def check_ip_trunk_isis(
subscription: Iptrunk,
callback_route: str,
replace_index: int,
) -> State:
"""Run an Ansible playbook to confirm :term:`ISIS` adjacency."""
extra_vars = {"wfo_ip_trunk_json": json.loads(json_dumps(subscription)), "check": "isis"}
execute_playbook(
playbook_name="iptrunks_checks.yaml",
callback_route=callback_route,
inventory=subscription.iptrunk.iptrunk_sides[1 - replace_index].iptrunk_side_node.router_fqdn,
extra_vars=extra_vars,
)
return {"subscription": subscription}
@inputstep("Wait for confirmation", assignee=Assignee.SYSTEM)
def confirm_continue_restore_isis() -> FormGenerator:
"""Wait for an operator to confirm that the old :term:`ISIS` metric should be restored."""
@@ -657,12 +714,16 @@ def migrate_iptrunk() -> StepList:
>> new_side_is_nokia(netbox_reserve_interfaces)
>> calculate_old_side_data
>> pp_interaction(set_isis_to_max)
>> pp_interaction(check_ip_trunk_optical_levels)
>> pp_interaction(disable_old_config_dry)
>> pp_interaction(disable_old_config_real)
>> pp_interaction(deploy_new_config_dry)
>> pp_interaction(deploy_new_config_real)
>> confirm_continue_move_fiber
>> pp_interaction(check_ip_trunk_optical_levels)
>> pp_interaction(check_ip_trunk_connectivity)
>> pp_interaction(deploy_new_isis)
>> pp_interaction(check_ip_trunk_isis)
>> should_restore_isis_metric(confirm_continue_restore_isis)
>> should_restore_isis_metric(pp_interaction(restore_isis_metric))
>> pp_interaction(delete_old_config_dry)
Loading