diff --git a/gso/workflows/iptrunk/migrate_iptrunk.py b/gso/workflows/iptrunk/migrate_iptrunk.py index 16dc3f74a1eec22146481872a7627ad0fede7d32..706646edb9a476c8d6cb0e0d579949d4af6cda31 100644 --- a/gso/workflows/iptrunk/migrate_iptrunk.py +++ b/gso/workflows/iptrunk/migrate_iptrunk.py @@ -222,19 +222,47 @@ 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( +@step("Check Optical PRE levels on the trunk endpoint") +def check_ip_trunk_optical_levels_pre( subscription: Iptrunk, callback_route: str, +) -> State: + """Check Optical PRE levels on the trunk.""" + extra_vars = {"wfo_ip_trunk_json": json.loads(json_dumps(subscription)), "check": "optical_pre"} + + execute_playbook( + playbook_name="iptrunks_checks.yaml", + callback_route=callback_route, + inventory=f"{subscription.iptrunk.iptrunk_sides[0].iptrunk_side_node.router_fqdn}\n" + f"{subscription.iptrunk.iptrunk_sides[1].iptrunk_side_node.router_fqdn}\n", + extra_vars=extra_vars, + ) + + return {"subscription": subscription} + + +@step("Check Optical POST levels on the trunk endpoint") +def check_ip_trunk_optical_levels_post( + subscription: Iptrunk, + callback_route: str, + new_node: Router, + new_lag_member_interfaces: list[dict], replace_index: int, ) -> State: - """Check Optical levels on the trunk.""" - extra_vars = {"wfo_ip_trunk_json": json.loads(json_dumps(subscription)), "check": "optical"} + """Check Optical POST levels on the trunk.""" + extra_vars = { + "wfo_ip_trunk_json": json.loads(json_dumps(subscription)), + "new_node": json.loads(json_dumps(new_node)), + "new_lag_member_interfaces": new_lag_member_interfaces, + "replace_index": replace_index, + "check": "optical_post", + } execute_playbook( playbook_name="iptrunks_checks.yaml", callback_route=callback_route, - inventory=subscription.iptrunk.iptrunk_sides[1 - replace_index].iptrunk_side_node.router_fqdn, + inventory=f"{subscription.iptrunk.iptrunk_sides[1 - replace_index].iptrunk_side_node.router_fqdn}\n" + f"{new_node.router.router_fqdn}\n", extra_vars=extra_vars, ) @@ -709,13 +737,13 @@ def migrate_iptrunk() -> StepList: >> new_side_is_nokia(netbox_reserve_interfaces) >> calculate_old_side_data >> lso_interaction(set_isis_to_max) - >> lso_interaction(check_ip_trunk_optical_levels) + >> lso_interaction(check_ip_trunk_optical_levels_pre) >> lso_interaction(disable_old_config_dry) >> lso_interaction(disable_old_config_real) >> lso_interaction(deploy_new_config_dry) >> lso_interaction(deploy_new_config_real) >> confirm_continue_move_fiber - >> lso_interaction(check_ip_trunk_optical_levels) + >> lso_interaction(check_ip_trunk_optical_levels_post) >> lso_interaction(check_ip_trunk_connectivity) >> lso_interaction(deploy_new_isis) >> lso_interaction(check_ip_trunk_isis)