Flowchart Diagram


Service Creation Flow


Step Description


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.
    1. In case of Partial failure(Failure response not received for any (e.g)one domain controller.
      1. Invoke Rollback workflow by setting the flags as follows-
        • skipRollback=No; RollbackSDNC=Yes; RollbackAAI=Yes
      2. This will delete the service instance in AAI and send the delete request to SDNC for the domain service which is created successfully.
    2. In case of complete failure(Failure response received from all domain controllers)
      1. Invoke Rollback workflow by setting the flags as follows-
        • skipRollback=No; RollbackSDNC=No; RollbackAAI=Yes
      2. This will only delete the service instance in AAI
1i

Upon reception of async response from SDNC within timeout, then:

  • follow the step (1f).

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.
    1. In case of Partial failure(Failure response not received for any (e.g)one domain controller.
      1. Invoke Rollback workflow by setting the flags as follows-
        • skipRollback=No; RollbackSDNC=Yes; RollbackAAI=Yes
      2. This will delete the service instance in AAI and send the delete request to SDNC for the domain service which is created successfully.
    2. In case of complete failure(Failure response received from all domain controllers)
      1. Invoke Rollback workflow by setting the flags as follows-
        • skipRollback=No; RollbackSDNC=No; RollbackAAI=Yes
      2. 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.
    1. In case of Partial failure(Failure response not received for any (e.g)one domain controller.
      1. Invoke Rollback workflow by setting the flags as follows-
        • skipRollback=No; RollbackSDNC=Yes; RollbackAAI=Yes
      2. This will delete the service instance in AAI and send the delete request to SDNC for the domain service which is created successfully.
    2. In case of complete failure(Failure response received from all domain controllers)
      1. Invoke Rollback workflow by setting the flags as follows-
        • skipRollback=No; RollbackSDNC=No; RollbackAAI=Yes
      2. 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.
4eSend 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:

  • It is sync response.

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:

  • It is async response.

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.

  • No labels