summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/AnNssmfutils.groovy4
-rw-r--r--bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoActivateAccessNSSI.groovy28
-rw-r--r--bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoActivateSliceService.groovy2
-rw-r--r--bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoAllocateAccessNSSI.groovy13
-rw-r--r--bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoAllocateNSIandNSSI.groovy3
-rw-r--r--bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateSliceServiceInstance.groovy2
-rw-r--r--bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateSliceServiceOption.groovy49
-rw-r--r--bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeAllocateAccessNSSI.groovy8
-rw-r--r--bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/TnNssmfUtils.groovy1
-rw-r--r--bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoActivateAccessNSSI.bpmn555
-rw-r--r--bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoDeallocateAccessNSSI.bpmn360
-rwxr-xr-xbpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowAction.java12
-rw-r--r--bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ebb/loader/ServiceEBBLoader.java3
-rw-r--r--bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ebb/loader/VnfEBBLoader.java3
-rw-r--r--bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionTest.java5
-rw-r--r--bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ebb/loader/ServiceEBBLoaderTest.java7
-rw-r--r--bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ebb/loader/VnfEBBLoaderTest.java31
-rw-r--r--common/src/main/java/org/onap/so/beans/nsmf/ServiceInfo.java3
-rw-r--r--docs/developer_info/E2E_Network_Slicing_Understanding.rst111
-rw-r--r--docs/images/architecture-choices-e2e-slicing.pngbin0 -> 148202 bytes
-rw-r--r--docs/images/e2e-network-slicing-architecture.pngbin0 -> 77800 bytes
-rw-r--r--docs/images/lifecycle-of-network-slice-instance.pngbin0 -> 102114 bytes
-rw-r--r--docs/images/slicing-option1.pngbin0 -> 59522 bytes
-rw-r--r--docs/images/slicing-option2.pngbin0 -> 55435 bytes
-rw-r--r--mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/validators/VnfDeleteValidator.java3
-rw-r--r--mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/infra/rest/validator/VnfDeleteValidatorTest.java18
26 files changed, 811 insertions, 410 deletions
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/AnNssmfutils.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/AnNssmfutils.groovy
index f17bfc2938..71dd9b1426 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/AnNssmfutils.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/AnNssmfutils.groovy
@@ -254,7 +254,7 @@ else{
//TNFH slice profile instance creation
TNFH_sliceProfileInstance.setServiceInstanceId(TNFH_sliceProfileInstanceId)
- sliceInstanceName = "sliceprofile _ "+TNFH_sliceProfileId
+ sliceInstanceName = "sliceprofile_"+TNFH_sliceProfileId
TNFH_sliceProfileInstance.setServiceInstanceName(sliceInstanceName)
serviceType = jsonUtil.getJsonValue(execution.getVariable("tnFhSliceProfile"), "sST")
TNFH_sliceProfileInstance.setServiceType(serviceType)
@@ -271,7 +271,7 @@ else{
//TNMH slice profile instance creation
TNMH_sliceProfileInstance.setServiceInstanceId(TNMH_sliceProfileInstanceId)
- sliceInstanceName = "sliceprofile _ "+TNMH_sliceProfileId
+ sliceInstanceName = "sliceprofile_"+TNMH_sliceProfileId
TNMH_sliceProfileInstance.setServiceInstanceName(sliceInstanceName)
serviceType = jsonUtil.getJsonValue(execution.getVariable("tnMhSliceProfile"), "sST")
TNMH_sliceProfileInstance.setServiceType(serviceType)
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoActivateAccessNSSI.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoActivateAccessNSSI.groovy
index 1d75cf5216..2aaec9f164 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoActivateAccessNSSI.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoActivateAccessNSSI.groovy
@@ -73,9 +73,9 @@ class DoActivateAccessNSSI extends AbstractServiceTaskProcessor {
private static final String KEY_SLICE_PROFILE = "SliceProfile"
private static final String KEY_NSSI = "NSSI"
- private static final String AN_NF = "AN-NF"
- private static final String TN_FH = "TN-FH"
- private static final String TN_MH = "TN-MH"
+ private static final String AN_NF = "AN_NF"
+ private static final String TN_FH = "TN_FH"
+ private static final String TN_MH = "TN_MH"
private static final String ACTIVATE = "activateInstance"
private static final String DEACTIVATE = "deactivateInstance"
@@ -141,7 +141,11 @@ class DoActivateAccessNSSI extends AbstractServiceTaskProcessor {
execution.setVariable("relatedSPs", getRelatedInstancesByRole(execution, ROLE_SLICE_PROFILE,KEY_SLICE_PROFILE, anSliceProfileId))
Map<String,ServiceInstance> relatedNssis = new HashMap<>()
- execution.setVariable("relatedNssis", getRelatedInstancesByRole(execution, ROLE_NSSI,KEY_NSSI, anNssiId))
+ relatedNssis = getRelatedInstancesByRole(execution, ROLE_NSSI,KEY_NSSI, anNssiId)
+ if(relatedNssis.size() == 1) {
+ execution.setVariable("IsRANNfAlonePresent", true)
+ }
+ execution.setVariable("relatedNssis", relatedNssis)
logger.trace("${Prefix} - Exit Get Related instances")
}
@@ -205,13 +209,13 @@ class DoActivateAccessNSSI extends AbstractServiceTaskProcessor {
input.addProperty("sNSSAI", sNssai.toString())
JsonObject wrapinput = new JsonObject()
- wrapinput.addProperty("Action", action)
+ wrapinput.addProperty("action", action)
JsonObject CommonHeader = new JsonObject()
- CommonHeader.addProperty("TimeStamp", new Date(System.currentTimeMillis()).format("yyyy-MM-dd'T'HH:mm:ss.sss", TimeZone.getDefault()))
- CommonHeader.addProperty("APIver", "1.0")
- CommonHeader.addProperty("RequestID", reqId)
- CommonHeader.addProperty("SubRequestID", "1")
+ CommonHeader.addProperty("timestamp",new Date(System.currentTimeMillis()).format("yyyy-MM-dd'T'HH:mm:ss.sss'Z'", TimeZone.getDefault()))
+ CommonHeader.addProperty("api-ver", "1.0")
+ CommonHeader.addProperty("request-id", reqId)
+ CommonHeader.addProperty("sub-request-id", "1")
JsonObject body = new JsonObject()
body.add("input", wrapinput)
@@ -219,12 +223,12 @@ class DoActivateAccessNSSI extends AbstractServiceTaskProcessor {
JsonObject sdnrRequest = new JsonObject()
JsonObject payload = new JsonObject()
payload.add("input", input)
- wrapinput.addProperty("Payload", payload.toString())
- wrapinput.add("CommonHeader", CommonHeader)
+ wrapinput.addProperty("payload", payload.toString())
+ wrapinput.add("common-header", CommonHeader)
body.add("input", wrapinput)
sdnrRequest.add("body", body)
sdnrRequest.addProperty("version", "1.0")
- sdnrRequest.addProperty("rpc-name", "activateRANSlice")
+ sdnrRequest.addProperty("rpc-name", "activateRANSliceInstance")
sdnrRequest.addProperty("correlation-id", reqId)
sdnrRequest.addProperty("type", "request")
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoActivateSliceService.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoActivateSliceService.groovy
index 3d9f67653b..d0fe1e9469 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoActivateSliceService.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoActivateSliceService.groovy
@@ -158,6 +158,8 @@ class DoActivateSliceService extends AbstractServiceTaskProcessor {
ActDeActNssi actDeActNssi = new ActDeActNssi()
actDeActNssi.setNsiId(customerInfo.nsiId)
actDeActNssi.setNssiId(nssInstance.nssiId)
+ actDeActNssi.setSnssaiList(Arrays.asList(customerInfo.snssai))
+
nbiRequest.setEsrInfo(esrInfo)
nbiRequest.setServiceInfo(serviceInfo)
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoAllocateAccessNSSI.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoAllocateAccessNSSI.groovy
index ed1c2b24d5..9800428c68 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoAllocateAccessNSSI.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoAllocateAccessNSSI.groovy
@@ -654,7 +654,8 @@ class DoAllocateAccessNSSI extends AbstractServiceTaskProcessor {
logger.debug("completed AN service instance build " + ANServiceInstance.toString())
//create RAN NF NSSI
ANNFServiceInstance.setServiceInstanceId(execution.getVariable("RANNFServiceInstanceId") as String)
- sliceInstanceName = "nssi_"+execution.getVariable("ANNF_modelName")
+ String ANNF_nssiInstanceId = UUID.randomUUID().toString()
+ sliceInstanceName = "nssi_an_nf_" + ANNF_nssiInstanceId
ANNFServiceInstance.setServiceInstanceName(sliceInstanceName)
ANNFServiceInstance.setServiceType(execution.getVariable("sst") as String)
ANNFServiceInstance.setOrchestrationStatus(serviceStatus)
@@ -663,7 +664,7 @@ class DoAllocateAccessNSSI extends AbstractServiceTaskProcessor {
ANNFServiceInstance.setServiceRole(serviceRole)
snssaiList = jsonUtil.StringArrayToList(execution.getVariable("snssaiList") as String)
snssai = snssaiList.get(0)
- ANNFServiceInstance.setEnvironmentContext(snssai)
+ ANNFServiceInstance.setEnvironmentContext(execution.getVariable("networkType") as String)
ANNFServiceInstance.setModelInvariantId(execution.getVariable("ANNF_modelInvariantUuid"))
ANNFServiceInstance.setModelVersionId(execution.getVariable("ANNF_modelUuid"))
ANNFServiceInstance.setWorkloadContext("AN_NF")
@@ -1032,7 +1033,7 @@ class DoAllocateAccessNSSI extends AbstractServiceTaskProcessor {
RU_ep.setType(type)
RU_ep.setIpAddress("192.168.100.4")
RU_ep.setLogicalInterfaceId("1234")
- RU_ep.setNextHop("Host1")
+ RU_ep.setNextHop("networkId-providerId-10-clientId-0-topologyId-2-nodeId-10.1.1.1-ltpId-512")
RU_ep.setPrefixLength(prefixLength)
RU_ep.setAddressFamily(addressFamily)
//DU Ingress
@@ -1046,7 +1047,7 @@ class DoAllocateAccessNSSI extends AbstractServiceTaskProcessor {
DU_ep.setType(type)
DU_ep.setIpAddress("192.168.100.5")
DU_ep.setLogicalInterfaceId("1234")
- DU_ep.setNextHop("Host2")
+ DU_ep.setNextHop("networkId-providerId-20-clientId-0-topologyId-2-nodeId-10.2.1.2-ltpId-512")
DU_ep.setPrefixLength(prefixLength)
DU_ep.setAddressFamily(addressFamily)
//MH RAN end point update
@@ -1062,7 +1063,7 @@ class DoAllocateAccessNSSI extends AbstractServiceTaskProcessor {
DUEG_ep.setLogicalInterfaceId("1234")
DUEG_ep.setPrefixLength(prefixLength)
DUEG_ep.setAddressFamily(addressFamily)
- DUEG_ep.setNextHop("Host3")
+ DUEG_ep.setNextHop("networkId-providerId-10-clientId-0-topologyId-2-nodeId-10.1.1.1-ltpId-512")
//CUIN
String CUIN_routeId = UUID.randomUUID().toString()
execution.setVariable("tranportEp_ID_CUIN", CUIN_routeId)
@@ -1073,7 +1074,7 @@ class DoAllocateAccessNSSI extends AbstractServiceTaskProcessor {
CUIN_ep.setType(type)
CUIN_ep.setIpAddress("192.168.100.6")
CUIN_ep.setLogicalInterfaceId("1234")
- CUIN_ep.setNextHop("Host4")
+ CUIN_ep.setNextHop("networkId-providerId-20-clientId-0-topologyId-2-nodeId-10.2.1.2-ltpId-512")
CUIN_ep.setPrefixLength(prefixLength)
CUIN_ep.setAddressFamily(addressFamily)
try {
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoAllocateNSIandNSSI.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoAllocateNSIandNSSI.groovy
index bc155c5943..a22819f2e9 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoAllocateNSIandNSSI.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoAllocateNSIandNSSI.groovy
@@ -444,6 +444,7 @@ class DoAllocateNSIandNSSI extends AbstractServiceTaskProcessor{
.sST(sliceTaskInfo.getSliceProfile().getSST() ?: sliceParams.getServiceProfile().get("sST") as String)
.nssiName(sliceTaskInfo.getSuggestNssiId() ? sliceTaskInfo.getNSSTInfo().getName() : allocateAnNssi.getNssiName())
.nssiId(sliceTaskInfo.getSuggestNssiId())
+ .resourceSharingLevel(sliceParams.serviceProfile.get("resourceSharingLevel") as String)
.build()
nbiRequest.setServiceInfo(serviceInfo)
@@ -590,6 +591,7 @@ class DoAllocateNSIandNSSI extends AbstractServiceTaskProcessor{
serviceInfo.nssiId = sliceTaskInfo.suggestNssiId //if shared
serviceInfo.sST = sliceTaskInfo.sliceProfile.sST ?: sliceParams.serviceProfile.get("sST")
serviceInfo.nssiName = allocateCnNssi.nssiName
+ serviceInfo.resourceSharingLevel = sliceParams.serviceProfile.get("resourceSharingLevel")
nbiRequest.setServiceInfo(serviceInfo)
nbiRequest.setEsrInfo(esrInfo)
@@ -727,6 +729,7 @@ class DoAllocateNSIandNSSI extends AbstractServiceTaskProcessor{
serviceInfo.nssiId = sliceTaskInfo.suggestNssiId
serviceInfo.sST = sliceTaskInfo.sliceProfile.sST ?: sliceParams.serviceProfile.get("sST")
serviceInfo.nssiName = "nssi_tn" + execution.getVariable("sliceServiceInstanceName")
+ serviceInfo.resourceSharingLevel = sliceParams.serviceProfile.get("resourceSharingLevel")
nbiRequest.setServiceInfo(serviceInfo)
nbiRequest.setEsrInfo(esrInfo)
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateSliceServiceInstance.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateSliceServiceInstance.groovy
index 35b4199909..5476cb5afa 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateSliceServiceInstance.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateSliceServiceInstance.groovy
@@ -117,7 +117,7 @@ class DoCreateSliceServiceInstance extends AbstractServiceTaskProcessor{
String modelUuid = modelInfo.getModelUuid()
ss.setModelInvariantId(modelInvariantUuid)
ss.setModelVersionId(modelUuid)
- String serviceInstanceLocationid = serviceProfile.get("pLMNIdList")
+ String serviceInstanceLocationid = serviceProfile.get("plmnIdList")
ss.setServiceInstanceLocationId(serviceInstanceLocationid)
String snssai = serviceProfile.get("sNSSAI")
ss.setEnvironmentContext(snssai)
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateSliceServiceOption.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateSliceServiceOption.groovy
index 2588d07e50..7571f07081 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateSliceServiceOption.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateSliceServiceOption.groovy
@@ -21,6 +21,7 @@
package org.onap.so.bpmn.infrastructure.scripts
import com.fasterxml.jackson.databind.ObjectMapper
+import com.fasterxml.jackson.core.type.TypeReference
import org.camunda.bpm.engine.delegate.DelegateExecution
import org.onap.aai.domain.yang.ServiceInstance
import org.onap.so.beans.nsmf.EsrInfo
@@ -271,24 +272,22 @@ class DoCreateSliceServiceOption extends AbstractServiceTaskProcessor{
* @return
*/
private SubnetType convertServiceCategory(String serviceCategory){
- if("CN NSST".equals(serviceCategory)){
+ if(serviceCategory ==~ /CN.*/){
return SubnetType.CN
}
- if ("AN NF NSST".equals(serviceCategory)){
- return SubnetType.AN_NF
- }
- if ("AN NSST".equals(serviceCategory)){
+ if (serviceCategory ==~ /AN.*/){
return SubnetType.AN
}
- if ("TN BH NSST".equals(serviceCategory)){
+ if (serviceCategory ==~ /TN.*BH.*/){
return SubnetType.TN_BH
}
- if("TN MH NSST".equals(serviceCategory)){
+ if(serviceCategory ==~ /TN.*MH.*/){
return SubnetType.TN_MH
}
- if("TN FH NSST".equals(serviceCategory)){
+ if(serviceCategory ==~ /TN.*FH.*/){
return SubnetType.TN_FH
}
+
return null
}
@@ -475,7 +474,10 @@ class DoCreateSliceServiceOption extends AbstractServiceTaskProcessor{
*/
void getNSSISelectionCap4AN(DelegateExecution execution) {
- def vendor = execution.getVariable("vendor") as String
+ SliceTaskParamsAdapter sliceParams =
+ execution.getVariable("sliceTaskParams") as SliceTaskParamsAdapter
+
+ def vendor = sliceParams.anSliceTaskInfo.vendor
String strRequest = buildNSSISelectionReq(vendor, NetworkType.ACCESS)
@@ -497,7 +499,10 @@ class DoCreateSliceServiceOption extends AbstractServiceTaskProcessor{
*/
void getNSSISelectionCap4TN(DelegateExecution execution) {
- def vendor = execution.getVariable("vendor") as String
+ SliceTaskParamsAdapter sliceParams =
+ execution.getVariable("sliceTaskParams") as SliceTaskParamsAdapter
+
+ def vendor = sliceParams.tnBHSliceTaskInfo.vendor
String strRequest = buildNSSISelectionReq(vendor, NetworkType.TRANSPORT)
@@ -518,7 +523,10 @@ class DoCreateSliceServiceOption extends AbstractServiceTaskProcessor{
*/
void getNSSISelectionCap4CN(DelegateExecution execution) {
- def vendor = execution.getVariable("vendor") as String
+ SliceTaskParamsAdapter sliceParams =
+ execution.getVariable("sliceTaskParams") as SliceTaskParamsAdapter
+
+ def vendor = sliceParams.cnSliceTaskInfo.vendor
String strRequest = buildNSSISelectionReq(vendor, NetworkType.CORE)
@@ -626,8 +634,10 @@ class DoCreateSliceServiceOption extends AbstractServiceTaskProcessor{
Map nssiNeedHandlerInfo = nssiNeedHandlerInfos.get(currNssiIndex) as Map
TemplateInfo nsstInfo = nssiNeedHandlerInfo.get("nsstInfo") as TemplateInfo
- Map<String, Object> profileInfo = nssiNeedHandlerInfo.get("sliceProfile") as Map
- //profileInfo.remove("profileId")
+ SliceProfileAdapter sliceProfileInfo = nssiNeedHandlerInfo.get("sliceProfile") as SliceProfileAdapter
+
+ Map profileInfo = objectMapper.convertValue(sliceProfileInfo, new TypeReference<Map<String, Object>>() {});
+ while (profileInfo.values().remove(null));
String urlString = UrnPropertiesReader.getVariable("mso.oof.endpoint", execution)
logger.debug( "get NSI option OOF Url: " + urlString)
@@ -641,8 +651,8 @@ class DoCreateSliceServiceOption extends AbstractServiceTaskProcessor{
String timeout = UrnPropertiesReader.getVariable("mso.adapters.oof.timeout", execution)
execution.setVariable("nssiSelection_timeout", timeout)
- String oofRequest = oofUtils.buildSelectNSSIRequest(requestId, nsstInfo, messageType,
- profileInfo, 600)
+ String oofRequest = oofUtils.buildSelectNSSIRequest(requestId, messageType, nsstInfo.UUID,
+ nsstInfo.invariantUUID, nsstInfo.name, profileInfo)
execution.setVariable("nssiSelection_oofRequest", oofRequest)
logger.debug("Sending request to OOF: " + oofRequest)
@@ -672,13 +682,10 @@ class DoCreateSliceServiceOption extends AbstractServiceTaskProcessor{
Map<String, Object> resMap = objectMapper.readValue(OOFResponse, Map.class)
List<Map<String, Object>> nsiSolutions = (List<Map<String, Object>>) resMap.get("solutions")
- Map<String, Object> solution = nsiSolutions.get(0)
-
- String resourceSharingLevel = execution.getVariable("resourceSharingLevel")
- Boolean isSharable = resourceSharingLevel == "shared" //todo
- if (isSharable && solution != null) {
- processNssiResult(sliceTaskParams, subnetType, solution)
+ if(nsiSolutions.size()>=1) {
+ Map<String,Object> solution = nsiSolutions.get(0) as Map
+ processNssiResult(sliceTaskParams, subnetType, solution)
}
execution.setVariable("sliceTaskParams", sliceTaskParams)
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeAllocateAccessNSSI.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeAllocateAccessNSSI.groovy
index 5a3859fff4..6fd8080ef0 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeAllocateAccessNSSI.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeAllocateAccessNSSI.groovy
@@ -126,7 +126,11 @@ class DoDeAllocateAccessNSSI extends AbstractServiceTaskProcessor {
execution.setVariable("anNfSliceProfileId", getInstanceIdByWorkloadContext(execution.getVariable("relatedSPs"), AN_NF))
Map<String,ServiceInstance> relatedNssis = new HashMap<>()
- execution.setVariable("relatedNssis", getRelatedInstancesByRole(execution, ROLE_NSSI, anNssiId))
+ relatedNssis = getRelatedInstancesByRole(execution, ROLE_NSSI, anNssiId)
+ if(relatedNssis.size() == 1) {
+ execution.setVariable("IsRANNfAlonePresent", true)
+ }
+ execution.setVariable("relatedNssis", relatedNssis)
}
@@ -192,6 +196,8 @@ class DoDeAllocateAccessNSSI extends AbstractServiceTaskProcessor {
input.addProperty("RANNFNSSIId", anNfNssiId)
input.addProperty("callbackURL", callbackURL.toString())
input.addProperty("sNSSAI", sNssai)
+ input.addProperty("globalSubscriberId", execution.getVariable("globalSubscriberId") as String)
+ input.addProperty("subscriptionServiceType", execution.getVariable("subscriptionServiceType") as String)
input.addProperty("sliceProfileId",sliceProfileId)
input.add("additionalproperties", new JsonObject())
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/TnNssmfUtils.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/TnNssmfUtils.groovy
index e0c2b776fe..d6e94efea1 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/TnNssmfUtils.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/TnNssmfUtils.groovy
@@ -377,7 +377,6 @@ class TnNssmfUtils {
logger.debug("mso.workflow.TnNssmf.enableSDNCNetworkConfig is undefined, so use default value (true)")
enableSdnc = "true"
}
- enableSdnc = "false"
logger.debug("setEnableSdncConfig: enableSdnc=" + enableSdnc)
execution.setVariable("enableSdnc", enableSdnc)
diff --git a/bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoActivateAccessNSSI.bpmn b/bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoActivateAccessNSSI.bpmn
index 841a23b3eb..b1561357ae 100644
--- a/bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoActivateAccessNSSI.bpmn
+++ b/bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoActivateAccessNSSI.bpmn
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" id="Definitions_0rh5ux5" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.1.1">
+<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" id="Definitions_0rh5ux5" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.10.0">
<bpmn:process id="DoActivateAccessNSSI" name="DoActivateAccessNSSI" isExecutable="true">
<bpmn:startEvent id="Event_055gbp2" name="Start">
<bpmn:outgoing>Flow_0rh43xe</bpmn:outgoing>
@@ -16,7 +16,7 @@
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{execution.getVariable("shouldChangeAN_NF_SPStatus") == true}</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:intermediateThrowEvent id="Event_1n5z71a" name="Goto TN NSSI Activation">
- <bpmn:incoming>Flow_0mtkhmv</bpmn:incoming>
+ <bpmn:incoming>Flow_0umba3p</bpmn:incoming>
<bpmn:linkEventDefinition id="LinkEventDefinition_0x6han6" name="TNNSSIActivation" />
</bpmn:intermediateThrowEvent>
<bpmn:intermediateCatchEvent id="Event_0kkeo9m" name="TN NSSI Activation">
@@ -27,9 +27,9 @@
<bpmn:incoming>Flow_1b6vtso</bpmn:incoming>
<bpmn:linkEventDefinition id="LinkEventDefinition_05qiudr" name="AN_NSSI_Activation" />
</bpmn:intermediateThrowEvent>
- <bpmn:sequenceFlow id="Flow_0523saw" sourceRef="Gateway_12oq1sa" targetRef="Event_0rzo7gj" />
+ <bpmn:sequenceFlow id="Flow_0523saw" sourceRef="Gateway_12oq1sa" targetRef="Gateway_0ci374j" />
<bpmn:intermediateThrowEvent id="Event_0rzo7gj" name="Check TN NSSI Activation">
- <bpmn:incoming>Flow_0523saw</bpmn:incoming>
+ <bpmn:incoming>Flow_1vyktdh</bpmn:incoming>
<bpmn:linkEventDefinition id="LinkEventDefinition_0s7s95j" name="TNNSSIActivation" />
</bpmn:intermediateThrowEvent>
<bpmn:sequenceFlow id="Flow_1cnfilb" sourceRef="Event_1azfo77" targetRef="Activity_1j0xkqc" />
@@ -260,7 +260,7 @@ ex.processJavaException(execution)</bpmn:script>
def activator = new DoActivateAccessNSSI()
activator.updateAnNfStatus(execution)</bpmn:script>
</bpmn:scriptTask>
- <bpmn:sequenceFlow id="Flow_0mtkhmv" sourceRef="Activity_08yj5gq" targetRef="Event_1n5z71a" />
+ <bpmn:sequenceFlow id="Flow_0mtkhmv" sourceRef="Activity_08yj5gq" targetRef="Gateway_0n3zhxo" />
<bpmn:scriptTask id="Activity_1fzg56b" name="Check TN FH Slice profile status" scriptFormat="groovy">
<bpmn:incoming>Flow_1q7frye</bpmn:incoming>
<bpmn:outgoing>Flow_1yd57bl</bpmn:outgoing>
@@ -519,494 +519,573 @@ activator.prepareUpdateJobStatus(execution,"finished","100","AN NSSI activation
<bpmn:incoming>Flow_0g9k299</bpmn:incoming>
<bpmn:linkEventDefinition id="LinkEventDefinition_1h9r8pc" name="AN_NSSI_Activation" />
</bpmn:intermediateThrowEvent>
+ <bpmn:exclusiveGateway id="Gateway_0ci374j" name="Is TN NSSI present?" default="Flow_1vyktdh">
+ <bpmn:incoming>Flow_0523saw</bpmn:incoming>
+ <bpmn:outgoing>Flow_1vyktdh</bpmn:outgoing>
+ <bpmn:outgoing>Flow_1buy9ji</bpmn:outgoing>
+ </bpmn:exclusiveGateway>
+ <bpmn:sequenceFlow id="Flow_1vyktdh" name="Yes" sourceRef="Gateway_0ci374j" targetRef="Event_0rzo7gj" />
+ <bpmn:intermediateThrowEvent id="Event_04dd3u6" name="Goto AN NSSI Activation">
+ <bpmn:incoming>Flow_1buy9ji</bpmn:incoming>
+ <bpmn:linkEventDefinition id="LinkEventDefinition_1x4z9d9" name="AN_NSSI_Activation" />
+ </bpmn:intermediateThrowEvent>
+ <bpmn:sequenceFlow id="Flow_1buy9ji" name="No" sourceRef="Gateway_0ci374j" targetRef="Event_04dd3u6">
+ <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{(execution.getVariable("IsRANNfAlonePresent" ) == true)}</bpmn:conditionExpression>
+ </bpmn:sequenceFlow>
+ <bpmn:exclusiveGateway id="Gateway_0n3zhxo" name="Is TN present?" default="Flow_0umba3p">
+ <bpmn:incoming>Flow_0mtkhmv</bpmn:incoming>
+ <bpmn:outgoing>Flow_0umba3p</bpmn:outgoing>
+ <bpmn:outgoing>Flow_1xrbneh</bpmn:outgoing>
+ </bpmn:exclusiveGateway>
+ <bpmn:sequenceFlow id="Flow_0umba3p" name="Yes" sourceRef="Gateway_0n3zhxo" targetRef="Event_1n5z71a" />
+ <bpmn:intermediateThrowEvent id="Event_1akyxj9" name="Goto AN NSSI Activation">
+ <bpmn:incoming>Flow_1xrbneh</bpmn:incoming>
+ <bpmn:linkEventDefinition id="LinkEventDefinition_1inqa6n" name="AN_NSSI_Activation" />
+ </bpmn:intermediateThrowEvent>
+ <bpmn:sequenceFlow id="Flow_1xrbneh" name="No" sourceRef="Gateway_0n3zhxo" targetRef="Event_1akyxj9">
+ <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{(execution.getVariable("IsRANNfAlonePresent" ) == true)}</bpmn:conditionExpression>
+ </bpmn:sequenceFlow>
</bpmn:process>
<bpmn:error id="Error_1beg2za" name="ActivationWorkflowError" errorCode="2500" />
<bpmn:error id="Error_0vgjqok" />
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="DoActivateAccessNSSI">
<bpmndi:BPMNEdge id="Flow_1876ml0_di" bpmnElement="Flow_1876ml0">
- <di:waypoint x="660" y="940" />
- <di:waypoint x="712" y="940" />
+ <di:waypoint x="660" y="1050" />
+ <di:waypoint x="712" y="1050" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0cblklk_di" bpmnElement="Flow_0cblklk">
- <di:waypoint x="350" y="940" />
- <di:waypoint x="390" y="940" />
+ <di:waypoint x="350" y="1050" />
+ <di:waypoint x="390" y="1050" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_06nfip0_di" bpmnElement="Flow_06nfip0">
- <di:waypoint x="490" y="940" />
- <di:waypoint x="560" y="940" />
+ <di:waypoint x="490" y="1050" />
+ <di:waypoint x="560" y="1050" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0k5cyz7_di" bpmnElement="Flow_0k5cyz7">
- <di:waypoint x="1330" y="690" />
- <di:waypoint x="1410" y="690" />
+ <di:waypoint x="1330" y="800" />
+ <di:waypoint x="1410" y="800" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1b95clk_di" bpmnElement="Flow_1b95clk">
- <di:waypoint x="1320" y="450" />
- <di:waypoint x="1410" y="450" />
+ <di:waypoint x="1320" y="560" />
+ <di:waypoint x="1410" y="560" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1b6vtso_di" bpmnElement="Flow_1b6vtso">
- <di:waypoint x="1680" y="690" />
- <di:waypoint x="1742" y="690" />
+ <di:waypoint x="1680" y="800" />
+ <di:waypoint x="1742" y="800" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1s0xcf5_di" bpmnElement="Flow_1s0xcf5">
- <di:waypoint x="580" y="690" />
- <di:waypoint x="640" y="690" />
+ <di:waypoint x="580" y="800" />
+ <di:waypoint x="640" y="800" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1wx5w6i_di" bpmnElement="Flow_1wx5w6i">
- <di:waypoint x="1510" y="690" />
- <di:waypoint x="1580" y="690" />
+ <di:waypoint x="1510" y="800" />
+ <di:waypoint x="1580" y="800" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0rzuxa0_di" bpmnElement="Flow_0rzuxa0">
- <di:waypoint x="1140" y="715" />
- <di:waypoint x="1140" y="762" />
+ <di:waypoint x="1140" y="825" />
+ <di:waypoint x="1140" y="872" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1i4cc7e_di" bpmnElement="Flow_1i4cc7e">
- <di:waypoint x="1165" y="690" />
- <di:waypoint x="1230" y="690" />
+ <di:waypoint x="1165" y="800" />
+ <di:waypoint x="1230" y="800" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="1168" y="672" width="18" height="14" />
+ <dc:Bounds x="1168" y="782" width="18" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0to1idt_di" bpmnElement="Flow_0to1idt">
- <di:waypoint x="1070" y="690" />
- <di:waypoint x="1115" y="690" />
+ <di:waypoint x="1070" y="800" />
+ <di:waypoint x="1115" y="800" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0b7aq1k_di" bpmnElement="Flow_0b7aq1k">
- <di:waypoint x="900" y="690" />
- <di:waypoint x="970" y="690" />
+ <di:waypoint x="900" y="800" />
+ <di:waypoint x="970" y="800" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0sqsq1x_di" bpmnElement="Flow_0sqsq1x">
- <di:waypoint x="740" y="690" />
- <di:waypoint x="800" y="690" />
+ <di:waypoint x="740" y="800" />
+ <di:waypoint x="800" y="800" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1qszzfv_di" bpmnElement="Flow_1qszzfv">
- <di:waypoint x="1680" y="450" />
- <di:waypoint x="1732" y="450" />
+ <di:waypoint x="1680" y="560" />
+ <di:waypoint x="1732" y="560" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1ldkgyg_di" bpmnElement="Flow_1ldkgyg">
- <di:waypoint x="1510" y="450" />
- <di:waypoint x="1580" y="450" />
+ <di:waypoint x="1510" y="560" />
+ <di:waypoint x="1580" y="560" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0ajre96_di" bpmnElement="Flow_0ajre96">
- <di:waypoint x="1130" y="475" />
- <di:waypoint x="1130" y="522" />
+ <di:waypoint x="1130" y="585" />
+ <di:waypoint x="1130" y="632" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0bukcmf_di" bpmnElement="Flow_0bukcmf">
- <di:waypoint x="1155" y="450" />
- <di:waypoint x="1220" y="450" />
+ <di:waypoint x="1155" y="560" />
+ <di:waypoint x="1220" y="560" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="1158" y="432" width="18" height="14" />
+ <dc:Bounds x="1158" y="542" width="18" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0heuc95_di" bpmnElement="Flow_0heuc95">
- <di:waypoint x="580" y="450" />
- <di:waypoint x="630" y="450" />
+ <di:waypoint x="580" y="560" />
+ <di:waypoint x="630" y="560" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1i0s8nu_di" bpmnElement="Flow_1i0s8nu">
- <di:waypoint x="1060" y="450" />
- <di:waypoint x="1105" y="450" />
+ <di:waypoint x="1060" y="560" />
+ <di:waypoint x="1105" y="560" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_16pqv7g_di" bpmnElement="Flow_16pqv7g">
- <di:waypoint x="890" y="450" />
- <di:waypoint x="960" y="450" />
+ <di:waypoint x="890" y="560" />
+ <di:waypoint x="960" y="560" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1w3h345_di" bpmnElement="Flow_1w3h345">
- <di:waypoint x="730" y="450" />
- <di:waypoint x="790" y="450" />
+ <di:waypoint x="730" y="560" />
+ <di:waypoint x="790" y="560" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0mtkhmv_di" bpmnElement="Flow_0mtkhmv">
- <di:waypoint x="2110" y="230" />
- <di:waypoint x="2152" y="230" />
+ <di:waypoint x="2110" y="340" />
+ <di:waypoint x="2180" y="340" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1sroz8o_di" bpmnElement="Flow_1sroz8o">
- <di:waypoint x="1800" y="230" />
- <di:waypoint x="1870" y="230" />
+ <di:waypoint x="1800" y="340" />
+ <di:waypoint x="1870" y="340" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1myzbqw_di" bpmnElement="Flow_1myzbqw">
- <di:waypoint x="1500" y="230" />
- <di:waypoint x="1565" y="230" />
+ <di:waypoint x="1500" y="340" />
+ <di:waypoint x="1565" y="340" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0o7xomf_di" bpmnElement="Flow_0o7xomf">
- <di:waypoint x="1340" y="230" />
- <di:waypoint x="1400" y="230" />
+ <di:waypoint x="1340" y="340" />
+ <di:waypoint x="1400" y="340" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0rizzsm_di" bpmnElement="Flow_0rizzsm">
- <di:waypoint x="1970" y="230" />
- <di:waypoint x="2010" y="230" />
+ <di:waypoint x="1970" y="340" />
+ <di:waypoint x="2010" y="340" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1v4zg98_di" bpmnElement="Flow_1v4zg98">
- <di:waypoint x="1590" y="255" />
- <di:waypoint x="1590" y="302" />
+ <di:waypoint x="1590" y="365" />
+ <di:waypoint x="1590" y="412" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1yrel0t_di" bpmnElement="Flow_1yrel0t">
- <di:waypoint x="1615" y="230" />
- <di:waypoint x="1700" y="230" />
+ <di:waypoint x="1615" y="340" />
+ <di:waypoint x="1700" y="340" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="1649" y="212" width="18" height="14" />
+ <dc:Bounds x="1649" y="322" width="18" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1gxv9id_di" bpmnElement="Flow_1gxv9id">
- <di:waypoint x="1180" y="230" />
- <di:waypoint x="1240" y="230" />
+ <di:waypoint x="1180" y="340" />
+ <di:waypoint x="1240" y="340" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_147tw7h_di" bpmnElement="Flow_147tw7h">
- <di:waypoint x="435" y="690" />
- <di:waypoint x="480" y="690" />
+ <di:waypoint x="435" y="800" />
+ <di:waypoint x="480" y="800" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0wvzz2r_di" bpmnElement="Flow_0wvzz2r">
- <di:waypoint x="198" y="690" />
- <di:waypoint x="240" y="690" />
+ <di:waypoint x="198" y="800" />
+ <di:waypoint x="240" y="800" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_00clpwn_di" bpmnElement="Flow_00clpwn">
- <di:waypoint x="410" y="715" />
- <di:waypoint x="410" y="800" />
- <di:waypoint x="482" y="800" />
+ <di:waypoint x="410" y="825" />
+ <di:waypoint x="410" y="910" />
+ <di:waypoint x="482" y="910" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0q02qno_di" bpmnElement="Flow_0q02qno">
- <di:waypoint x="340" y="690" />
- <di:waypoint x="385" y="690" />
+ <di:waypoint x="340" y="800" />
+ <di:waypoint x="385" y="800" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_10b15um_di" bpmnElement="Flow_10b15um">
- <di:waypoint x="410" y="475" />
- <di:waypoint x="410" y="560" />
- <di:waypoint x="482" y="560" />
+ <di:waypoint x="410" y="585" />
+ <di:waypoint x="410" y="670" />
+ <di:waypoint x="482" y="670" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0zjaac9_di" bpmnElement="Flow_0zjaac9">
- <di:waypoint x="435" y="450" />
- <di:waypoint x="480" y="450" />
+ <di:waypoint x="435" y="560" />
+ <di:waypoint x="480" y="560" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="449" y="432" width="18" height="14" />
+ <dc:Bounds x="449" y="542" width="18" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1q7frye_di" bpmnElement="Flow_1q7frye">
- <di:waypoint x="198" y="450" />
- <di:waypoint x="240" y="450" />
+ <di:waypoint x="198" y="560" />
+ <di:waypoint x="240" y="560" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1yd57bl_di" bpmnElement="Flow_1yd57bl">
- <di:waypoint x="340" y="450" />
- <di:waypoint x="385" y="450" />
+ <di:waypoint x="340" y="560" />
+ <di:waypoint x="385" y="560" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0g9k299_di" bpmnElement="Flow_0g9k299">
- <di:waypoint x="690" y="205" />
- <di:waypoint x="690" y="100" />
- <di:waypoint x="752" y="100" />
+ <di:waypoint x="690" y="315" />
+ <di:waypoint x="690" y="210" />
+ <di:waypoint x="752" y="210" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="698" y="150" width="15" height="14" />
+ <dc:Bounds x="698" y="260" width="15" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_00vt4gf_di" bpmnElement="Flow_00vt4gf">
- <di:waypoint x="715" y="230" />
- <di:waypoint x="800" y="230" />
+ <di:waypoint x="715" y="340" />
+ <di:waypoint x="800" y="340" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="749" y="212" width="18" height="14" />
+ <dc:Bounds x="749" y="322" width="18" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0uxerfg_di" bpmnElement="Flow_0uxerfg">
- <di:waypoint x="620" y="230" />
- <di:waypoint x="665" y="230" />
+ <di:waypoint x="620" y="340" />
+ <di:waypoint x="665" y="340" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_10f44ab_di" bpmnElement="Flow_10f44ab">
- <di:waypoint x="480" y="230" />
- <di:waypoint x="520" y="230" />
+ <di:waypoint x="480" y="340" />
+ <di:waypoint x="520" y="340" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1cnfilb_di" bpmnElement="Flow_1cnfilb">
- <di:waypoint x="198" y="940" />
- <di:waypoint x="250" y="940" />
+ <di:waypoint x="198" y="1050" />
+ <di:waypoint x="250" y="1050" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0523saw_di" bpmnElement="Flow_0523saw">
- <di:waypoint x="990" y="205" />
- <di:waypoint x="990" y="130" />
- <di:waypoint x="1062" y="130" />
+ <di:waypoint x="990" y="315" />
+ <di:waypoint x="990" y="190" />
+ <di:waypoint x="1065" y="190" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_00fb28f_di" bpmnElement="Flow_00fb28f">
- <di:waypoint x="1015" y="230" />
- <di:waypoint x="1080" y="230" />
+ <di:waypoint x="1015" y="340" />
+ <di:waypoint x="1080" y="340" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_00yl2jk_di" bpmnElement="Flow_00yl2jk">
- <di:waypoint x="900" y="230" />
- <di:waypoint x="965" y="230" />
+ <di:waypoint x="900" y="340" />
+ <di:waypoint x="965" y="340" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_14z4acw_di" bpmnElement="Flow_14z4acw">
- <di:waypoint x="340" y="230" />
- <di:waypoint x="380" y="230" />
+ <di:waypoint x="340" y="340" />
+ <di:waypoint x="380" y="340" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0rh43xe_di" bpmnElement="Flow_0rh43xe">
- <di:waypoint x="198" y="230" />
- <di:waypoint x="240" y="230" />
+ <di:waypoint x="198" y="340" />
+ <di:waypoint x="240" y="340" />
</bpmndi:BPMNEdge>
- <bpmndi:BPMNShape id="Event_055gbp2_di" bpmnElement="Event_055gbp2">
- <dc:Bounds x="162" y="212" width="36" height="36" />
+ <bpmndi:BPMNEdge id="Flow_1vyktdh_di" bpmnElement="Flow_1vyktdh">
+ <di:waypoint x="1115" y="190" />
+ <di:waypoint x="1222" y="190" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="168" y="255" width="24" height="14" />
+ <dc:Bounds x="1160" y="172" width="18" height="14" />
</bpmndi:BPMNLabel>
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Gateway_12oq1sa_di" bpmnElement="Gateway_12oq1sa" isMarkerVisible="true">
- <dc:Bounds x="965" y="205" width="50" height="50" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_1buy9ji_di" bpmnElement="Flow_1buy9ji">
+ <di:waypoint x="1090" y="165" />
+ <di:waypoint x="1090" y="100" />
+ <di:waypoint x="1222" y="100" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="945" y="265" width="90" height="27" />
+ <dc:Bounds x="1098" y="130" width="15" height="14" />
</bpmndi:BPMNLabel>
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Event_1v7p5kl_di" bpmnElement="Event_1n5z71a">
- <dc:Bounds x="2152" y="212" width="36" height="36" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_0umba3p_di" bpmnElement="Flow_0umba3p">
+ <di:waypoint x="2230" y="340" />
+ <di:waypoint x="2297" y="340" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="2255" y="322" width="18" height="14" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_1xrbneh_di" bpmnElement="Flow_1xrbneh">
+ <di:waypoint x="2205" y="365" />
+ <di:waypoint x="2205" y="412" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="2137" y="255" width="71" height="27" />
+ <dc:Bounds x="2213" y="386" width="15" height="14" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="Event_055gbp2_di" bpmnElement="Event_055gbp2">
+ <dc:Bounds x="162" y="322" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="168" y="365" width="25" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Event_01vyapf_di" bpmnElement="Event_0kkeo9m">
- <dc:Bounds x="162" y="432" width="36" height="36" />
+ <bpmndi:BPMNShape id="Gateway_12oq1sa_di" bpmnElement="Gateway_12oq1sa" isMarkerVisible="true">
+ <dc:Bounds x="965" y="315" width="50" height="50" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="157" y="475" width="48" height="27" />
+ <dc:Bounds x="945" y="375" width="90" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Event_1u3s42m_di" bpmnElement="Event_09ey569">
- <dc:Bounds x="1742" y="672" width="36" height="36" />
+ <bpmndi:BPMNShape id="Event_01vyapf_di" bpmnElement="Event_0kkeo9m">
+ <dc:Bounds x="162" y="542" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="1728" y="715" width="71" height="27" />
+ <dc:Bounds x="158" y="585" width="47" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Event_01fudey_di" bpmnElement="Event_0rzo7gj">
- <dc:Bounds x="1062" y="112" width="36" height="36" />
+ <bpmndi:BPMNShape id="Event_1u3s42m_di" bpmnElement="Event_09ey569">
+ <dc:Bounds x="1742" y="782" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="1042" y="155" width="78" height="27" />
+ <dc:Bounds x="1728" y="825" width="71" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0gx3ps0_di" bpmnElement="Event_0gx3ps0">
- <dc:Bounds x="712" y="922" width="36" height="36" />
+ <dc:Bounds x="712" y="1032" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="720" y="965" width="20" height="14" />
+ <dc:Bounds x="720" y="1075" width="20" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_0xcg677_di" bpmnElement="Gateway_0xcg677" isMarkerVisible="true">
- <dc:Bounds x="665" y="205" width="50" height="50" />
+ <dc:Bounds x="665" y="315" width="50" height="50" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="647" y="262" width="86" height="27" />
+ <dc:Bounds x="647" y="372" width="87" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_0nr3me0_di" bpmnElement="Gateway_0nr3me0" isMarkerVisible="true">
- <dc:Bounds x="385" y="425" width="50" height="50" />
+ <dc:Bounds x="385" y="535" width="50" height="50" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="370" y="395" width="84" height="27" />
+ <dc:Bounds x="370" y="505" width="84" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0j998yp_di" bpmnElement="Event_0j998yp">
- <dc:Bounds x="162" y="672" width="36" height="36" />
+ <dc:Bounds x="162" y="782" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="150" y="715" width="64" height="27" />
+ <dc:Bounds x="151" y="825" width="63" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_05lm9ln_di" bpmnElement="Event_1nqpg0o">
- <dc:Bounds x="482" y="542" width="36" height="36" />
+ <dc:Bounds x="482" y="652" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="457" y="585" width="86" height="27" />
+ <dc:Bounds x="457" y="695" width="86" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0wv22e3_di" bpmnElement="Event_0ki3ncn">
- <dc:Bounds x="1732" y="432" width="36" height="36" />
+ <dc:Bounds x="1732" y="542" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="1706" y="475" width="88" height="27" />
+ <dc:Bounds x="1706" y="585" width="88" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_1djcl9x_di" bpmnElement="Event_1djcl9x">
- <dc:Bounds x="482" y="782" width="36" height="36" />
+ <dc:Bounds x="482" y="892" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="469" y="825" width="62" height="27" />
+ <dc:Bounds x="469" y="935" width="62" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_0cemhjv_di" bpmnElement="Gateway_0cemhjv" isMarkerVisible="true">
- <dc:Bounds x="385" y="665" width="50" height="50" />
+ <dc:Bounds x="385" y="775" width="50" height="50" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="368" y="635" width="84" height="27" />
+ <dc:Bounds x="368" y="745" width="84" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_00e6sqq_di" bpmnElement="Activity_089t9fj">
- <dc:Bounds x="380" y="190" width="100" height="80" />
+ <dc:Bounds x="380" y="300" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_147vycg_di" bpmnElement="Activity_1fv6ljk">
- <dc:Bounds x="240" y="190" width="100" height="80" />
+ <dc:Bounds x="240" y="300" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1465ih9_di" bpmnElement="Activity_19myg2v">
- <dc:Bounds x="520" y="190" width="100" height="80" />
+ <dc:Bounds x="520" y="300" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_16l1ykw_di" bpmnElement="Activity_1atych2">
- <dc:Bounds x="800" y="190" width="100" height="80" />
+ <dc:Bounds x="800" y="300" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_10uophi_di" bpmnElement="Activity_0iluozh">
- <dc:Bounds x="1080" y="190" width="100" height="80" />
+ <dc:Bounds x="1080" y="300" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0u2aqld_di" bpmnElement="Activity_0u2aqld">
- <dc:Bounds x="1240" y="190" width="100" height="80" />
+ <dc:Bounds x="1240" y="300" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1hr68mt_di" bpmnElement="Activity_1hr68mt">
- <dc:Bounds x="1400" y="190" width="100" height="80" />
+ <dc:Bounds x="1400" y="300" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_1xwu5f0_di" bpmnElement="Gateway_1xwu5f0" isMarkerVisible="true">
- <dc:Bounds x="1565" y="205" width="50" height="50" />
+ <dc:Bounds x="1565" y="315" width="50" height="50" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="1564" y="175" width="54" height="27" />
+ <dc:Bounds x="1564" y="285" width="54" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0yfi3mj_di" bpmnElement="Event_0yfi3mj">
- <dc:Bounds x="1572" y="302" width="36" height="36" />
+ <dc:Bounds x="1572" y="412" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="1607" y="286" width="85" height="27" />
+ <dc:Bounds x="1608" y="396" width="84" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_03sbng2_di" bpmnElement="Activity_03sbng2">
- <dc:Bounds x="1870" y="190" width="100" height="80" />
+ <dc:Bounds x="1870" y="300" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_08yj5gq_di" bpmnElement="Activity_08yj5gq">
- <dc:Bounds x="2010" y="190" width="100" height="80" />
+ <dc:Bounds x="2010" y="300" width="100" height="80" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Activity_1aesimf_di" bpmnElement="Activity_1aesimf" isExpanded="true">
- <dc:Bounds x="210" y="1130" width="770" height="170" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="Flow_1bqk5yt_di" bpmnElement="Flow_1bqk5yt">
- <di:waypoint x="630" y="1234" />
- <di:waypoint x="710" y="1234" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="Flow_0tw7xsp_di" bpmnElement="Flow_0tw7xsp">
- <di:waypoint x="278" y="1234" />
- <di:waypoint x="380" y="1234" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="Flow_075rb1i_di" bpmnElement="Flow_075rb1i">
- <di:waypoint x="480" y="1234" />
- <di:waypoint x="530" y="1234" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="Flow_0y0r82m_di" bpmnElement="Flow_0y0r82m">
- <di:waypoint x="810" y="1234" />
- <di:waypoint x="892" y="1234" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNShape id="Event_156ogc4_di" bpmnElement="Event_156ogc4">
- <dc:Bounds x="242" y="1216" width="36" height="36" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Event_1n2qjvx_di" bpmnElement="Event_1n2qjvx">
- <dc:Bounds x="892" y="1216" width="36" height="36" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Activity_1eedm9e_di" bpmnElement="Activity_1eedm9e">
- <dc:Bounds x="710" y="1194" width="100" height="80" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Activity_1szd5yp_di" bpmnElement="Activity_1szd5yp">
- <dc:Bounds x="530" y="1194" width="100" height="80" />
+ <bpmndi:BPMNShape id="Event_01fudey_di" bpmnElement="Event_0rzo7gj">
+ <dc:Bounds x="1222" y="172" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="1202" y="215" width="78" height="27" />
+ </bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Activity_0lpw3j7_di" bpmnElement="Activity_0lpw3j7">
- <dc:Bounds x="380" y="1194" width="100" height="80" />
+ <bpmndi:BPMNShape id="Gateway_0ci374j_di" bpmnElement="Gateway_0ci374j" isMarkerVisible="true">
+ <dc:Bounds x="1065" y="165" width="50" height="50" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="1063" y="222" width="56" height="27" />
+ </bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Activity_0hioign_di" bpmnElement="Activity_0hioign" isExpanded="true">
- <dc:Bounds x="320" y="1420" width="440" height="140" />
+ <bpmndi:BPMNShape id="Event_04dd3u6_di" bpmnElement="Event_04dd3u6">
+ <dc:Bounds x="1222" y="82" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="1206" y="125" width="71" height="27" />
+ </bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="Flow_0cvs8zk_di" bpmnElement="Flow_0cvs8zk">
- <di:waypoint x="408" y="1481" />
- <di:waypoint x="473" y="1481" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="Flow_01jdnrt_di" bpmnElement="Flow_01jdnrt">
- <di:waypoint x="573" y="1481" />
- <di:waypoint x="672" y="1481" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNShape id="Activity_1f3cipf_di" bpmnElement="Activity_1f3cipf">
- <dc:Bounds x="473" y="1441" width="100" height="80" />
+ <bpmndi:BPMNShape id="Event_1v7p5kl_di" bpmnElement="Event_1n5z71a">
+ <dc:Bounds x="2297" y="322" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="2282" y="365" width="71" height="27" />
+ </bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Event_18qzt1n_di" bpmnElement="Event_18qzt1n">
- <dc:Bounds x="672" y="1463" width="36" height="36" />
+ <bpmndi:BPMNShape id="Gateway_0n3zhxo_di" bpmnElement="Gateway_0n3zhxo" isMarkerVisible="true">
+ <dc:Bounds x="2180" y="315" width="50" height="50" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="2169" y="285" width="73" height="14" />
+ </bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Event_0lvvn7i_di" bpmnElement="Event_0lvvn7i">
- <dc:Bounds x="372" y="1463" width="36" height="36" />
+ <bpmndi:BPMNShape id="Event_1akyxj9_di" bpmnElement="Event_1akyxj9">
+ <dc:Bounds x="2187" y="412" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="2171" y="455" width="71" height="27" />
+ </bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1u5yry2_di" bpmnElement="Activity_09e5oh6">
- <dc:Bounds x="1700" y="190" width="100" height="80" />
+ <dc:Bounds x="1700" y="300" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1ng1vyl_di" bpmnElement="Activity_1fzg56b">
- <dc:Bounds x="240" y="410" width="100" height="80" />
+ <dc:Bounds x="240" y="520" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1vabe3f_di" bpmnElement="Activity_0gtw2p7">
- <dc:Bounds x="480" y="410" width="100" height="80" />
+ <dc:Bounds x="480" y="520" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_07cr1m2_di" bpmnElement="Activity_07cr1m2">
- <dc:Bounds x="630" y="410" width="100" height="80" />
+ <dc:Bounds x="630" y="520" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_03hbxfi_di" bpmnElement="Activity_03hbxfi">
- <dc:Bounds x="790" y="410" width="100" height="80" />
+ <dc:Bounds x="790" y="520" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0br2i5b_di" bpmnElement="Activity_0br2i5b">
- <dc:Bounds x="960" y="410" width="100" height="80" />
+ <dc:Bounds x="960" y="520" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_1ot96tc_di" bpmnElement="Gateway_1ot96tc" isMarkerVisible="true">
- <dc:Bounds x="1105" y="425" width="50" height="50" />
+ <dc:Bounds x="1105" y="535" width="50" height="50" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="1088" y="395" width="84" height="14" />
+ <dc:Bounds x="1088" y="505" width="84" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0h9nwqd_di" bpmnElement="Event_0uco28x">
- <dc:Bounds x="1112" y="522" width="36" height="36" />
+ <dc:Bounds x="1112" y="632" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="1088" y="565" width="85" height="27" />
+ <dc:Bounds x="1089" y="675" width="84" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1t28p4r_di" bpmnElement="Activity_1t28p4r">
- <dc:Bounds x="1580" y="410" width="100" height="80" />
+ <dc:Bounds x="1580" y="520" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_03o12kw_di" bpmnElement="Activity_1o0a55b">
- <dc:Bounds x="1410" y="410" width="100" height="80" />
+ <dc:Bounds x="1410" y="520" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1hkx6j5_di" bpmnElement="Activity_068a0cy">
- <dc:Bounds x="240" y="650" width="100" height="80" />
+ <dc:Bounds x="240" y="760" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_18xtkyi_di" bpmnElement="Event_1azfo77">
- <dc:Bounds x="162" y="922" width="36" height="36" />
+ <dc:Bounds x="162" y="1032" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="156" y="965" width="48" height="27" />
+ <dc:Bounds x="157" y="1075" width="47" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1wvru6z_di" bpmnElement="Activity_02vl5kt">
- <dc:Bounds x="480" y="650" width="100" height="80" />
+ <dc:Bounds x="480" y="760" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1kszh5k_di" bpmnElement="Activity_1kszh5k">
- <dc:Bounds x="640" y="650" width="100" height="80" />
+ <dc:Bounds x="640" y="760" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_09jt4b0_di" bpmnElement="Activity_09jt4b0">
- <dc:Bounds x="800" y="650" width="100" height="80" />
+ <dc:Bounds x="800" y="760" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1su25xm_di" bpmnElement="Activity_1su25xm">
- <dc:Bounds x="970" y="650" width="100" height="80" />
+ <dc:Bounds x="970" y="760" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_114io6q_di" bpmnElement="Gateway_114io6q" isMarkerVisible="true">
- <dc:Bounds x="1115" y="665" width="50" height="50" />
+ <dc:Bounds x="1115" y="775" width="50" height="50" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="1098" y="641" width="84" height="14" />
+ <dc:Bounds x="1098" y="751" width="84" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_08ecfyj_di" bpmnElement="Event_08ecfyj">
- <dc:Bounds x="1122" y="762" width="36" height="36" />
+ <dc:Bounds x="1122" y="872" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="1098" y="805" width="85" height="27" />
+ <dc:Bounds x="1099" y="915" width="84" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0ftm8b6_di" bpmnElement="Activity_0ftm8b6">
- <dc:Bounds x="1410" y="650" width="100" height="80" />
+ <dc:Bounds x="1410" y="760" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1xnstqr_di" bpmnElement="Activity_1xnstqr">
- <dc:Bounds x="1580" y="650" width="100" height="80" />
+ <dc:Bounds x="1580" y="760" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_15f8u0i_di" bpmnElement="Activity_1xirwg3">
- <dc:Bounds x="1220" y="410" width="100" height="80" />
+ <dc:Bounds x="1220" y="520" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0xmezab_di" bpmnElement="Activity_0xmezab">
- <dc:Bounds x="1230" y="650" width="100" height="80" />
+ <dc:Bounds x="1230" y="760" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_17abdcy_di" bpmnElement="Activity_1j0xkqc">
- <dc:Bounds x="250" y="900" width="100" height="80" />
+ <dc:Bounds x="250" y="1010" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0huy5ph_di" bpmnElement="Activity_0huy5ph">
- <dc:Bounds x="390" y="900" width="100" height="80" />
+ <dc:Bounds x="390" y="1010" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1tbardv_di" bpmnElement="Activity_1tbardv">
- <dc:Bounds x="560" y="900" width="100" height="80" />
+ <dc:Bounds x="560" y="1010" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0kp0sqc_di" bpmnElement="Event_0ocuo1o">
- <dc:Bounds x="752" y="82" width="36" height="36" />
+ <dc:Bounds x="752" y="192" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="735" y="125" width="71" height="27" />
+ <dc:Bounds x="735" y="235" width="71" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_1aesimf_di" bpmnElement="Activity_1aesimf" isExpanded="true">
+ <dc:Bounds x="210" y="1240" width="770" height="170" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="Flow_1bqk5yt_di" bpmnElement="Flow_1bqk5yt">
+ <di:waypoint x="630" y="1344" />
+ <di:waypoint x="710" y="1344" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_0tw7xsp_di" bpmnElement="Flow_0tw7xsp">
+ <di:waypoint x="278" y="1344" />
+ <di:waypoint x="380" y="1344" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_075rb1i_di" bpmnElement="Flow_075rb1i">
+ <di:waypoint x="480" y="1344" />
+ <di:waypoint x="530" y="1344" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_0y0r82m_di" bpmnElement="Flow_0y0r82m">
+ <di:waypoint x="810" y="1344" />
+ <di:waypoint x="892" y="1344" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="Event_156ogc4_di" bpmnElement="Event_156ogc4">
+ <dc:Bounds x="242" y="1326" width="36" height="36" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Event_1n2qjvx_di" bpmnElement="Event_1n2qjvx">
+ <dc:Bounds x="892" y="1326" width="36" height="36" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_1eedm9e_di" bpmnElement="Activity_1eedm9e">
+ <dc:Bounds x="710" y="1304" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_1szd5yp_di" bpmnElement="Activity_1szd5yp">
+ <dc:Bounds x="530" y="1304" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_0lpw3j7_di" bpmnElement="Activity_0lpw3j7">
+ <dc:Bounds x="380" y="1304" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_0hioign_di" bpmnElement="Activity_0hioign" isExpanded="true">
+ <dc:Bounds x="320" y="1530" width="440" height="140" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="Flow_0cvs8zk_di" bpmnElement="Flow_0cvs8zk">
+ <di:waypoint x="408" y="1591" />
+ <di:waypoint x="473" y="1591" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_01jdnrt_di" bpmnElement="Flow_01jdnrt">
+ <di:waypoint x="573" y="1591" />
+ <di:waypoint x="672" y="1591" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="Activity_1f3cipf_di" bpmnElement="Activity_1f3cipf">
+ <dc:Bounds x="473" y="1551" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Event_18qzt1n_di" bpmnElement="Event_18qzt1n">
+ <dc:Bounds x="672" y="1573" width="36" height="36" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Event_0lvvn7i_di" bpmnElement="Event_0lvvn7i">
+ <dc:Bounds x="372" y="1573" width="36" height="36" />
+ </bpmndi:BPMNShape>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn:definitions>
diff --git a/bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoDeallocateAccessNSSI.bpmn b/bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoDeallocateAccessNSSI.bpmn
index 4debe1fe21..ae81364f90 100644
--- a/bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoDeallocateAccessNSSI.bpmn
+++ b/bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoDeallocateAccessNSSI.bpmn
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" id="Definitions_17amn3o" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.1.1">
+<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" id="Definitions_17amn3o" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.10.0">
<bpmn:process id="DoDeallocateAccessNSSI" name="DoDeallocateAccessNSSI" isExecutable="true">
<bpmn:startEvent id="Event_0seox25" name="Start">
<bpmn:outgoing>Flow_14g5p2j</bpmn:outgoing>
@@ -37,7 +37,7 @@ deallocator.preProcessRequest(execution)</bpmn:script>
<bpmn:sequenceFlow id="Flow_16hk034" name="No" sourceRef="Gateway_1ypyzn3" targetRef="Activity_0umktii" />
<bpmn:sequenceFlow id="Flow_1she7i5" sourceRef="Activity_0szls0v" targetRef="Activity_0tbndh6" />
<bpmn:intermediateThrowEvent id="Event_0vthuwp" name="Goto Terminate TN FH/MH NSSI">
- <bpmn:incoming>Flow_1lfvp5s</bpmn:incoming>
+ <bpmn:incoming>Flow_01ssl7f</bpmn:incoming>
<bpmn:linkEventDefinition id="LinkEventDefinition_0dpa9td" name="TerminateTnNSSI" />
</bpmn:intermediateThrowEvent>
<bpmn:intermediateCatchEvent id="Event_0opsm2p" name="TN FH/MH Termination">
@@ -45,9 +45,8 @@ deallocator.preProcessRequest(execution)</bpmn:script>
<bpmn:linkEventDefinition id="LinkEventDefinition_1gactc9" name="TerminateTnNSSI" />
</bpmn:intermediateCatchEvent>
<bpmn:sequenceFlow id="Flow_0cj22bs" sourceRef="Event_0opsm2p" targetRef="Activity_0uul9fb" />
- <bpmn:sequenceFlow id="Flow_0412ven" sourceRef="Activity_0qho4pw" targetRef="Activity_03zg1pp" />
- <bpmn:sequenceFlow id="Flow_0tlog6y" sourceRef="Activity_03zg1pp" targetRef="Activity_1ri9jrn" />
- <bpmn:sequenceFlow id="Flow_1lfvp5s" sourceRef="Activity_1v1ra2k" targetRef="Event_0vthuwp" />
+ <bpmn:sequenceFlow id="Flow_0412ven" sourceRef="Activity_0qho4pw" targetRef="Gateway_11aiy0x" />
+ <bpmn:sequenceFlow id="Flow_1lfvp5s" sourceRef="Activity_1v1ra2k" targetRef="Gateway_0qsknv5" />
<bpmn:scriptTask id="Activity_1i58rru" name="Fetch Related NSSI and Slice profile details" scriptFormat="groovy">
<bpmn:incoming>Flow_1hm17vz</bpmn:incoming>
<bpmn:outgoing>Flow_0kt6k2i</bpmn:outgoing>
@@ -84,7 +83,7 @@ def deallocator = new DoDeAllocateAccessNSSI()
deallocator.performOofAnNfNSSITerminationCall(execution)</bpmn:script>
</bpmn:scriptTask>
<bpmn:intermediateThrowEvent id="Event_18fpd51" name="Goto Terminate TN FH/MH NSSI">
- <bpmn:incoming>Flow_1x4e0k3</bpmn:incoming>
+ <bpmn:incoming>Flow_0b3qqvw</bpmn:incoming>
<bpmn:linkEventDefinition id="LinkEventDefinition_07j10pb" name="TerminateTnNSSI" />
</bpmn:intermediateThrowEvent>
<bpmn:scriptTask id="Activity_1v1ra2k" name="Delete RAN NF NSSI" scriptFormat="groovy">
@@ -117,7 +116,7 @@ deallocator.deallocateAnNfNssi(execution)</bpmn:script>
<bpmn:outgoing>Flow_1x4e0k3</bpmn:outgoing>
</bpmn:serviceTask>
<bpmn:sequenceFlow id="Flow_1bgguw0" sourceRef="Activity_17w3onz" targetRef="Activity_05frw6w" />
- <bpmn:sequenceFlow id="Flow_1x4e0k3" sourceRef="Activity_05frw6w" targetRef="Event_18fpd51" />
+ <bpmn:sequenceFlow id="Flow_1x4e0k3" sourceRef="Activity_05frw6w" targetRef="Gateway_0jjou51" />
<bpmn:scriptTask id="Activity_17w3onz" name="Update Job status" scriptFormat="groovy">
<bpmn:incoming>Flow_0vcn5tl</bpmn:incoming>
<bpmn:outgoing>Flow_1bgguw0</bpmn:outgoing>
@@ -623,14 +622,14 @@ def deallocator = new DoDeAllocateAccessNSSI()
deallocator.deleteRanNfSliceProfileInAAI(execution)</bpmn:script>
</bpmn:scriptTask>
<bpmn:scriptTask id="Activity_03zg1pp" name="Delete TN Slice profiles" scriptFormat="groovy">
- <bpmn:incoming>Flow_0412ven</bpmn:incoming>
- <bpmn:outgoing>Flow_0tlog6y</bpmn:outgoing>
+ <bpmn:incoming>Flow_12wqmdr</bpmn:incoming>
+ <bpmn:outgoing>Flow_15ok12u</bpmn:outgoing>
<bpmn:script>import org.onap.so.bpmn.infrastructure.scripts.*
def deallocator = new DoDeAllocateAccessNSSI()
deallocator.deleteTNSliceProfileInAAI(execution)</bpmn:script>
</bpmn:scriptTask>
<bpmn:scriptTask id="Activity_1ri9jrn" name="Delete RAN NSSI" scriptFormat="groovy">
- <bpmn:incoming>Flow_0tlog6y</bpmn:incoming>
+ <bpmn:incoming>Flow_183aijy</bpmn:incoming>
<bpmn:outgoing>Flow_1nh3x4j</bpmn:outgoing>
<bpmn:script>import org.onap.so.bpmn.infrastructure.scripts.*
def deallocator = new DoDeAllocateAccessNSSI()
@@ -639,7 +638,7 @@ deallocator.deleteANNSSI(execution)</bpmn:script>
<bpmn:callActivity id="Activity_0umktii" name="Modify RAN NF NSSI" calledElement="DoModifyRanNfNssi">
<bpmn:extensionElements>
<camunda:in source="anNfNssiId" target="serviceInstanceID" />
- <camunda:in source="anNfSliceProfileId" target="sliceProfileId" />
+ <camunda:in source="anNfSliceProfileId" target="SliceProfileId" />
<camunda:in source="msoRequestId" target="msoRequestId" />
<camunda:in source="globalSubscriberId" target="globalSubscriberId" />
<camunda:in source="subscriptionServiceType" target="subscriptionServiceType" />
@@ -665,13 +664,78 @@ deallocator.deleteANNSSI(execution)</bpmn:script>
<bpmn:errorEventDefinition id="ErrorEventDefinition_031y5kl" errorRef="Error_0i5gql0" />
</bpmn:endEvent>
<bpmn:sequenceFlow id="Flow_0x71rer" sourceRef="Activity_1wu2d9y" targetRef="Activity_0drkoau" />
+ <bpmn:exclusiveGateway id="Gateway_0jjou51" name="Is TN present?" default="Flow_0b3qqvw">
+ <bpmn:incoming>Flow_1x4e0k3</bpmn:incoming>
+ <bpmn:outgoing>Flow_0b3qqvw</bpmn:outgoing>
+ <bpmn:outgoing>Flow_1yewqtt</bpmn:outgoing>
+ </bpmn:exclusiveGateway>
+ <bpmn:sequenceFlow id="Flow_0b3qqvw" name="Yes" sourceRef="Gateway_0jjou51" targetRef="Event_18fpd51" />
+ <bpmn:intermediateThrowEvent id="Event_05q1nj2" name="Goto AAI Updates">
+ <bpmn:incoming>Flow_1yewqtt</bpmn:incoming>
+ <bpmn:linkEventDefinition id="LinkEventDefinition_1tasi5v" name="UpdateAAI" />
+ </bpmn:intermediateThrowEvent>
+ <bpmn:sequenceFlow id="Flow_1yewqtt" name="No" sourceRef="Gateway_0jjou51" targetRef="Event_05q1nj2">
+ <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{(execution.getVariable("IsRANNfAlonePresent" ) == true)}</bpmn:conditionExpression>
+ </bpmn:sequenceFlow>
+ <bpmn:exclusiveGateway id="Gateway_0qsknv5" name="Is TN present?" default="Flow_01ssl7f">
+ <bpmn:incoming>Flow_1lfvp5s</bpmn:incoming>
+ <bpmn:outgoing>Flow_01ssl7f</bpmn:outgoing>
+ <bpmn:outgoing>Flow_1scubfn</bpmn:outgoing>
+ </bpmn:exclusiveGateway>
+ <bpmn:sequenceFlow id="Flow_01ssl7f" name="Yes" sourceRef="Gateway_0qsknv5" targetRef="Event_0vthuwp" />
+ <bpmn:intermediateThrowEvent id="Event_0y39bzp" name="Goto AAI Updates">
+ <bpmn:incoming>Flow_1scubfn</bpmn:incoming>
+ <bpmn:linkEventDefinition id="LinkEventDefinition_01g0uqc" name="UpdateAAI" />
+ </bpmn:intermediateThrowEvent>
+ <bpmn:sequenceFlow id="Flow_1scubfn" name="No" sourceRef="Gateway_0qsknv5" targetRef="Event_0y39bzp">
+ <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{(execution.getVariable("IsRANNfAlonePresent" ) == true)}</bpmn:conditionExpression>
+ </bpmn:sequenceFlow>
+ <bpmn:exclusiveGateway id="Gateway_11aiy0x" name="Is TN present?" default="Flow_12wqmdr">
+ <bpmn:incoming>Flow_0412ven</bpmn:incoming>
+ <bpmn:outgoing>Flow_12wqmdr</bpmn:outgoing>
+ <bpmn:outgoing>Flow_0r8ldai</bpmn:outgoing>
+ </bpmn:exclusiveGateway>
+ <bpmn:sequenceFlow id="Flow_12wqmdr" name="Yes" sourceRef="Gateway_11aiy0x" targetRef="Activity_03zg1pp" />
+ <bpmn:sequenceFlow id="Flow_0r8ldai" name="No" sourceRef="Gateway_11aiy0x" targetRef="Gateway_187nc60">
+ <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{(execution.getVariable("IsRANNfAlonePresent" ) == true)}</bpmn:conditionExpression>
+ </bpmn:sequenceFlow>
+ <bpmn:sequenceFlow id="Flow_183aijy" sourceRef="Gateway_187nc60" targetRef="Activity_1ri9jrn" />
+ <bpmn:parallelGateway id="Gateway_187nc60">
+ <bpmn:incoming>Flow_0r8ldai</bpmn:incoming>
+ <bpmn:incoming>Flow_15ok12u</bpmn:incoming>
+ <bpmn:outgoing>Flow_183aijy</bpmn:outgoing>
+ </bpmn:parallelGateway>
+ <bpmn:sequenceFlow id="Flow_15ok12u" sourceRef="Activity_03zg1pp" targetRef="Gateway_187nc60" />
</bpmn:process>
<bpmn:error id="Error_0i5gql0" name="DeallocateWorkflowError" errorCode="2500" />
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="DoDeallocateAccessNSSI">
+ <bpmndi:BPMNEdge id="Flow_0x71rer_di" bpmnElement="Flow_0x71rer">
+ <di:waypoint x="1275" y="650" />
+ <di:waypoint x="1320" y="650" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_0k55zuy_di" bpmnElement="Flow_0k55zuy">
+ <di:waypoint x="1650" y="215" />
+ <di:waypoint x="1650" y="100" />
+ <di:waypoint x="1822" y="100" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="1658" y="155" width="15" height="14" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_0vcn5tl_di" bpmnElement="Flow_0vcn5tl">
+ <di:waypoint x="1675" y="240" />
+ <di:waypoint x="1820" y="240" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="1739" y="222" width="18" height="14" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_18y4ab2_di" bpmnElement="Flow_18y4ab2">
+ <di:waypoint x="1500" y="240" />
+ <di:waypoint x="1625" y="240" />
+ </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0omhxaj_di" bpmnElement="Flow_0omhxaj">
<di:waypoint x="238" y="1110" />
- <di:waypoint x="360" y="1110" />
+ <di:waypoint x="290" y="1110" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_03fig6p_di" bpmnElement="Flow_03fig6p">
<di:waypoint x="2085" y="880" />
@@ -767,10 +831,6 @@ deallocator.deleteANNSSI(execution)</bpmn:script>
<di:waypoint x="1420" y="650" />
<di:waypoint x="1460" y="650" />
</bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="Flow_0x71rer_di" bpmnElement="Flow_0x71rer">
- <di:waypoint x="1275" y="650" />
- <di:waypoint x="1320" y="650" />
- </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1s5fdmz_di" bpmnElement="Flow_1s5fdmz">
<di:waypoint x="1130" y="650" />
<di:waypoint x="1175" y="650" />
@@ -810,7 +870,7 @@ deallocator.deleteANNSSI(execution)</bpmn:script>
<di:waypoint x="1207" y="1110" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1nh3x4j_di" bpmnElement="Flow_1nh3x4j">
- <di:waypoint x="810" y="1110" />
+ <di:waypoint x="840" y="1110" />
<di:waypoint x="880" y="1110" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_15bkzm7_di" bpmnElement="Flow_15bkzm7">
@@ -844,7 +904,7 @@ deallocator.deleteANNSSI(execution)</bpmn:script>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1x4e0k3_di" bpmnElement="Flow_1x4e0k3">
<di:waypoint x="2130" y="240" />
- <di:waypoint x="2232" y="240" />
+ <di:waypoint x="2235" y="240" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1bgguw0_di" bpmnElement="Flow_1bgguw0">
<di:waypoint x="1920" y="240" />
@@ -852,15 +912,11 @@ deallocator.deleteANNSSI(execution)</bpmn:script>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1lfvp5s_di" bpmnElement="Flow_1lfvp5s">
<di:waypoint x="2380" y="410" />
- <di:waypoint x="2422" y="410" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="Flow_0tlog6y_di" bpmnElement="Flow_0tlog6y">
- <di:waypoint x="630" y="1110" />
- <di:waypoint x="710" y="1110" />
+ <di:waypoint x="2435" y="410" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0412ven_di" bpmnElement="Flow_0412ven">
- <di:waypoint x="460" y="1110" />
- <di:waypoint x="530" y="1110" />
+ <di:waypoint x="390" y="1110" />
+ <di:waypoint x="435" y="1110" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0cj22bs_di" bpmnElement="Flow_0cj22bs">
<di:waypoint x="238" y="880" />
@@ -920,25 +976,58 @@ deallocator.deleteANNSSI(execution)</bpmn:script>
<di:waypoint x="238" y="410" />
<di:waypoint x="290" y="410" />
</bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="Flow_18y4ab2_di" bpmnElement="Flow_18y4ab2">
- <di:waypoint x="1500" y="240" />
- <di:waypoint x="1625" y="240" />
+ <bpmndi:BPMNEdge id="Flow_0b3qqvw_di" bpmnElement="Flow_0b3qqvw">
+ <di:waypoint x="2285" y="240" />
+ <di:waypoint x="2362" y="240" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="2315" y="222" width="18" height="14" />
+ </bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="Flow_0vcn5tl_di" bpmnElement="Flow_0vcn5tl">
- <di:waypoint x="1675" y="240" />
- <di:waypoint x="1820" y="240" />
+ <bpmndi:BPMNEdge id="Flow_1yewqtt_di" bpmnElement="Flow_1yewqtt">
+ <di:waypoint x="2260" y="265" />
+ <di:waypoint x="2260" y="282" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="1739" y="222" width="18" height="14" />
+ <dc:Bounds x="2268" y="271" width="15" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="Flow_0k55zuy_di" bpmnElement="Flow_0k55zuy">
- <di:waypoint x="1650" y="215" />
- <di:waypoint x="1650" y="100" />
- <di:waypoint x="1822" y="100" />
+ <bpmndi:BPMNEdge id="Flow_01ssl7f_di" bpmnElement="Flow_01ssl7f">
+ <di:waypoint x="2485" y="410" />
+ <di:waypoint x="2552" y="410" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="1658" y="155" width="15" height="14" />
+ <dc:Bounds x="2510" y="392" width="18" height="14" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_1scubfn_di" bpmnElement="Flow_1scubfn">
+ <di:waypoint x="2460" y="435" />
+ <di:waypoint x="2460" y="482" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="2468" y="456" width="15" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_12wqmdr_di" bpmnElement="Flow_12wqmdr">
+ <di:waypoint x="460" y="1135" />
+ <di:waypoint x="460" y="1260" />
+ <di:waypoint x="520" y="1260" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="466" y="1199" width="18" height="14" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_0r8ldai_di" bpmnElement="Flow_0r8ldai">
+ <di:waypoint x="485" y="1110" />
+ <di:waypoint x="655" y="1110" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="589" y="1092" width="15" height="14" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_183aijy_di" bpmnElement="Flow_183aijy">
+ <di:waypoint x="705" y="1110" />
+ <di:waypoint x="740" y="1110" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_15ok12u_di" bpmnElement="Flow_15ok12u">
+ <di:waypoint x="620" y="1260" />
+ <di:waypoint x="680" y="1260" />
+ <di:waypoint x="680" y="1135" />
+ </bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Event_0seox25_di" bpmnElement="Event_0seox25">
<dc:Bounds x="202" y="392" width="36" height="36" />
<bpmndi:BPMNLabel>
@@ -957,12 +1046,6 @@ deallocator.deleteANNSSI(execution)</bpmn:script>
<bpmndi:BPMNShape id="Gateway_1ypyzn3_di" bpmnElement="Gateway_1ypyzn3" isMarkerVisible="true">
<dc:Bounds x="1265" y="385" width="50" height="50" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Event_1dvx4n9_di" bpmnElement="Event_0vthuwp">
- <dc:Bounds x="2422" y="392" width="36" height="36" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="2399" y="438" width="82" height="27" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_1ekryu8_di" bpmnElement="Event_0opsm2p">
<dc:Bounds x="202" y="862" width="36" height="36" />
<bpmndi:BPMNLabel>
@@ -984,15 +1067,15 @@ deallocator.deleteANNSSI(execution)</bpmn:script>
<bpmndi:BPMNShape id="Activity_1h4jup8_di" bpmnElement="Activity_0gzrekf">
<dc:Bounds x="1100" y="370" width="100" height="80" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Event_18fpd51_di" bpmnElement="Event_18fpd51">
- <dc:Bounds x="2232" y="222" width="36" height="36" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="2209" y="268" width="82" height="27" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0m43umg_di" bpmnElement="Activity_1v1ra2k">
<dc:Bounds x="2280" y="370" width="100" height="80" />
</bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_05frw6w_di" bpmnElement="Activity_05frw6w">
+ <dc:Bounds x="2030" y="200" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_0njdei2_di" bpmnElement="Activity_17w3onz">
+ <dc:Bounds x="1820" y="200" width="100" height="80" />
+ </bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1i1fknn_di" bpmnElement="Activity_1irtrgt">
<dc:Bounds x="1970" y="370" width="100" height="80" />
</bpmndi:BPMNShape>
@@ -1029,21 +1112,94 @@ deallocator.deleteANNSSI(execution)</bpmn:script>
<bpmndi:BPMNShape id="Activity_1i9b3oi_di" bpmnElement="Activity_114fx71">
<dc:Bounds x="1330" y="840" width="100" height="80" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Activity_01s2lve_di" bpmnElement="Activity_0umktii">
- <dc:Bounds x="1400" y="200" width="100" height="80" />
+ <bpmndi:BPMNShape id="Event_18fpd51_di" bpmnElement="Event_18fpd51">
+ <dc:Bounds x="2362" y="222" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="2340" y="268" width="81" height="27" />
+ </bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Activity_05frw6w_di" bpmnElement="Activity_05frw6w">
- <dc:Bounds x="2030" y="200" width="100" height="80" />
+ <bpmndi:BPMNShape id="Event_1dvx4n9_di" bpmnElement="Event_0vthuwp">
+ <dc:Bounds x="2552" y="392" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="2530" y="438" width="81" height="27" />
+ </bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Activity_0njdei2_di" bpmnElement="Activity_17w3onz">
- <dc:Bounds x="1820" y="200" width="100" height="80" />
+ <bpmndi:BPMNShape id="Gateway_0jjou51_di" bpmnElement="Gateway_0jjou51" isMarkerVisible="true">
+ <dc:Bounds x="2235" y="215" width="50" height="50" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="2224" y="185" width="73" height="14" />
+ </bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Gateway_0g02vzi_di" bpmnElement="Gateway_0g02vzi" isMarkerVisible="true">
- <dc:Bounds x="1625" y="215" width="50" height="50" />
+ <bpmndi:BPMNShape id="Event_05q1nj2_di" bpmnElement="Event_05q1nj2">
+ <dc:Bounds x="2242" y="282" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="1619" y="272" width="63" height="27" />
+ <dc:Bounds x="2218" y="328" width="90" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Gateway_0qsknv5_di" bpmnElement="Gateway_0qsknv5" isMarkerVisible="true">
+ <dc:Bounds x="2435" y="385" width="50" height="50" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="2423" y="361" width="73" height="14" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Event_0y39bzp_di" bpmnElement="Event_0y39bzp">
+ <dc:Bounds x="2442" y="482" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="2418" y="528" width="90" height="14" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_0r4899a_di" bpmnElement="Activity_0qho4pw">
+ <dc:Bounds x="290" y="1070" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Gateway_11aiy0x_di" bpmnElement="Gateway_11aiy0x" isMarkerVisible="true">
+ <dc:Bounds x="435" y="1085" width="50" height="50" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="424" y="1055" width="73" height="14" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_0b0pl0x_di" bpmnElement="Activity_03zg1pp">
+ <dc:Bounds x="520" y="1220" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_0dreslj_di" bpmnElement="Activity_1ri9jrn">
+ <dc:Bounds x="740" y="1070" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Gateway_10923hr_di" bpmnElement="Gateway_187nc60">
+ <dc:Bounds x="655" y="1085" width="50" height="50" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_0qbd3cz_di" bpmnElement="Activity_0qbd3cz" isExpanded="true">
+ <dc:Bounds x="820" y="1310" width="770" height="170" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="Flow_0nsc2oc_di" bpmnElement="Flow_0nsc2oc">
+ <di:waypoint x="1240" y="1414" />
+ <di:waypoint x="1320" y="1414" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_1q1450g_di" bpmnElement="Flow_1q1450g">
+ <di:waypoint x="888" y="1414" />
+ <di:waypoint x="990" y="1414" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_0alqcat_di" bpmnElement="Flow_0alqcat">
+ <di:waypoint x="1090" y="1414" />
+ <di:waypoint x="1140" y="1414" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_035ivcv_di" bpmnElement="Flow_035ivcv">
+ <di:waypoint x="1420" y="1414" />
+ <di:waypoint x="1502" y="1414" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="Event_13wl9ag_di" bpmnElement="Event_13wl9ag">
+ <dc:Bounds x="852" y="1396" width="36" height="36" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Event_0ugnt78_di" bpmnElement="Event_0ugnt78">
+ <dc:Bounds x="1502" y="1396" width="36" height="36" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_1mzoss1_di" bpmnElement="Activity_1mzoss1">
+ <dc:Bounds x="1320" y="1374" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_055w5hr_di" bpmnElement="Activity_055w5hr">
+ <dc:Bounds x="1140" y="1374" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_1nr7xyr_di" bpmnElement="Activity_1nr7xyr">
+ <dc:Bounds x="990" y="1374" width="100" height="80" />
+ </bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0jtob0z_di" bpmnElement="Activity_0jtob0z">
<dc:Bounds x="1780" y="610" width="100" height="80" />
</bpmndi:BPMNShape>
@@ -1074,6 +1230,26 @@ deallocator.deleteANNSSI(execution)</bpmn:script>
<bpmndi:BPMNShape id="Activity_10vgzv9_di" bpmnElement="Activity_0lszayp">
<dc:Bounds x="1720" y="370" width="100" height="80" />
</bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_0c0vkj6_di" bpmnElement="Activity_0c0vkj6" isExpanded="true">
+ <dc:Bounds x="930" y="1600" width="440" height="140" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="Flow_0bkcs42_di" bpmnElement="Flow_0bkcs42">
+ <di:waypoint x="1018" y="1661" />
+ <di:waypoint x="1083" y="1661" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_1b5mtc4_di" bpmnElement="Flow_1b5mtc4">
+ <di:waypoint x="1183" y="1661" />
+ <di:waypoint x="1282" y="1661" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="Event_1bqq1on_di" bpmnElement="Event_1bqq1on">
+ <dc:Bounds x="982" y="1643" width="36" height="36" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Event_0qb738v_di" bpmnElement="Event_0qb738v">
+ <dc:Bounds x="1282" y="1643" width="36" height="36" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_0187ysa_di" bpmnElement="Activity_0187ysa">
+ <dc:Bounds x="1083" y="1621" width="100" height="80" />
+ </bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_115teb9_di" bpmnElement="Activity_115teb9">
<dc:Bounds x="1460" y="610" width="100" height="80" />
</bpmndi:BPMNShape>
@@ -1155,72 +1331,18 @@ deallocator.deleteANNSSI(execution)</bpmn:script>
<dc:Bounds x="189" y="1135" width="62" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Activity_0r4899a_di" bpmnElement="Activity_0qho4pw">
- <dc:Bounds x="360" y="1070" width="100" height="80" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Activity_0b0pl0x_di" bpmnElement="Activity_03zg1pp">
- <dc:Bounds x="530" y="1070" width="100" height="80" />
+ <bpmndi:BPMNShape id="Activity_01s2lve_di" bpmnElement="Activity_0umktii">
+ <dc:Bounds x="1400" y="200" width="100" height="80" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Activity_0dreslj_di" bpmnElement="Activity_1ri9jrn">
- <dc:Bounds x="710" y="1070" width="100" height="80" />
+ <bpmndi:BPMNShape id="Gateway_0g02vzi_di" bpmnElement="Gateway_0g02vzi" isMarkerVisible="true">
+ <dc:Bounds x="1625" y="215" width="50" height="50" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="1619" y="272" width="63" height="27" />
+ </bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_1m6hsxq_di" bpmnElement="Event_161u9s2">
<dc:Bounds x="1822" y="82" width="36" height="36" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Activity_0qbd3cz_di" bpmnElement="Activity_0qbd3cz" isExpanded="true">
- <dc:Bounds x="820" y="1310" width="770" height="170" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="Flow_0nsc2oc_di" bpmnElement="Flow_0nsc2oc">
- <di:waypoint x="1240" y="1414" />
- <di:waypoint x="1320" y="1414" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="Flow_1q1450g_di" bpmnElement="Flow_1q1450g">
- <di:waypoint x="888" y="1414" />
- <di:waypoint x="990" y="1414" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="Flow_0alqcat_di" bpmnElement="Flow_0alqcat">
- <di:waypoint x="1090" y="1414" />
- <di:waypoint x="1140" y="1414" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="Flow_035ivcv_di" bpmnElement="Flow_035ivcv">
- <di:waypoint x="1420" y="1414" />
- <di:waypoint x="1502" y="1414" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNShape id="Event_13wl9ag_di" bpmnElement="Event_13wl9ag">
- <dc:Bounds x="852" y="1396" width="36" height="36" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Event_0ugnt78_di" bpmnElement="Event_0ugnt78">
- <dc:Bounds x="1502" y="1396" width="36" height="36" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Activity_1mzoss1_di" bpmnElement="Activity_1mzoss1">
- <dc:Bounds x="1320" y="1374" width="100" height="80" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Activity_055w5hr_di" bpmnElement="Activity_055w5hr">
- <dc:Bounds x="1140" y="1374" width="100" height="80" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Activity_1nr7xyr_di" bpmnElement="Activity_1nr7xyr">
- <dc:Bounds x="990" y="1374" width="100" height="80" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Activity_0c0vkj6_di" bpmnElement="Activity_0c0vkj6" isExpanded="true">
- <dc:Bounds x="930" y="1600" width="440" height="140" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="Flow_0bkcs42_di" bpmnElement="Flow_0bkcs42">
- <di:waypoint x="1018" y="1661" />
- <di:waypoint x="1083" y="1661" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="Flow_1b5mtc4_di" bpmnElement="Flow_1b5mtc4">
- <di:waypoint x="1183" y="1661" />
- <di:waypoint x="1282" y="1661" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNShape id="Event_1bqq1on_di" bpmnElement="Event_1bqq1on">
- <dc:Bounds x="982" y="1643" width="36" height="36" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Event_0qb738v_di" bpmnElement="Event_0qb738v">
- <dc:Bounds x="1282" y="1643" width="36" height="36" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Activity_0187ysa_di" bpmnElement="Activity_0187ysa">
- <dc:Bounds x="1083" y="1621" width="100" height="80" />
- </bpmndi:BPMNShape>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn:definitions>
diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowAction.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowAction.java
index f36c5a2915..10cea171ce 100755
--- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowAction.java
+++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowAction.java
@@ -289,11 +289,12 @@ public class WorkflowAction {
List<Resource> resourceList = new ArrayList<>();
List<Pair<WorkflowType, String>> aaiResourceIds = new ArrayList<>();
- if (resourceType == WorkflowType.SERVICE || isVNFCreateOrDelete(resourceType, requestAction)) {
+ if (resourceType == WorkflowType.SERVICE || isVNFCreate(resourceType, requestAction)) {
resourceList = serviceEBBLoader.getResourceListForService(sIRequest, requestAction, execution,
serviceInstanceId, resourceId, aaiResourceIds);
- } else if (resourceType == WorkflowType.VNF && (REPLACEINSTANCE.equalsIgnoreCase(requestAction)
- || (RECREATE_INSTANCE.equalsIgnoreCase(requestAction)))) {
+ } else if (resourceType == WorkflowType.VNF
+ && (DELETE_INSTANCE.equalsIgnoreCase(requestAction) || REPLACEINSTANCE.equalsIgnoreCase(requestAction)
+ || (RECREATE_INSTANCE.equalsIgnoreCase(requestAction)))) {
vnfEBBLoader.traverseAAIVnf(execution, resourceList, workflowResourceIds.getServiceInstanceId(),
workflowResourceIds.getVnfId(), aaiResourceIds);
} else if (resourceType == WorkflowType.VNF && UPDATE_INSTANCE.equalsIgnoreCase(requestAction)) {
@@ -363,9 +364,8 @@ public class WorkflowAction {
return flowsToExecute;
}
- private boolean isVNFCreateOrDelete(WorkflowType resourceType, String requestAction) {
- return resourceType == WorkflowType.VNF
- && (CREATE_INSTANCE.equalsIgnoreCase(requestAction) || DELETE_INSTANCE.equalsIgnoreCase(requestAction));
+ private boolean isVNFCreate(WorkflowType resourceType, String requestAction) {
+ return resourceType == WorkflowType.VNF && CREATE_INSTANCE.equalsIgnoreCase(requestAction);
}
private void setExecutionVariables(DelegateExecution execution, List<ExecuteBuildingBlock> flowsToExecute,
diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ebb/loader/ServiceEBBLoader.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ebb/loader/ServiceEBBLoader.java
index c000e9475c..b5ad8d8c03 100644
--- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ebb/loader/ServiceEBBLoader.java
+++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ebb/loader/ServiceEBBLoader.java
@@ -25,6 +25,7 @@ package org.onap.so.bpmn.infrastructure.workflow.tasks.ebb.loader;
import com.fasterxml.jackson.core.JsonProcessingException;
import org.camunda.bpm.engine.delegate.DelegateExecution;
import org.javatuples.Pair;
+import org.onap.aai.domain.yang.GenericVnf;
import org.onap.aai.domain.yang.Relationship;
import org.onap.aai.domain.yang.ServiceInstance;
import org.onap.aai.domain.yang.VpnBinding;
@@ -248,7 +249,9 @@ public class ServiceEBBLoader {
}
for (org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf : serviceInstanceMSO.getVnfs()) {
aaiResourceIds.add(new Pair<>(WorkflowType.VNF, vnf.getVnfId()));
+ GenericVnf genericVnf = bbInputSetupUtils.getAAIGenericVnf(vnf.getVnfId());
Resource vnfResource = new Resource(WorkflowType.VNF, vnf.getVnfId(), false, serviceResource);
+ vnfResource.setVnfCustomizationId(genericVnf.getModelCustomizationId());
resourceList.add(vnfResource);
traverseVnfModules(resourceList, vnfResource, aaiResourceIds, vnf);
if (vnf.getVolumeGroups() != null) {
diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ebb/loader/VnfEBBLoader.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ebb/loader/VnfEBBLoader.java
index c1d1d7ad5a..b950eb41be 100644
--- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ebb/loader/VnfEBBLoader.java
+++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ebb/loader/VnfEBBLoader.java
@@ -40,6 +40,7 @@ import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
import org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule;
import org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup;
+import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoVfModule;
import org.onap.so.bpmn.servicedecomposition.tasks.BBInputSetup;
import org.onap.so.bpmn.servicedecomposition.tasks.BBInputSetupUtils;
import org.onap.so.client.exception.ExceptionBuilder;
@@ -165,6 +166,8 @@ public class VnfEBBLoader {
aaiResourceIds.add(new Pair<>(WorkflowType.VFMODULE, vfModule.getVfModuleId()));
Resource vfModuleResource =
new Resource(WorkflowType.VFMODULE, vfModule.getVfModuleId(), false, vnfResource);
+ Optional.ofNullable(vfModule.getModelInfoVfModule()).map(ModelInfoVfModule::getIsBaseBoolean)
+ .ifPresent(vfModuleResource::setBaseVfModule);
resourceList.add(vfModuleResource);
findConfigurationsInsideVfModule(execution, vnf.getVnfId(), vfModule.getVfModuleId(), resourceList,
vfModuleResource, aaiResourceIds);
diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionTest.java
index 021bac3a7a..52196aae49 100644
--- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionTest.java
+++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionTest.java
@@ -66,7 +66,9 @@ import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.mockito.InjectMocks;
import org.mockito.Mock;
+import org.mockito.Mockito;
import org.mockito.Spy;
+import org.onap.aai.domain.yang.GenericVnf;
import org.onap.aai.domain.yang.Relationship;
import org.onap.aai.domain.yang.RelationshipList;
import org.onap.aai.domain.yang.ServiceInstance;
@@ -409,6 +411,7 @@ public class WorkflowActionTest extends BaseTaskTest {
doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("si0");
doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
+ doReturn(Mockito.mock(GenericVnf.class)).when(bbSetupUtils).getAAIGenericVnf(any());
when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
workflowAction.selectExecutionList(execution);
@@ -931,6 +934,7 @@ public class WorkflowActionTest extends BaseTaskTest {
doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
+ doReturn(Mockito.mock(GenericVnf.class)).when(bbSetupUtils).getAAIGenericVnf(any());
when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
workflowAction.selectExecutionList(execution);
@@ -1011,6 +1015,7 @@ public class WorkflowActionTest extends BaseTaskTest {
doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
+ doReturn(Mockito.mock(GenericVnf.class)).when(bbSetupUtils).getAAIGenericVnf(any());
when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
workflowAction.selectExecutionList(execution);
diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ebb/loader/ServiceEBBLoaderTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ebb/loader/ServiceEBBLoaderTest.java
index 7a26422eb9..2725626c1a 100644
--- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ebb/loader/ServiceEBBLoaderTest.java
+++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ebb/loader/ServiceEBBLoaderTest.java
@@ -41,6 +41,7 @@ import org.onap.so.bpmn.infrastructure.workflow.tasks.Resource;
import org.onap.so.bpmn.infrastructure.workflow.tasks.VrfBondingServiceException;
import org.onap.so.bpmn.infrastructure.workflow.tasks.WorkflowType;
import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration;
+import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
import org.onap.so.bpmn.servicedecomposition.tasks.BBInputSetup;
import org.onap.so.bpmn.servicedecomposition.tasks.BBInputSetupUtils;
import org.onap.so.client.exception.ExceptionBuilder;
@@ -206,13 +207,16 @@ public class ServiceEBBLoaderTest extends BaseTaskTest {
serviceInstanceAAI.setServiceInstanceId(resourceId);
org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstance = setServiceInstance();
- setGenericVnf();
+ GenericVnf genericVnf = setGenericVnf();
setVfModule(true);
setVolumeGroup();
setL3Network();
setCollection();
setConfiguration();
+ org.onap.aai.domain.yang.GenericVnf genericVnfAai = new org.onap.aai.domain.yang.GenericVnf();
+ genericVnfAai.setModelCustomizationId(genericVnf.getModelInfoGenericVnf().getModelCustomizationUuid());
+
Configuration config = new Configuration();
config.setConfigurationId("testConfigurationId2");
serviceInstance.getConfigurations().add(config);
@@ -236,6 +240,7 @@ public class ServiceEBBLoaderTest extends BaseTaskTest {
aaiConfiguration2.setRelationshipList(relationshipList1);
try {
+ doReturn(genericVnfAai).when(mockBbInputSetupUtils).getAAIGenericVnf(genericVnf.getVnfId());
doReturn(serviceInstanceAAI).when(mockBbInputSetupUtils).getAAIServiceInstanceById(resourceId);
doReturn(serviceInstance).when(mockBbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
doReturn(Optional.of(aaiConfiguration1)).when(mockAaiConfigurationResources)
diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ebb/loader/VnfEBBLoaderTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ebb/loader/VnfEBBLoaderTest.java
index a9bfde9bab..78a9628243 100644
--- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ebb/loader/VnfEBBLoaderTest.java
+++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ebb/loader/VnfEBBLoaderTest.java
@@ -32,8 +32,11 @@ import org.camunda.bpm.extension.mockito.delegate.DelegateExecutionFake;
import org.javatuples.Pair;
import org.junit.Before;
import org.junit.Test;
+import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
import org.onap.so.bpmn.infrastructure.workflow.tasks.WorkflowType;
+import org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule;
+import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoVfModule;
import org.onap.so.bpmn.servicedecomposition.tasks.BBInputSetup;
import org.onap.so.bpmn.servicedecomposition.tasks.BBInputSetupUtils;
import org.onap.so.client.exception.ExceptionBuilder;
@@ -41,6 +44,7 @@ import org.onap.so.bpmn.infrastructure.workflow.tasks.Resource;
import java.util.ArrayList;
import java.util.List;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
@@ -82,4 +86,31 @@ public class VnfEBBLoaderTest {
cut.traverseAAIVnf(delegateExecution, resourceList, serviceId, vnfId, aaiResourceIds);
assertEquals(WorkflowType.SERVICE, resourceList.get(0).getResourceType());
}
+
+ @Test
+ public void traverseAAIVnf_should_add_vnfs_and_vfmodules() throws Exception {
+ List<Resource> resourceList = new ArrayList<>();
+ List<Pair<WorkflowType, String>> aaiResourceIds = new ArrayList<>();
+
+ GenericVnf genericVnf = mock(GenericVnf.class);
+ doReturn(vnfId).when(genericVnf).getVnfId();
+
+ VfModule vfModule = mock(VfModule.class);
+ ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
+ modelInfoVfModule.setIsBaseBoolean(true);
+ doReturn(modelInfoVfModule).when(vfModule).getModelInfoVfModule();
+
+ doReturn(serviceInstanceAAI).when(bbInputSetupUtils).getAAIServiceInstanceById(serviceId);
+ doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
+ doReturn(List.of(genericVnf)).when(serviceInstanceMSO).getVnfs();
+ doReturn(List.of(vfModule)).when(genericVnf).getVfModules();
+ cut = new VnfEBBLoader(bbInputSetupUtils, bbInputSetup, workflowActionUtils, exceptionBuilder);
+
+ cut.traverseAAIVnf(delegateExecution, resourceList, serviceId, vnfId, aaiResourceIds);
+
+ assertEquals(3, resourceList.size());
+ assertEquals(WorkflowType.VNF, resourceList.get(1).getResourceType());
+ assertEquals(WorkflowType.VFMODULE, resourceList.get(2).getResourceType());
+ assertTrue(resourceList.get(2).isBaseVfModule());
+ }
}
diff --git a/common/src/main/java/org/onap/so/beans/nsmf/ServiceInfo.java b/common/src/main/java/org/onap/so/beans/nsmf/ServiceInfo.java
index 5146685058..df137d0c01 100644
--- a/common/src/main/java/org/onap/so/beans/nsmf/ServiceInfo.java
+++ b/common/src/main/java/org/onap/so/beans/nsmf/ServiceInfo.java
@@ -56,4 +56,7 @@ public class ServiceInfo implements Serializable {
private String pLMNIdList;
private String actionType;
+
+ private String resourceSharingLevel;
+
}
diff --git a/docs/developer_info/E2E_Network_Slicing_Understanding.rst b/docs/developer_info/E2E_Network_Slicing_Understanding.rst
new file mode 100644
index 0000000000..169dd64a79
--- /dev/null
+++ b/docs/developer_info/E2E_Network_Slicing_Understanding.rst
@@ -0,0 +1,111 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2021 Wipro Ltd.
+
+E2E Network Slicing
+===================
+The objective of this use case is to realize **End-to-End 5G Network
+Slicing** using ONAP. An End-to-End Network Slice consists of RAN (Radio
+Access Network), Transport Network (TN) and Core Network (CN) slice
+sub-nets. This use case intends to demonstrate the modeling,
+orchestration (life cycle and resources) and assurance of a network
+slice which are implemented in alignment with relevant standards.
+
+Overall High level view for ONAP-based Slice Management
+=======================================================
+
+Architecture Choice
+-------------------
+
+3GPP(TS 28.801) defines three layer slice management functions which include:
+
+CSMF(Communication Service Management Function):
+
+- Responsible for translating the communication service related requirement to network slice related requirements.
+
+- Communicate with Network Slice Management Function (NSMF).
+
+NSMF(Network Slice Management Function):
+
+- Responsible for management and orchestration of NSI.
+
+- Derive network slice subnet related requirements from network slice related requirements.
+
+- Communicate with the Network Slice Subnet Management Function (NSSMF) and Communication Service Management Function.
+
+NSSMF(Network Slice Subnet Management Function):
+
+- Responsible for management and orchestration of NSSI.
+
+- Communicate with the NSMF.
+
+.. image:: ../images/e2e-network-slicing-architecture.png
+
+To realize the three layers of the slice management function, we need to decide whether to implement CSMF, NSMF or NSMF within ONAP, or use the external CSMF, NSMF or NSSMF. This implies that for ONAP-based network slice management, we have different choices from an architectural perspective:
+
+1. Implement CSMF, NSMF, NSSMF all within ONAP;
+
+2. Connect an external CSMF from the Northbound, Implement NSMF and NSSMF within ONAP;
+
+3. Connect an external CSMF from the Northbound, Implement NSMF within ONAP, Connect a 3rd party NSSMF from the Southbound;
+
+4. Implement CSMF, NSMF within ONAP, Connect a 3rd party NSSMF from then Southbound.
+
+5. Use external CSMF and NSMF, only implement NSSMF within ONAP.
+
+.. image:: ../images/architecture-choices-e2e-slicing.png
+
+Slice Management Functions - Realization in SO
+----------------------------------------------
+
+- CSMF and NSMF is realized within ONAP (enhancement in Frankfurt functionality), and the NB interfaces is standardized using ExtAPI.
+
+- All 3 NSSMFs shall be realized within ONAP (From Guilin).
+
+- ONAP acting as NSMF shall also interact with external RAN and Transport NSSMF using 3GPP APIs
+
+- CSMF reliazed within SO receives service requirements from EXT-API, which translates service requirements to slice profile(NST selection) and sends request to NSMF for slice allocation.
+
+- NSMF reliazed within SO receives request for slice allocation (slice profile, S-NSSAI, NST) and determines slice instantiation/modification (with OOF) to fulfil the slice allocation request.
+
+- NSSMF reliazed within SO receive information from NSMF & trigger RAN/Core/Transport NSSMF for orchestration actions.
+
+Network Slice Instance (NSI) Life Cycle View
+--------------------------------------------
+
+Design and pre-provision: Creation of necessary slice/slice sub-net templates. Creation, activation, deactivation and termination of NSI, including its constituent slice sub-nets (RAN, Core and Transport)
+
+3GPP Specification (3GPP TS 28.530) describes management aspects of a Network Slice Instance, which can be described by the four phases:
+
+Preparation: The preparation phase includes network slice design, network slice capacity planning, on-boarding and evaluation of the network functions, preparing the network environment and other necessary preparations required to be done before the creation of an NSI
+
+Commisioning: NSI provisioning in the commissioning phase includes creation of the NSI. During NSI creation all needed resources are allocated and configured to satisfy the network slice requirements. The creation of an NSI can include creation and/or modification of the NSI constituents
+
+Operation: The Operation phase includes the activation, supervision, performance reporting (e.g. for KPI monitoring), resource capacity planning, modification,and de-activation of an NSI.
+
+Decommissioning: Network slice instance provisioning in the decommissioning phase includes decommissioning of non-shared constituents if required and removing the NSI specific configuration from the shared constituents. After the decommissioning phase, the NSI is terminated and does not exist anymore. The ONAP-based NSI lifecycle management will finally provide the demonstration of all these phases.
+
+The ONAP-based NSI lifecycle management will finally provide the demonstration of all these phases.
+
+.. image:: ../images/lifecycle-of-network-slice-instance.png
+
+Support for Option1 &Option2 in E2E Network Slicing
+---------------------------------------------------
+
+ONAP E2E Network Slicing option 1 and 2 differs on the RAN and FH/BH relationship.
+
+- In option 1, RAN NSSMF will decide FH/MH requirements and send to TN side, so RAN NSST will nest FH/MH NSST, and slice profile requirements will contain not only RAN side requirements but also FH/MH.
+
+Template design for option 1: https://wiki.onap.org/display/DW/Template+Design+for+Option+1
+
+.. image:: ../images/slicing-option1.png
+
+- In option 2, FH and MH are independent requirments when doing E2E requirements decomposition. Detailed background of option 1 and 2, please see E2E Network Slicing Use Case in R7 Guilin.
+
+Template design for option 2: https://wiki.onap.org/display/DW/Template+Design+for+Option2
+
+.. image:: ../images/slicing-option2.png
+
+3 domain combination solution -Endpoint
+---------------------------------------
+In order to enable 3 subnet connectivity, making end-to-end forwarding and control plane interacting, in slicing services, we need slicing interworking identifier and information to tell how RAN and Core connect with TN. Slicing interworking identifier(in ONAP is vlan Id, allocated by NSMF) is used to isolate differerent service datas, and identify the unique slicing service across RAN, TN and Core, 1 S-NSSAI will need to be assigned with 1 slicing interworking identifier(vlan Id). The slicing interworking information is used as bridges to connect RAN/Core and TN,it should be RAN/Core side outgress and TN ingress, like port, ipAddress, next hops and etc.
diff --git a/docs/images/architecture-choices-e2e-slicing.png b/docs/images/architecture-choices-e2e-slicing.png
new file mode 100644
index 0000000000..b240215017
--- /dev/null
+++ b/docs/images/architecture-choices-e2e-slicing.png
Binary files differ
diff --git a/docs/images/e2e-network-slicing-architecture.png b/docs/images/e2e-network-slicing-architecture.png
new file mode 100644
index 0000000000..922419d0a8
--- /dev/null
+++ b/docs/images/e2e-network-slicing-architecture.png
Binary files differ
diff --git a/docs/images/lifecycle-of-network-slice-instance.png b/docs/images/lifecycle-of-network-slice-instance.png
new file mode 100644
index 0000000000..0959783b89
--- /dev/null
+++ b/docs/images/lifecycle-of-network-slice-instance.png
Binary files differ
diff --git a/docs/images/slicing-option1.png b/docs/images/slicing-option1.png
new file mode 100644
index 0000000000..e19a257828
--- /dev/null
+++ b/docs/images/slicing-option1.png
Binary files differ
diff --git a/docs/images/slicing-option2.png b/docs/images/slicing-option2.png
new file mode 100644
index 0000000000..945c7c5612
--- /dev/null
+++ b/docs/images/slicing-option2.png
Binary files differ
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/validators/VnfDeleteValidator.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/validators/VnfDeleteValidator.java
index 44bab7e087..3dc4e8e4ac 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/validators/VnfDeleteValidator.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/validators/VnfDeleteValidator.java
@@ -19,7 +19,8 @@ public class VnfDeleteValidator implements RequestValidator {
@Override
public boolean shouldRunFor(String requestUri, ServiceInstancesRequest request, Actions action) {
return Pattern.compile("[Vv][5-8]/serviceInstances/[^/]+/vnfs/[^/]+").matcher(requestUri).matches()
- && action.equals(Action.deleteInstance);
+ && action.equals(Action.deleteInstance)
+ && Boolean.TRUE.equals(request.getRequestDetails().getRequestParameters().getALaCarte());
}
@Override
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/infra/rest/validator/VnfDeleteValidatorTest.java b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/infra/rest/validator/VnfDeleteValidatorTest.java
index 6eb6fc95d6..9b1410439e 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/infra/rest/validator/VnfDeleteValidatorTest.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/infra/rest/validator/VnfDeleteValidatorTest.java
@@ -15,6 +15,8 @@ import org.mockito.junit.MockitoJUnitRunner;
import org.onap.so.apihandlerinfra.Action;
import org.onap.so.apihandlerinfra.infra.rest.AAIDataRetrieval;
import org.onap.so.apihandlerinfra.infra.rest.validators.VnfDeleteValidator;
+import org.onap.so.serviceinstancebeans.RequestDetails;
+import org.onap.so.serviceinstancebeans.RequestParameters;
import org.onap.so.serviceinstancebeans.ServiceInstancesRequest;
@@ -31,10 +33,24 @@ public class VnfDeleteValidatorTest {
private Map<String, String> instanceIdMap = new HashMap<>();
+ public ServiceInstancesRequest createServiceInstancesRequest(boolean alacarte) {
+ ServiceInstancesRequest sir = new ServiceInstancesRequest();
+ sir.setRequestDetails(new RequestDetails());
+ sir.getRequestDetails().setRequestParameters(new RequestParameters());
+ sir.getRequestDetails().getRequestParameters().setaLaCarte(alacarte);
+ return sir;
+ }
+
@Test
public void validateURIMatchTest() {
assertEquals(true, vnfValidator.shouldRunFor("v8/serviceInstances/uasdfasdf/vnfs/asdfasdf",
- new ServiceInstancesRequest(), Action.deleteInstance));
+ createServiceInstancesRequest(true), Action.deleteInstance));
+ }
+
+ @Test
+ public void validateURIMatchNonAlacarteTest() {
+ assertEquals(false, vnfValidator.shouldRunFor("v8/serviceInstances/uasdfasdf/vnfs/asdfasdf",
+ createServiceInstancesRequest(false), Action.deleteInstance));
}
@Test