A modification workflow that migrates an IAS Service to a new Edge Port.
In one run of a migration workflow, only a single Access Port can be replaced. This is due to the nature of these
services. When a service is dually homed, for example, only one of the Access Ports should be migrated. The other one
will remain the way it is.
At the start of the workflow, the operator will select one Access Port that is to be migrated, and will then select a
destination Edge Port that this service should be placed on. All other Access Ports will be left as-is.
migrate_ias()
Migrate an IAS Service to a destination Edge Port.
Source code in gso/workflows/l3_core_service/ias/migrate_ias.py
| @workflow(
"Migrate IAS",
initial_input_form=wrap_modify_initial_input_form(initial_input_form),
target=Target.MODIFY,
)
def migrate_ias() -> StepList:
"""Migrate an IAS Service to a destination Edge Port."""
is_human_initiated_wf = conditional(lambda state: bool(state.get(IS_HUMAN_INITIATED_WF_KEY)))
return (
begin
>> store_process_subscription(Target.MODIFY)
>> inject_partner_name
>> is_human_initiated_wf(lso_interaction(show_bgp_neighbors)) # TODO: send OTRS email with pre-check results
>> is_human_initiated_wf(lso_interaction(deactivate_bgp_dry))
>> is_human_initiated_wf(lso_interaction(deactivate_bgp_real))
>> is_human_initiated_wf(lso_interaction(deactivate_sbp_dry))
>> is_human_initiated_wf(lso_interaction(deactivate_sbp_real))
>> is_human_initiated_wf(inform_operator_traffic_check)
>> unsync
>> generate_scoped_subscription_model
>> start_moodi() # TODO: include results from first LSO run
>> lso_interaction(deploy_destination_ep_dry)
>> lso_interaction(deploy_destination_ep_real)
>> lso_interaction(deploy_bgp_session_dry)
>> lso_interaction(deploy_bgp_session_real)
>> update_dns_records
>> update_subscription_model
>> resync
>> stop_moodi()
>> done
)
|