...
- Supported at the vnf level.
- Can change only the openstack image, not vfModule assignments or structure.
- When VID sends a vnf level (macro-like) update request, SO will attempt to update EACH vfModule child for that vnf as represented in A&AI inventory (base vfModule first, then addons in any order).
- Functionally like a delete and rebuild.
- Supported at the vnf level.
- Could be done to perform a software upgrade (openstack image change) or to re-build the vnf’s vfModules using the existing image.
- When VID sends a vnf level (macro-like) replace request, SO will attempt to replace EACH vfModule child for that vnf as represented in A&AI inventory. SO will delete any addon vfModules first, then delete the base module last, however the ECOMP provided assignments will be retained and will be re-used on the subsequent “create”. SO will then create the base vfModule first, then addons in any order. If so desired by VID user, any associated volumeGroups for each vfModule could be re-built as well (assumed not typically desired since volumeGroups are used to store persistent data).
VNF Replace
- Functionally like a delete and rebuild.
- Supported at the vnf level.
- Could be done to perform a software upgrade (openstack image change) or to re-build the vnf’s vfModules using the existing image.
- When VID sends a vnf level (macro-like) replace request, SO will attempt to replace EACH vfModule child for that vnf as represented in A&AI inventory. SO will delete any addon vfModules first, then delete the base module last, however the ECOMP provided assignments will be retained and will be re-used on the subsequent “create”. SO will then create the base vfModule first, then addons in any order. If so desired by VID user, any associated volumeGroups for each vfModule could be re-built as well (assumed not typically desired since volumeGroups are used to store persistent data).
Error Handling for VNF Update and VNF Replace
If a failure is hit during the above flows, policy is consulted. If no policy is found, or if the policy states to perform manual handling, then a manual task is created in Camunda. The VID user can search for and respond to manual tasks. VID uses a new API exposed by the infrastructure API Handler for this). The user can respond with directives: “skip”, “abort”, “retry”, or “rollback”.
...
Supporting Documents:
- MySQL Workbench file: ONAP_SO_Catalog_DB_1710.mwb
- A table/column mapping spreadsheet: ONAP_SO_CatalogDB_Refactoring_column_mapping.xlsx
SO code libraries to interface with other ONAP components
...
- Input Parameters
- The service decomposition object is passed as an input, replacing individual decomposition parameters.
- The new serviceInputParams input is a block of all user parameters extracted from requestParameters.userParams.
- Create service instance
- Get customer and service subscription in A&AI. Raise exception if service instance already exists - unchanged.
- Create service instance id in A&AI. Include the following input parameters: service-instance-name (optional), service-type, service-role, and orchestration-status = Created.
- Call SDN-X to create service instance:
- Call SDN controller service-topology-operation with request-action = CreateServiceInstance and svc-action = “assign” using generic-resource API.
- Route the service instance creation request to SDN-W if service-type = “TRANSPORT” using the SDN-W end-point route / URL. The building block will pass the service-type value in the msoAction field in the adapter.
- Pass the AIC zone in userParams to SDN-W in service-input-parameters.paramete
DoDeleteServiceInstance Building Block
...
- Input Parameters
- The new serviceInputParams input is a block of all user parameters extracted from requestParameters.userParams.
- Get Service: unchanged.
- Post Processing:
- Check that there are no children and no relationships for the service instance, and return an error if any are found. This will be generic logic that will apply to all service types.
- Get service-instance service-type.
- Decision Steps:
- If the service-type = “TRANSPORT” and orchestration-status = PendingDelete then skip the SDN deactivate step and only do the SDN delete step.
- If the service-type = “TRANSPORT” and orchestration-status ≠ PendingDelete then return error. It is expected that this validation will also be performed by SDN-W.
- Call SDN-X to Delete Service:
- Call SDN-W service-topology-operation with request-action = DeleteServiceInstance and svc-action = “delete” as per SDN-C generic-resource API. Route the service instance deletion request to SDN-W if service-type value = “TRANSPORT” using the SDN-W end-point route / URL. The building block will pass the service-type value in the msoAction field in the adapter.
- Delete the service instance in A&AI: unchanged.
Decomposition Building Block
...
The new Rainy Day Building Block flow calls Policy to determine an action for an error. If policy is absent, or if the policy specifies manual action, the Manual Handling Building Block is invoked. The Manual Handling Building Block suspends the flow until a VID user inputs a directive to resume the flow, one of: “skip”, “abort”, “retry”, or “rollback”.
Swagger Output
...