Skip to content
Snippets Groups Projects
Commit c2616719 authored by Aleksandr Kurbatov's avatar Aleksandr Kurbatov
Browse files

Trunk migration checks

parent 07e07de5
Branches
Tags
No related merge requests found
Pipeline #85931 failed
...@@ -220,6 +220,24 @@ def calculate_old_side_data(subscription: Iptrunk, replace_index: int) -> State: ...@@ -220,6 +220,24 @@ 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,
) -> 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 +403,24 @@ def confirm_continue_move_fiber() -> FormGenerator: ...@@ -385,6 +403,24 @@ 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,
) -> 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 +458,24 @@ def deploy_new_isis( ...@@ -422,6 +458,24 @@ def deploy_new_isis(
return {"subscription": subscription} return {"subscription": subscription}
@step("Check ISIS adjacency")
def check_ip_trunk_isis(
subscription: Iptrunk,
callback_route: str,
) -> 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 +711,16 @@ def migrate_iptrunk() -> StepList: ...@@ -657,12 +711,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)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment