Step No | Functionality |
1a | Upon reception of L1 service creation request, CreateCustomE2EServiceInstance workflow to be invoked. - Validate the madatory 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 | - If request validation is success/failure,
- Send success/failure sync response to ExternalAPII with respective valid message.
|
1d | - If request validation is failure, then go to intial 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.
- The required parameters are serviceModelInvarientId, serviceModelUuid and modelVersion.
|
3b | - Query the CatalogDB for the service recipe required for service decomposition using either serviceModelInvarientId or serviceModelUuid.
|
3c | Decompose the service template as follows: - Get the domain type from AAI using uni-id/enni-id.
- Get the resources such as a-end, z-end from AAI.
- Allocate the resources to the respective domain-type.
|
2d | - Post service decomposition, SO to store the decomposed service in ServiceDecomposition class for further process.
|
2e | - After service decomposition, create L1 Access service instance in AAI.
- The orchestration-status of Access_Service is “PENDING”
|
2f | If serviceType is OTN, then: do resource validation as follows: - Validate resources by checking the in-maint status and available-capacity of p-interface(uni-id/enni-id) in AAI.
- Resource validation is success only iff in-maint=false and avaialable-capacity should be greaterthan or equal to uni_coding_func value. Otherwise resource validation is considered as failure.
|
2h | If resource validation is 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 | If the resource validation is success,then prepare the completion request as follows: - Generate n operationIds for decomposed service.
- Split into n requests based on domain type and assign operationId to each request.[Note: n is based on number of domain services to be created]
- Store the request details in requestDB in operation-status table.
In Phase 2: - If the resource validation is success, then invoke "Homing" workflow to call OOF to determine inter-domain link.
|
1d | If resource validation is success, then update AAI as follows: - Update L1 Access-service instance orchestration-status = ASSIGNED in AAI
- Update inter-domin link available-capacity based on the uni_coding_func value.E.g: If uni_coding_func = 10G in service creation request and the available-capacity of inter-domain link is 100G, then SO to update the available-capacity to 90G.
- Relate the inter-domain link to service-instance in AAI.
|
1e | If serviceType is OTN, then send the prepared create requests to SDNC via DMaaP. Otherwise existing flow to be executed. |
1f | Upon reception of SDNC response, SO to: - Verify if it received the response for all domain service create requests.
- Update requestDB with operation status of the request for which response came from SDNC.
|
1g | If SO not received the response for all domain service create requests, then - Wait for response from SDNC for rest of domain service create requests.
Upon reception of response from SDNC for all domain service create requests, then - verify the flag ack-final-indicator, it its value is N.
- ack-final-indicator- flag comes in SDNC response to indicate if sync response or async response.
- ack-final-indicator=N indicates sync response.
- ack-final-indicator=Y indicates async response.
|
1h | If the flag ack-final-indicator =N in SDNC response, then: - verify if the response is success for all domain service create requests.
Upon reception of SUCCESS sync response from SDNC, then: - Update orchestration status = creating for L1 Access-Service instance in AAI.
- Update operation status of main request in requestDB with progress = 75%.
- Send response to ExternalAPII with valid message.
- Wait for async response from SDNC with timer.
Upon reception of Failure sync response from SDNC, then: - Update operation status of subrequests and main request in request DB with result=FAILED and progress=0.
- Send the failure response to ExternalAPII with valid message.
- Prepare for service rollback to invoke Rollback workflow to differentiate partial and complete failure as follows.
- In case of Partial failure(Failure response not received for any (e.g)one domain controller.
- Invoke Rollback workflow by setting the flags as follows-
- skipRollback=No; RollbackSDNC=Yes; RollbackAAI=Yes
- This will delete the service instance in AAI and send the delete request to SDNC for the domain service which is created successfully.
- In case of complete failure(Failure response received from all domain controllers)
- Invoke Rollback workflow by setting the flags as follows-
- skipRollback=No; RollbackSDNC=No; RollbackAAI=Yes
- This will only delete the service instance in AAI
|
1i | Upon reception of async response from SDNC within timeout, then: Upon reception of no response from SDNC within timeout, then: - Consider it as failure case
- Update operation status of subrequests and main request in request DB with result=FAILED and progress=0.
- Send the failure response to ExternalAPI with valid message.
- Prepare for service rollback to invoke Rollback workflow to differentiate partial and complete failure as follows.
- In case of Partial failure(Failure response not received for any (e.g)one domain controller.
- Invoke Rollback workflow by setting the flags as follows-
- skipRollback=No; RollbackSDNC=Yes; RollbackAAI=Yes
- This will delete the service instance in AAI and send the delete request to SDNC for the domain service which is created successfully.
- In case of complete failure(Failure response received from all domain controllers)
- Invoke Rollback workflow by setting the flags as follows-
- skipRollback=No; RollbackSDNC=No; RollbackAAI=Yes
- This will only delete the service instance in AAI
|
1j | If the flag ack-final-indicator !=N, then: - verify if response is success for all domain service create requests.
Upon reception of SUCCESS async response from SDNC, then: - Update orchestration-status=created for L1 Access-service instance in AAI.
- Update orcehstration status of subrequest and main request in requestDB with preogress=100% and result=COMPLETED.
- Send the success response to ExternalAPI with valid message.
Upon reception of FAILURE async response from SDNC, then: - Update operation status of subrequests and main request in request DB with result=FAILED and progress=0.
- Send the failure response to ExternalAPII with valid message.
- Prepare for service rollback to invoke Rollback workflow to differentiate partial and complete failure as follows.
- In case of Partial failure(Failure response not received for any (e.g)one domain controller.
- Invoke Rollback workflow by setting the flags as follows-
- skipRollback=No; RollbackSDNC=Yes; RollbackAAI=Yes
- This will delete the service instance in AAI and send the delete request to SDNC for the domain service which is created successfully.
- In case of complete failure(Failure response received from all domain controllers)
- Invoke Rollback workflow by setting the flags as follows-
- skipRollback=No; RollbackSDNC=No; RollbackAAI=Yes
- This will only delete the service instance in AAI
|
Rollback Flow |
4a | 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
|
4b | If skipRollback=No, then: - check if SDNC needed rollback.
- If RollbackSDNC = Yes, then rollback in SDNC is needed.
|
4c | If RollbackSDNC= yes, then - check if serviceType=OTN.
- If No, then execute the existing flow.
- If Yes, then proceed to step 4d.
|
4d | Upon reception of FAILURE response from any one domain controller(E.g)[Partial failure] - Prepare delete request(s) for domain controller(s) which has sent SUCCESS response.
|
4e | Send the delete request to SDNC via DMaaP. |
4f | Upon reception of SDNC response, SO to: - verify if the response is received for all the delete request sent.
- If no, then wait for response from SDNC for rest of domain controllers.
- If yes, then verify if the flag ack-final-indicator=N in SDNC response.
|
4g | If the falg ack-final-indicator=N, then it is a sync response and process further. Otherwise it i async response. |
4h | If the flag ack-final-indicator=N, then: Upon reception of sync SUCCESS response from SDNC, - Wait for async response and follow step (4i) to handle timeout.
Upon reception of async FAILURE response from SDNC, - send failure response to ExternalAPII with valid message.
|
4i | Upon reception of SDNC response within timeout, - Proceed the steps from (4f).
Upon reception of no SDNC response within timeout, - Consider it as failure case.
- send failure response to ExternalAPII with valid message.
|
4j | If the flag ack-final-indicator !=N then: Upon reception of async SUCCESS response from SDNC, - Proceed to step (4l) to delete service instance in AAI.
Upon reception of async FAILURE response from SDNC, - send failure response to ExternalAPI with valid message.
|
4k | In Complete Failure scenario, We only need to delete the service instance in AAI. In this case RollbackSDNC=No. Thi will proceed to delete service instance in AAI. |
4l | Verify the flag RollbackAAI =Yes. If Yes, then delete the service instance entry in AAI. |