Migrate edge port services
A modification workflow that migrates all L2 and L3 services linked to an EdgePort to a different endpoint.
initial_input_form_generator(subscription_id)
Gather input from the operator on the new router that the EdgePort should connect to.
Source code in gso/workflows/edge_port/migrate_edge_port_services.py
confirm_graphs_looks_good_in_moodi()
Wait for confirmation from an operator that the new Migration looks good so far.
Source code in gso/workflows/edge_port/migrate_edge_port_services.py
migrate_l3_core_services_to_new_node(tt_number, callback_route, source_edge_port, destination_edge_port)
Migrate all L3 core services from the old EdgePort to the new EdgePort.
The migration playbook is executed once for each service to apply the configuration on the new node and as a result, the service bindings port and BGP sessions related to this edge port of each service will be moved to the new node.
Source code in gso/workflows/edge_port/migrate_edge_port_services.py
migrate_l2_circuits_to_new_node(tt_number, callback_route, source_edge_port, destination_edge_port)
Migrate Layer2 circuits from the old EdgePort to the new EdgePort.
Source code in gso/workflows/edge_port/migrate_edge_port_services.py
disable_old_config_dry(subscription, process_id, tt_number)
Perform a dry run of disabling the old configuration on the routers.
Source code in gso/workflows/edge_port/migrate_edge_port_services.py
disable_old_config_real(subscription, process_id, tt_number)
Disable old configuration on the routers.
Source code in gso/workflows/edge_port/migrate_edge_port_services.py
inform_operator_traffic_check()
Wait for confirmation from an operator that the results from the pre-checks look OK.
In case the results look OK, the workflow can continue. If the results don't look OK, the workflow can still be aborted at this time, without the subscription going out of sync. Moodi will also not start, and the subscription model has not been updated yet. Effectively, this prevents any changes inside the orchestrator from occurring. The one thing that must be rolled back manually, is the deactivated configuration that sits on the source device.
Source code in gso/workflows/edge_port/migrate_edge_port_services.py
evaluate_l3_wfs_results(callback_result)
Evaluate the result of the provisioning proxy callback.
Source code in gso/workflows/edge_port/migrate_edge_port_services.py
evaluate_l2_wfs_results(callback_result)
Evaluate the result of the provisioning proxy callback.
Source code in gso/workflows/edge_port/migrate_edge_port_services.py
generate_scoped_subscription_models(source_edge_port, destination_edge_port)
Preview the updated L3 service subscriptions model for Moodi without applying the changes.
Source code in gso/workflows/edge_port/migrate_edge_port_services.py
_generate_scoped_subscription_for_l2_services(source_edge_port, destination_edge_port)
Calculate what the updated subscription model will look like, but don't update the actual subscription yet.
The new subscription is used for Moodi, but the updated subscription model is not stored yet, to avoid issues recovering when the workflow is aborted.
Source code in gso/workflows/edge_port/migrate_edge_port_services.py
_generate_scoped_subscription_models_for_l3_services(destination_edge_port, source_edge_port)
Calculate what the updated subscription model will look like, but don't update the actual subscription yet.
The new subscription is used for Moodi, but the updated subscription model is not stored yet, to avoid issues recovering when the workflow is aborted.
Source code in gso/workflows/edge_port/migrate_edge_port_services.py
validate_edge_port_migration_eligibility(subscription)
Validate that all services linked to the EdgePort can be migrated.
Source code in gso/workflows/edge_port/migrate_edge_port_services.py
confirm_continue_move_fiber()
Wait for confirmation from an operator that the physical fiber has been moved.
Source code in gso/workflows/edge_port/migrate_edge_port_services.py
migrate_edge_port_services()
Migrate all services from an EdgePort to a new EdgePort.