Step No | Functionality |
1a | Upon reception of L1 service creation request from UUI, CreateCustomE2EServiceInstance workflow to be invoked. - Validate the mandatory fields in service request.
- The mandatory fields are uni/enni ids, globalSubscriberId, serviceInvariantUuid etc... etc
|
1b | - Generate an operationId for the service request.
- Update requestDB with new entry for this service operation in operation_status table.
|
1c | - Based on if request validation is success/failure, send success/failure sync response to UUI with respective valid message.
|
1d | - If request validation is failure, then go to initial state.
- If request validation is success, then invoke the existing subprocess flow named “DoCreateE2EServiceInstance” to process the request further
|
2a | - Get the request parameters to prepare for service decomposition and create service instance in AAI
- Required request parameters are requestId, globalSubscriberId, serviceType, serviceInstanceId, serviecInstanceName, serviecInvarientUuid, serviceUuid etc...
|
2b | - Get and set the request parameters required to process service decomposition.
- The required request paramaters are serviceModelInvarientId, serviceModelUuid and modelVersion.
|
2c | - Invoke workflow named “DecomposeService” to process the service decomposition.
|
3a | - Get and set the request parameters required to query catalog DB for service-recipe.
- Query the CatalogDB for the service recipe required for service decomposition using either serviceModelInvarientId or serviceModelUuid.
|
3b | - Decompose the service template and get the service resources such as UNI_UNI, UNI-ENNI etc.
- Post service decomposition, SO to store the decomposed service in ServiceDecomposition class for further process.
|
2d | - Check if service decomposition is success or failure
|
2e | - If success, create L1 Access service instance in AAI with orchestration-status “PENDING”
|
2f & 1e | If failure, then: - Update operation-status table with result = FAILED in RequestDB.
- Delete L1 Access-service instance entry in AAI.
- Send response to UUI with valid message(Resources are not available/invalid).
|
2g | - Query orchestration URI for decomposed service resource from catalog DB table vnf_recipe: CreateSDNCNetworkResource
|
4a | If modelType is UNI and serviceType is MDONS_OTN: - Map request parameters from UUI to the template attributes.
- Create the request format to be sent to SDNC using template parameters and UUI inputs.
- Send the request to SDNC Adapter.
|
5a | If serviceType is MDONS_OTN, send the request from SDNC adapter to SDNC by invoking the opticalservice:optical-service-create RPC in SDNC |
5b | Get the SDNC response in SDNC adapter and pass it on to the calling BPMN flow. |
4b | Upon reception of SDNC response, SO to: - Check the response code for success/failure
- If failure, invoke the failure handling flow
- If success, check for ack-final-indicator value
|
4c | - If ack-final-indicator="Y", then Update requestDB with operation status of the request for which response came from SDNC.
- Update orchestration status for L1 Access-Service instance in AAI.
- Send response to UUI with valid message.
|
4d | - If the flag ack-final-indicator =N in SDNC response, then: Wait for async response from SDNC with timer.
|
4e | - Upon reception of async response from SDNC within timeout, process in the same way as 4b, 4c and 4d
|
4f | Upon reception of no SDNC response within timeout, SO to: - Consider it as failure case.
- Invoke the failure handling flow
|
Failure Flow |
6a | Upon reception of failure response, SO to invoke Rollback workflow- DoCreateServiceInstanceRollback - Get the parameters to process the rollback.
- Here parameters to be checked are flags such as - skipRollback, RollbackSDNC, serviceType and RollbackAAI
|
6b | If skipRollback=No, then: - check if SDNC needed rollback.
- If RollbackSDNC = Yes, then execute the SDNC rollback flow.
|
6c | - If RollbackSDNC= No, then , Verify if the flag RollbackAAI =Yes.
|
6d | - If Yes, then delete the service instance entry in AAI.
|
6e | - Post process the result and send response to ExternalAPI with valid message.
|