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:
@@ -220,6 +220,25 @@ def calculate_old_side_data(subscription: Iptrunk, replace_index: int) -> State:
return {"old_side_data": old_side_data}
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")
@step("[DRY RUN] Disable configuration on old router")
def disable_old_config_dry(
def disable_old_config_dry(
subscription: Iptrunk,
subscription: Iptrunk,
@@ -385,6 +404,25 @@ def confirm_continue_move_fiber() -> FormGenerator:
@@ -385,6 +404,25 @@ def confirm_continue_move_fiber() -> FormGenerator:
return {}
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")
@step("Deploy ISIS configuration on new router")
def deploy_new_isis(
def deploy_new_isis(
subscription: Iptrunk,
subscription: Iptrunk,
@@ -422,6 +460,25 @@ def deploy_new_isis(
@@ -422,6 +460,25 @@ def deploy_new_isis(
return {"subscription": subscription}
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)
@inputstep("Wait for confirmation", assignee=Assignee.SYSTEM)
def confirm_continue_restore_isis() -> FormGenerator:
def confirm_continue_restore_isis() -> FormGenerator:
"""Wait for an operator to confirm that the old :term:`ISIS` metric should be restored."""
"""Wait for an operator to confirm that the old :term:`ISIS` metric should be restored."""
@@ -657,12 +714,16 @@ def migrate_iptrunk() -> StepList:
@@ -657,12 +714,16 @@ def migrate_iptrunk() -> StepList:
>> new_side_is_nokia(netbox_reserve_interfaces)
>> new_side_is_nokia(netbox_reserve_interfaces)
>> calculate_old_side_data
>> calculate_old_side_data
>> pp_interaction(set_isis_to_max)
>> pp_interaction(set_isis_to_max)
 
>> pp_interaction(check_ip_trunk_optical_levels)
>> pp_interaction(disable_old_config_dry)
>> pp_interaction(disable_old_config_dry)
>> pp_interaction(disable_old_config_real)
>> pp_interaction(disable_old_config_real)
>> pp_interaction(deploy_new_config_dry)
>> pp_interaction(deploy_new_config_dry)
>> pp_interaction(deploy_new_config_real)
>> pp_interaction(deploy_new_config_real)
>> confirm_continue_move_fiber
>> confirm_continue_move_fiber
 
>> pp_interaction(check_ip_trunk_optical_levels)
 
>> pp_interaction(check_ip_trunk_connectivity)
>> pp_interaction(deploy_new_isis)
>> pp_interaction(deploy_new_isis)
 
>> pp_interaction(check_ip_trunk_isis)
>> should_restore_isis_metric(confirm_continue_restore_isis)
>> should_restore_isis_metric(confirm_continue_restore_isis)
>> should_restore_isis_metric(pp_interaction(restore_isis_metric))
>> should_restore_isis_metric(pp_interaction(restore_isis_metric))
>> pp_interaction(delete_old_config_dry)
>> pp_interaction(delete_old_config_dry)
Loading