-
Notifications
You must be signed in to change notification settings - Fork 13
Migrate a service
When the MANO Framework is used as part of the 5GTANGO Service Platform, please use the Gatekeeper component to make service migration requests. When using the MANO Framework in its standalone setup, it might be useful to use the sonmano library to interact with it.
To communicate directly with the MANO Framework, one needs to connect to the RabbitMQ message bus.
To terminate a running service, send a message on the service.instance.migrate
topic. This message requires the following header fields:
-
app_id
: to indicate the sender of the message -
correlation_id
: a correlation id for the message -
reply_to
: the topic on which the sender expects a response, in this caseservice.instance.migrate
The payload of the request is a yaml encoded dictionary that should include the following fields:
-
service_instance_uuid
: The id of the service instance -
vnf_uuid
: The id of the VNF that needs migrating -
vim_uuid
: The id of the VIM that the VNF should be migrated to
The MANO Framework will send two responses to this message on the same topic. A first response directly after receiving the request, to indicate that it was received, and whether the workflow was started. This message will have the following headers:
-
app_id
: To indicate which MANO Framework plugin responded -
correlation_id
: The same correlation id as in the request
The payload of the message is a yaml encoded dictionary with the following fields:
-
status
: eitherMIGRATING
orERROR
, to indicate whether the workflow was started or rejected -
error
:None
in case of no error, a string when there was an error -
timestamp
: the time when the response was sent
If the status
in this message was MIGRATING
, the MANO Framework will send an additional message at the end of the workflow. This message will have the following headers:
-
app_id
: To indicate which MANO Framework plugin (the SLM) responded -
correlation_id
: The same correlation id as in the request
The payload of the message is a yaml encoded dictionary with the following fields:
-
status
: eitherREADY
orERROR
, to indicate whether the workflow was successful or failed -
error
:None
in case of no error, a string when there was an error -
timestamp
: the time when the response was sent -
error
: null | string to indicate possible error -
duration
: Duration of the scaling workflow -
nsr
: The NSR -
vnfrs
: List of VNFRs