summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/infrastructure/MSOInfrastructureApplication.java24
-rw-r--r--bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/AnNssmfutils.groovy101
-rw-r--r--bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/CreateSliceService.groovy4
-rw-r--r--bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoAllocateAccessNSSI.groovy231
-rw-r--r--bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoAllocateNSIandNSSI.groovy506
-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.groovy38
-rw-r--r--bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/TnNssmfUtils.groovy2
-rw-r--r--bpmn/so-bpmn-infrastructure-flows/src/main/resources/process/CreateSliceService.bpmn170
-rw-r--r--bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoAllocateAccessNSSI.bpmn478
-rw-r--r--bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoAllocateNSIandNSSI.bpmn586
-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/SliceProfileAdapter.java2
-rw-r--r--common/src/main/java/org/onap/so/beans/nsmf/SliceTaskParamsAdapter.java146
-rw-r--r--common/src/main/java/org/onap/so/beans/nsmf/oof/SubnetType.java2
-rw-r--r--docs/api/apis/onap3gppServiceInstances-api.rst302
-rw-r--r--docs/api/apis/serviceInstances-api.rst108
-rw-r--r--docs/release-notes.rst217
-rw-r--r--releases/1.9.2.yaml22
24 files changed, 2283 insertions, 719 deletions
diff --git a/bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/infrastructure/MSOInfrastructureApplication.java b/bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/infrastructure/MSOInfrastructureApplication.java
index 8d6e133a1c..24c9b0f85d 100644
--- a/bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/infrastructure/MSOInfrastructureApplication.java
+++ b/bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/infrastructure/MSOInfrastructureApplication.java
@@ -28,7 +28,10 @@ import javax.annotation.PostConstruct;
import org.camunda.bpm.application.PreUndeploy;
import org.camunda.bpm.application.ProcessApplicationInfo;
import org.camunda.bpm.engine.ProcessEngine;
+import org.camunda.bpm.engine.RepositoryService;
+import org.camunda.bpm.engine.repository.Deployment;
import org.camunda.bpm.engine.repository.DeploymentBuilder;
+import org.camunda.bpm.engine.repository.ProcessDefinition;
import org.onap.logging.filter.spring.MDCTaskDecorator;
import org.onap.so.bpmn.common.DefaultToShortClassNameBeanNameGenerator;
import org.onap.so.db.catalog.beans.Workflow;
@@ -76,6 +79,9 @@ public class MSOInfrastructureApplication {
@Value("${mso.async.queue-capacity}")
private int queueCapacity;
+ @Value("${mso.bpmn-history-ttl:14}")
+ private Integer bpmnHistoryTtl;
+
private static final String LOGS_DIR = "logs_dir";
private static final String BPMN_SUFFIX = ".bpmn";
private static final String SDC_SOURCE = "sdc";
@@ -102,8 +108,10 @@ public class MSOInfrastructureApplication {
@PostConstruct
public void postConstruct() {
try {
- DeploymentBuilder deploymentBuilder = processEngine.getRepositoryService().createDeployment();
+ RepositoryService repositoryService = processEngine.getRepositoryService();
+ DeploymentBuilder deploymentBuilder = repositoryService.createDeployment();
deployCustomWorkflows(deploymentBuilder);
+ setBpmnTTL(repositoryService, bpmnHistoryTtl);
} catch (Exception e) {
logger.warn("Unable to invoke deploymentBuilder ", e);
}
@@ -149,4 +157,18 @@ public class MSOInfrastructureApplication {
logger.warn("Unable to deploy custom workflows ", e);
}
}
+
+ private void setBpmnTTL(RepositoryService repositoryService, Integer ttl) {
+ List<Deployment> deployments = repositoryService.createDeploymentQuery().list();
+ for (Deployment deployment : deployments) {
+ List<ProcessDefinition> processDefinitions =
+ repositoryService.createProcessDefinitionQuery().deploymentId(deployment.getId()).list();
+ for (ProcessDefinition processDefinition : processDefinitions) {
+ if (!ttl.equals(processDefinition.getHistoryTimeToLive())) {
+ logger.info("Setting ttl {} for processdefinition {}", ttl, processDefinition.getName());
+ repositoryService.updateProcessDefinitionHistoryTimeToLive(processDefinition.getId(), ttl);
+ }
+ }
+ }
+ }
}
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 07a23481d7..f17bfc2938 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
@@ -153,6 +153,52 @@ public void createDomainWiseSliceProfiles(List<String> ranConstituentSliceProfil
public void createSliceProfilesInAai(DelegateExecution execution) {
+ String serviceCategory = execution.getVariable("serviceCategory")
+ if (execution.getVariable("IsRANNfAlonePresent")) {
+ ServiceInstance ANNF_sliceProfileInstance = new ServiceInstance();
+ String ANNF_sliceProfileInstanceId = UUID.randomUUID().toString()
+ String ANNF_sliceProfileId = UUID.randomUUID().toString()
+ execution.setVariable("ANNF_sliceProfileInstanceId", ANNF_sliceProfileInstanceId)
+ execution.setVariable("ANNF_sliceProfileId", ANNF_sliceProfileId)
+ SliceProfiles ANNF_SliceProfiles = new SliceProfiles()
+ SliceProfile ANNF_SliceProfile = createSliceProfile("AN_NF", execution)
+ ANNF_SliceProfiles.getSliceProfile().add(ANNF_SliceProfile)
+ logger.debug("sliceProfiles : 1. " + ANNF_SliceProfiles.toString())
+ //ANNF slice profile instance creation
+ ANNF_sliceProfileInstance.setServiceInstanceId(ANNF_sliceProfileInstanceId)
+ String sliceInstanceName = "sliceprofile_" + ANNF_sliceProfileId
+ ANNF_sliceProfileInstance.setServiceInstanceName(sliceInstanceName)
+ String serviceType = execution.getVariable("sst") as String
+ ANNF_sliceProfileInstance.setServiceType(serviceType)
+ String serviceStatus = "deactivated"
+ ANNF_sliceProfileInstance.setOrchestrationStatus(serviceStatus)
+ String serviceInstanceLocationid = jsonUtil.getJsonValue(execution.getVariable("ranNfSliceProfile") as String, "pLMNIdList")
+ ANNF_sliceProfileInstance.setServiceInstanceLocationId(jsonUtil.StringArrayToList(serviceInstanceLocationid).get(0))
+ String serviceRole = "slice-profile-instance"
+ ANNF_sliceProfileInstance.setServiceRole(serviceRole)
+ ArrayList<String> snssaiList = jsonUtil.StringArrayToList(execution.getVariable("snssaiList") as String)
+ String snssai = snssaiList.get(0)
+ ANNF_sliceProfileInstance.setEnvironmentContext(snssai)
+ ANNF_sliceProfileInstance.setWorkloadContext("AN_NF")
+ ANNF_sliceProfileInstance.setSliceProfiles(ANNF_SliceProfiles)
+ String serviceFunctionAnnf = jsonUtil.getJsonValue(execution.getVariable("ranNfSliceProfile") as String, "resourceSharingLevel")
+ ANNF_sliceProfileInstance.setServiceFunction(serviceFunctionAnnf)
+ logger.debug("completed ANNF sliceprofileinstance build : " + ANNF_sliceProfileInstance.toString())
+ String msg = ""
+ try {
+
+ AAIResourcesClient client = new AAIResourcesClient()
+ AAIResourceUri sliceProfileUri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.business().customer(execution.getVariable("globalSubscriberId") as String).serviceSubscription(execution.getVariable("subscriptionServiceType") as String).serviceInstance(ANNF_sliceProfileInstanceId))
+ client.create(sliceProfileUri, ANNF_sliceProfileInstance)
+ } catch (BpmnError e) {
+ throw e
+ } catch (Exception ex) {
+ msg = "Exception in AnNssmfUtils.createSliceProfilesInAai " + ex.getMessage()
+ logger.info(msg)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
+ }
+ }
+else{
org.onap.aai.domain.yang.ServiceInstance ANNF_sliceProfileInstance = new ServiceInstance();
org.onap.aai.domain.yang.ServiceInstance TNFH_sliceProfileInstance = new ServiceInstance();
org.onap.aai.domain.yang.ServiceInstance TNMH_sliceProfileInstance = new ServiceInstance();
@@ -163,12 +209,12 @@ public void createSliceProfilesInAai(DelegateExecution execution) {
String TNFH_sliceProfileId = UUID.randomUUID().toString()
String TNMH_sliceProfileInstanceId = UUID.randomUUID().toString()
String TNMH_sliceProfileId = UUID.randomUUID().toString()
- execution.setVariable("ANNF_sliceProfileInstanceId",ANNF_sliceProfileInstanceId)
- execution.setVariable("ANNF_sliceProfileId",ANNF_sliceProfileId)
- execution.setVariable("TNFH_sliceProfileInstanceId",TNFH_sliceProfileInstanceId)
- execution.setVariable("TNFH_sliceProfileId",TNFH_sliceProfileId)
- execution.setVariable("TNMH_sliceProfileInstanceId",TNMH_sliceProfileInstanceId)
- execution.setVariable("TNMH_sliceProfileId",TNMH_sliceProfileId)
+ execution.setVariable("ANNF_sliceProfileInstanceId", ANNF_sliceProfileInstanceId)
+ execution.setVariable("ANNF_sliceProfileId", ANNF_sliceProfileId)
+ execution.setVariable("TNFH_sliceProfileInstanceId", TNFH_sliceProfileInstanceId)
+ execution.setVariable("TNFH_sliceProfileId", TNFH_sliceProfileId)
+ execution.setVariable("TNMH_sliceProfileInstanceId", TNMH_sliceProfileInstanceId)
+ execution.setVariable("TNMH_sliceProfileId", TNMH_sliceProfileId)
//slice profiles assignment
org.onap.aai.domain.yang.SliceProfiles ANNF_SliceProfiles = new SliceProfiles()
org.onap.aai.domain.yang.SliceProfiles TNFH_SliceProfiles = new SliceProfiles()
@@ -177,17 +223,17 @@ public void createSliceProfilesInAai(DelegateExecution execution) {
org.onap.aai.domain.yang.SliceProfile TNFH_SliceProfile = new SliceProfile()
org.onap.aai.domain.yang.SliceProfile TNMH_SliceProfile = new SliceProfile()
ANNF_SliceProfile = createSliceProfile("AN_NF", execution)
- TNFH_SliceProfile = createSliceProfile("TN_FH",execution)
- TNMH_SliceProfile = createSliceProfile("TN_MH",execution)
-
+ TNFH_SliceProfile = createSliceProfile("TN_FH", execution)
+ TNMH_SliceProfile = createSliceProfile("TN_MH", execution)
+
ANNF_SliceProfiles.getSliceProfile().add(ANNF_SliceProfile)
TNFH_SliceProfiles.getSliceProfile().add(TNFH_SliceProfile)
TNMH_SliceProfiles.getSliceProfile().add(TNMH_SliceProfile)
-
- logger.debug("sliceProfiles : 1. "+ANNF_SliceProfiles.toString()+"\n 2. "+TNFH_SliceProfiles.toString()+"\n 3. "+TNMH_SliceProfiles.toString())
+
+ logger.debug("sliceProfiles : 1. " + ANNF_SliceProfiles.toString() + "\n 2. " + TNFH_SliceProfiles.toString() + "\n 3. " + TNMH_SliceProfiles.toString())
//ANNF slice profile instance creation
ANNF_sliceProfileInstance.setServiceInstanceId(ANNF_sliceProfileInstanceId)
- String sliceInstanceName = "sliceprofile_"+ANNF_sliceProfileId
+ String sliceInstanceName = "sliceprofile_" + ANNF_sliceProfileId
ANNF_sliceProfileInstance.setServiceInstanceName(sliceInstanceName)
String serviceType = jsonUtil.getJsonValue(execution.getVariable("ranNfSliceProfile"), "sST")
ANNF_sliceProfileInstance.setServiceType(serviceType)
@@ -197,18 +243,18 @@ public void createSliceProfilesInAai(DelegateExecution execution) {
ANNF_sliceProfileInstance.setServiceInstanceLocationId(jsonUtil.StringArrayToList(serviceInstanceLocationid).get(0))
String serviceRole = "slice-profile-instance"
ANNF_sliceProfileInstance.setServiceRole(serviceRole)
- ArrayList<String> snssaiList = execution.getVariable("snssaiList")
+ ArrayList<String> snssaiList = jsonUtil.StringArrayToList(execution.getVariable("snssaiList") as String)
String snssai = snssaiList.get(0)
ANNF_sliceProfileInstance.setEnvironmentContext(snssai)
- ANNF_sliceProfileInstance.setWorkloadContext("AN_NF")
+ ANNF_sliceProfileInstance.setWorkloadContext("AN_NF")
ANNF_sliceProfileInstance.setSliceProfiles(ANNF_SliceProfiles)
String serviceFunctionAnnf = jsonUtil.getJsonValue(execution.getVariable("ranNfSliceProfile"), "resourceSharingLevel")
ANNF_sliceProfileInstance.setServiceFunction(serviceFunctionAnnf)
- logger.debug("completed ANNF sliceprofileinstance build : "+ ANNF_sliceProfileInstance.toString())
+ logger.debug("completed ANNF sliceprofileinstance build : "+ ANNF_sliceProfileInstance.toString())
//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)
@@ -221,11 +267,11 @@ public void createSliceProfilesInAai(DelegateExecution execution) {
TNFH_sliceProfileInstance.setSliceProfiles(TNFH_SliceProfiles)
String serviceFunctionTnFH = jsonUtil.getJsonValue(execution.getVariable("tnFhSliceProfile"), "resourceSharingLevel")
TNFH_sliceProfileInstance.setServiceFunction(serviceFunctionTnFH)
- logger.debug("completed TNFH sliceprofileinstance build : "+TNFH_sliceProfileInstance)
+ logger.debug("completed TNFH sliceprofileinstance build : "+TNFH_sliceProfileInstance)
//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)
@@ -238,7 +284,7 @@ public void createSliceProfilesInAai(DelegateExecution execution) {
TNMH_sliceProfileInstance.setSliceProfiles(TNMH_SliceProfiles)
String serviceFunctionTnMH = jsonUtil.getJsonValue(execution.getVariable("tnMhSliceProfile"), "resourceSharingLevel")
TNMH_sliceProfileInstance.setServiceFunction(serviceFunctionTnMH)
- logger.debug("completed TNMH sliceprofileinstance build : "+TNMH_sliceProfileInstance)
+ logger.debug("completed TNMH sliceprofileinstance build : "+TNMH_sliceProfileInstance)
String msg = ""
try {
@@ -260,6 +306,7 @@ public void createSliceProfilesInAai(DelegateExecution execution) {
logger.info(msg)
exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
}
+ }
}
private SliceProfile createSliceProfile(String domainType, DelegateExecution execution) {
@@ -439,10 +486,10 @@ private SliceProfile createSliceProfile(String domainType, DelegateExecution exe
String globalSubscriberId = execution.getVariable("globalSubscriberId")
String subscriptionServiceType = execution.getVariable("subscriptionServiceType")
- List<String> sNssaiList = execution.getVariable("snssaiList")
+ List<String> sNssaiList = execution.getVariable("snssaiList") as List<String>
DeAllocateNssi deallocateNssi = new DeAllocateNssi()
- deallocateNssi.setNsiId(execution.getVariable("nsiId"))
+ deallocateNssi.setNsiId(execution.getVariable("nsiId") as String)
deallocateNssi.setScriptName("TN1")
deallocateNssi.setSnssaiList(sNssaiList)
deallocateNssi.setTerminateNssiOption(0)
@@ -457,13 +504,13 @@ private SliceProfile createSliceProfile(String domainType, DelegateExecution exe
serviceInfo.addProperty("modifyAction", true)
if(domainType.equals("TN_FH")) {
- deallocateNssi.setNssiId(execution.getVariable("TNFH_NSSI"))
- deallocateNssi.setSliceProfileId(execution.getVariable("TNFH_sliceProfileInstanceId"))
- serviceInfo.addProperty("nssiId", execution.getVariable("TNFH_NSSI"))
+ deallocateNssi.setNssiId(execution.getVariable("TNFH_NSSI") as String)
+ deallocateNssi.setSliceProfileId(execution.getVariable("TNFH_sliceProfileInstanceId") as String)
+ serviceInfo.addProperty("nssiId", execution.getVariable("TNFH_NSSI") as String)
}else if(domainType.equals("TN_MH")) {
- deallocateNssi.setNssiId(execution.getVariable("TNMH_NSSI"))
- deallocateNssi.setSliceProfileId(execution.getVariable("TNMH_sliceProfileInstanceId"))
- serviceInfo.addProperty("nssiId", execution.getVariable("TNMH_NSSI"))
+ deallocateNssi.setNssiId(execution.getVariable("TNMH_NSSI") as String)
+ deallocateNssi.setSliceProfileId(execution.getVariable("TNMH_sliceProfileInstanceId") as String)
+ serviceInfo.addProperty("nssiId", execution.getVariable("TNMH_NSSI") as String)
}
JsonObject json = new JsonObject()
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/CreateSliceService.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/CreateSliceService.groovy
index ba87614937..e55ea13938 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/CreateSliceService.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/CreateSliceService.groovy
@@ -371,7 +371,9 @@ public class CreateSliceService extends AbstractServiceTaskProcessor {
String taskStatus = execution.getVariable("taskStatus")
SliceTaskParamsAdapter sliceTaskParams =
execution.getVariable("sliceTaskParams") as SliceTaskParamsAdapter
-
+ int nsstCount=execution.getVariable("nsstCount") as int
+ nsstCount=nsstCount+1
+ execution.setVariable("nsstCount", nsstCount)
execution.setVariable("CSSOT_status", taskStatus)
execution.setVariable("CSSOT_paramJson", objectMapper.writeValueAsString(sliceTaskParams))
execution.setVariable("CSSOT_requestMethod", requestMethod)
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 d5c132087c..ed1c2b24d5 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
@@ -190,6 +190,8 @@ class DoAllocateAccessNSSI extends AbstractServiceTaskProcessor {
//RAN NSST decomposition
String ranModelVersion = ranNsstServiceDecomposition.getModelInfo().getModelVersion()
String ranModelName = ranNsstServiceDecomposition.getModelInfo().getModelName()
+ String serviceCategory=ranNsstServiceDecomposition.getServiceCategory()
+ logger.debug("serviceCategory : "+serviceCategory)
List<ServiceProxy> serviceProxyList = ranNsstServiceDecomposition.getServiceProxy()
List<String> nsstInfoList = new ArrayList<>()
for(ServiceProxy serviceProxy : serviceProxyList)
@@ -198,10 +200,10 @@ class DoAllocateAccessNSSI extends AbstractServiceTaskProcessor {
String nsstModelInvariantUuid = serviceProxy.getModelInfo().getModelInvariantUuid()
String name = serviceProxy.getModelInfo().getModelName()
String nsstServiceModelInfo = """{
- "UUID":"${nsstModelUuid}",
- "invariantUUID":"${nsstModelInvariantUuid}",
- "name":"${name}"
- }"""
+ "UUID":"${nsstModelUuid}",
+ "invariantUUID":"${nsstModelInvariantUuid}",
+ "name":"${name}"
+ }"""
nsstInfoList.add(nsstServiceModelInfo)
}
int currentIndex=0
@@ -212,12 +214,19 @@ class DoAllocateAccessNSSI extends AbstractServiceTaskProcessor {
logger.info(msg)
exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
}
+ if(maxIndex == 1) {
+ logger.info("RAN NSST have only RAN NF NSST")
+ execution.setVariable("ranNfSliceProfile", execution.getVariable("sliceProfile"))
+ execution.setVariable("IsRANNfAlonePresent", true)
+ }
execution.setVariable("ranNsstInfoList", objectMapper.writeValueAsString(nsstInfoList))
- execution.setVariable("ranModelVersion", ranModelVersion)
- execution.setVariable("ranModelName", ranModelName)
execution.setVariable("currentIndex",currentIndex)
execution.setVariable("maxIndex",maxIndex)
+ execution.setVariable("ranModelVersion", ranModelVersion)
+ execution.setVariable("ranModelName", ranModelName)
logger.debug(Prefix+"processDecomposition maxIndex value - "+maxIndex)
+
+ execution.setVariable("serviceCategory",serviceCategory)
}
/*
@@ -428,28 +437,28 @@ class DoAllocateAccessNSSI extends AbstractServiceTaskProcessor {
ServiceDecomposition decomposedNsst = execution.getVariable("nsstServiceDecomposition")
logger.debug("decomposedNsst : "+decomposedNsst.toString())
- String nsstType = decomposedNsst.getServiceRole() //domainType
+ String nsstType = decomposedNsst.getServiceCategory() //domainType
String modelVersion = decomposedNsst.getModelInfo().getModelVersion()
String modelName = decomposedNsst.getModelInfo().getModelName()
String modelUuid = decomposedNsst.getModelInfo().getModelUuid()
String modelInvariantUuid = decomposedNsst.getModelInfo().getModelInvariantUuid()
switch(nsstType) {
- case "AN_NF":
+ case "AN NF NSST":
execution.setVariable("ANNF_modelInvariantUuid", modelInvariantUuid)
execution.setVariable("ANNF_modelUuid", modelUuid)
execution.setVariable("ANNF_modelVersion", modelVersion)
execution.setVariable("ANNF_modelName", modelName)
execution.setVariable("ANNF_ServiceDecomposition", decomposedNsst)
break
- case "TN_FH":
+ case "TN FH NSST":
execution.setVariable("TNFH_modelInvariantUuid", modelInvariantUuid)
execution.setVariable("TNFH_modelUuid", modelUuid)
execution.setVariable("TNFH_modelVersion", modelVersion)
execution.setVariable("TNFH_modelName", modelName)
execution.setVariable("TNFH_ServiceDecomposition", decomposedNsst)
break
- case "TN_MH":
+ case "TN MH NSST":
execution.setVariable("TNMH_modelInvariantUuid", modelInvariantUuid)
execution.setVariable("TNMH_modelUuid", modelUuid)
execution.setVariable("TNMH_modelVersion", modelVersion)
@@ -480,9 +489,12 @@ class DoAllocateAccessNSSI extends AbstractServiceTaskProcessor {
//build oof request body
boolean ranNfNssiPreferReuse = execution.getVariable("ranNfNssiPreferReuse");
String requestId = execution.getVariable("msoRequestId")
+ String serviceCategory = execution.getVariable("serviceCategory")
String messageType = "NSSISelectionResponse"
- List<String> ranConstituentSliceProfiles = jsonUtil.StringArrayToList(execution.getVariable("RanConstituentSliceProfiles"))
- anNssmfUtils.createDomainWiseSliceProfiles(ranConstituentSliceProfiles, execution)
+ if(execution.getVariable("maxIndex") > 1) {
+ List<String> ranConstituentSliceProfiles = jsonUtil.StringArrayToList(execution.getVariable("RanConstituentSliceProfiles") as String)
+ anNssmfUtils.createDomainWiseSliceProfiles(ranConstituentSliceProfiles, execution)
+ }
Map<String, Object> profileInfo = objectMapper.readValue(execution.getVariable("ranNfSliceProfile"), Map.class)
profileInfo.put("sST",execution.getVariable("sst"))
String modelUuid = execution.getVariable("ANNF_modelUuid")
@@ -617,48 +629,45 @@ class DoAllocateAccessNSSI extends AbstractServiceTaskProcessor {
//create RAN NSSI
org.onap.aai.domain.yang.ServiceInstance ANServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
org.onap.aai.domain.yang.ServiceInstance ANNFServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
+ String serviceCategory = execution.getVariable("serviceCategory")
+ String serviceStatus = "deactivated"
+ String serviceRole = "nssi"
//AN instance creation
- ANServiceInstance.setServiceInstanceId(execution.getVariable("RANServiceInstanceId"))
+ ANServiceInstance.setServiceInstanceId(execution.getVariable("RANServiceInstanceId") as String)
String sliceInstanceName = execution.getVariable("servicename")
ANServiceInstance.setServiceInstanceName(sliceInstanceName)
- String serviceType = jsonUtil.getJsonValue(execution.getVariable("sliceProfile"), "sST")
- ANServiceInstance.setServiceType(execution.getVariable("sst"))
- String serviceStatus = "deactivated"
+ ANServiceInstance.setServiceType(execution.getVariable("sst") as String)
ANServiceInstance.setOrchestrationStatus(serviceStatus)
- String serviceInstanceLocationid = jsonUtil.getJsonValue(execution.getVariable("sliceProfile"), "pLMNIdList")
+ String serviceInstanceLocationid = jsonUtil.getJsonValue(execution.getVariable("sliceProfile"), "pLMNIdList") as String
ANServiceInstance.setServiceInstanceLocationId(serviceInstanceLocationid)
- String serviceRole = "nssi"
ANServiceInstance.setServiceRole(serviceRole)
- List<String> snssaiList = execution.getVariable("snssaiList")
+ List<String> snssaiList = jsonUtil.StringArrayToList(execution.getVariable("snssaiList") as String)
String snssai = snssaiList.get(0)
- //ANServiceInstance.setEnvironmentContext(snssai)
- ANServiceInstance.setEnvironmentContext(execution.getVariable("networkType"))
- String modelInvariantUuid = execution.getVariable("modelInvariantUuid")
- String modelUuid = execution.getVariable("modelUuid")
- ANServiceInstance.setModelInvariantId(modelInvariantUuid)
- ANServiceInstance.setModelVersionId(modelUuid)
+ ANServiceInstance.setEnvironmentContext(snssai)
+ String modelInvariantUuid = execution.getVariable("modelInvariantUuid")
+ String modelUuid = execution.getVariable("modelUuid") as String
+ ANServiceInstance.setModelInvariantId(modelInvariantUuid)
+ ANServiceInstance.setModelVersionId(modelUuid)
ANServiceInstance.setWorkloadContext("AN")
- String serviceFunctionAn = jsonUtil.getJsonValue(execution.getVariable("sliceProfile"), "resourceSharingLevel")
+ String serviceFunctionAn = jsonUtil.getJsonValue(execution.getVariable("sliceProfile") as String, "resourceSharingLevel")
ANServiceInstance.setServiceFunction(serviceFunctionAn)
- logger.debug("completed AN service instance build "+ ANServiceInstance.toString())
+ logger.debug("completed AN service instance build " + ANServiceInstance.toString())
//create RAN NF NSSI
- ANNFServiceInstance.setServiceInstanceId(execution.getVariable("RANNFServiceInstanceId"))
- String ANNF_nssiInstanceId = UUID.randomUUID().toString()
- sliceInstanceName = "nssi_an_nf_"+ANNF_nssiInstanceId
+ ANNFServiceInstance.setServiceInstanceId(execution.getVariable("RANNFServiceInstanceId") as String)
+ sliceInstanceName = "nssi_"+execution.getVariable("ANNF_modelName")
ANNFServiceInstance.setServiceInstanceName(sliceInstanceName)
- ANNFServiceInstance.setServiceType(execution.getVariable("sst"))
+ ANNFServiceInstance.setServiceType(execution.getVariable("sst") as String)
ANNFServiceInstance.setOrchestrationStatus(serviceStatus)
- serviceInstanceLocationid = jsonUtil.getJsonValue(execution.getVariable("ranNfSliceProfile"), "pLMNIdList")
+ serviceInstanceLocationid = jsonUtil.getJsonValue(execution.getVariable("ranNfSliceProfile") as String, "pLMNIdList")
ANNFServiceInstance.setServiceInstanceLocationId(jsonUtil.StringArrayToList(serviceInstanceLocationid).get(0))
ANNFServiceInstance.setServiceRole(serviceRole)
- snssaiList = execution.getVariable("snssaiList")
+ snssaiList = jsonUtil.StringArrayToList(execution.getVariable("snssaiList") as String)
snssai = snssaiList.get(0)
- //ANNFServiceInstance.setEnvironmentContext(snssai)
- ANNFServiceInstance.setEnvironmentContext(execution.getVariable("networkType"))
+ ANNFServiceInstance.setEnvironmentContext(snssai)
ANNFServiceInstance.setModelInvariantId(execution.getVariable("ANNF_modelInvariantUuid"))
ANNFServiceInstance.setModelVersionId(execution.getVariable("ANNF_modelUuid"))
ANNFServiceInstance.setWorkloadContext("AN_NF")
- String serviceFunctionAnnf = jsonUtil.getJsonValue(execution.getVariable("ranNfSliceProfile"), "resourceSharingLevel")
+ String serviceFunctionAnnf = jsonUtil.getJsonValue(execution.getVariable("ranNfSliceProfile") as String, "resourceSharingLevel")
ANNFServiceInstance.setServiceFunction(serviceFunctionAnnf)
logger.debug("completed AN service instance build "+ ANNFServiceInstance.toString())
@@ -666,10 +675,10 @@ class DoAllocateAccessNSSI extends AbstractServiceTaskProcessor {
try {
AAIResourcesClient client = new AAIResourcesClient()
- AAIResourceUri nssiServiceUri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.business().customer(execution.getVariable("globalSubscriberId")).serviceSubscription(execution.getVariable("subscriptionServiceType")).serviceInstance(execution.getVariable("RANServiceInstanceId")))
+ AAIResourceUri nssiServiceUri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.business().customer(execution.getVariable("globalSubscriberId") as String).serviceSubscription(execution.getVariable("subscriptionServiceType") as String).serviceInstance(execution.getVariable("RANServiceInstanceId") as String))
client.create(nssiServiceUri, ANServiceInstance)
- AAIResourceUri nssiServiceUri1 = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.business().customer(execution.getVariable("globalSubscriberId")).serviceSubscription(execution.getVariable("subscriptionServiceType")).serviceInstance(execution.getVariable("RANNFServiceInstanceId")))
+ AAIResourceUri nssiServiceUri1 = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.business().customer(execution.getVariable("globalSubscriberId") as String).serviceSubscription(execution.getVariable("subscriptionServiceType") as String).serviceInstance(execution.getVariable("RANNFServiceInstanceId") as String))
client.create(nssiServiceUri1, ANNFServiceInstance)
} catch (BpmnError e) {
@@ -680,7 +689,9 @@ class DoAllocateAccessNSSI extends AbstractServiceTaskProcessor {
exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
}
//end point update
- createEndPointsInAai(execution)
+ if (!execution.getVariable("IsRANNfAlonePresent")) {
+ createEndPointsInAai(execution)
+ }
}
def prepareTnFhRequest = { DelegateExecution execution ->
logger.debug(Prefix+"prepareTnFhRequest method start")
@@ -804,64 +815,96 @@ class DoAllocateAccessNSSI extends AbstractServiceTaskProcessor {
def updateAairelationships = { DelegateExecution execution ->
logger.debug(Prefix + "updateAairelationships Start")
+ String serviceCategory = execution.getVariable("serviceCategory")
String msg = ""
- try {
- def ANNF_serviceInstanceId = execution.getVariable("RANNFServiceInstanceId")
- def TNFH_serviceInstanceId = execution.getVariable("TNFH_NSSI")
- def TNMH_serviceInstanceId = execution.getVariable("TNMH_NSSI")
- def AN_profileInstanceId = execution.getVariable("sliceProfileId")
- def AN_NSSI = execution.getVariable("RANServiceInstanceId")
- def ANNF_profileInstanceId = execution.getVariable("ANNF_sliceProfileInstanceId")
- def TNFH_profileInstanceId = execution.getVariable("TNFH_sliceProfileInstanceId")
- def TNMH_profileInstanceId = execution.getVariable("TNMH_sliceProfileInstanceId")
- String globalSubscriberId = execution.getVariable("globalSubscriberId")
- String subscriptionServiceType = execution.getVariable("subscriptionServiceType")
-
- Relationship ANNF_relationship = new Relationship()
- Relationship TNFH_relationship = new Relationship()
- Relationship TNMH_relationship = new Relationship()
-
- String ANNF_relatedLink = "aai/v21/business/customers/customer/${globalSubscriberId}/service-subscriptions/service-subscription/${subscriptionServiceType}/service-instances/service-instance/${ANNF_profileInstanceId}"
- String TNFH_relatedLink = "aai/v21/business/customers/customer/${globalSubscriberId}/service-subscriptions/service-subscription/${subscriptionServiceType}/service-instances/service-instance/${TNFH_profileInstanceId}"
- String TNMH_relatedLink = "aai/v21/business/customers/customer/${globalSubscriberId}/service-subscriptions/service-subscription/${subscriptionServiceType}/service-instances/service-instance/${TNMH_profileInstanceId}"
-
- String ANNF_NSSI_relatedLink = "aai/v21/business/customers/customer/${globalSubscriberId}/service-subscriptions/service-subscription/${subscriptionServiceType}/service-instances/service-instance/${ANNF_serviceInstanceId}"
- String TNFH_NSSI_relatedLink = "aai/v21/business/customers/customer/${globalSubscriberId}/service-subscriptions/service-subscription/${subscriptionServiceType}/service-instances/service-instance/${TNFH_serviceInstanceId}"
- String TNMH_NSSI_relatedLink = "aai/v21/business/customers/customer/${globalSubscriberId}/service-subscriptions/service-subscription/${subscriptionServiceType}/service-instances/service-instance/${TNMH_serviceInstanceId}"
-
- ANNF_relationship.setRelatedLink(ANNF_relatedLink)
- ANNF_relationship.setRelatedTo("service-instance")
- ANNF_relationship.setRelationshipLabel("org.onap.relationships.inventory.ComposedOf")
- TNFH_relationship.setRelatedLink(TNFH_relatedLink)
- TNFH_relationship.setRelatedTo("service-instance")
- TNFH_relationship.setRelationshipLabel("org.onap.relationships.inventory.ComposedOf")
- TNMH_relationship.setRelatedLink(TNMH_relatedLink)
- TNMH_relationship.setRelatedTo("service-instance")
- TNMH_relationship.setRelationshipLabel("org.onap.relationships.inventory.ComposedOf")
-
- // create SliceProfile and NSSI relationship in AAI
- anNssmfUtils.createRelationShipInAAI(execution, ANNF_relationship,ANNF_serviceInstanceId)
- anNssmfUtils.createRelationShipInAAI(execution, TNFH_relationship,TNFH_serviceInstanceId)
- anNssmfUtils.createRelationShipInAAI(execution, TNMH_relationship,TNMH_serviceInstanceId)
- anNssmfUtils.createRelationShipInAAI(execution, ANNF_relationship,AN_profileInstanceId)
- anNssmfUtils.createRelationShipInAAI(execution, TNFH_relationship,AN_profileInstanceId)
- anNssmfUtils.createRelationShipInAAI(execution, TNMH_relationship,AN_profileInstanceId)
-
- //create AN NSSI and ANNF,TNFH,TNMH relationship in AAI
- ANNF_relationship.setRelatedLink(ANNF_NSSI_relatedLink)
- TNFH_relationship.setRelatedLink(TNFH_NSSI_relatedLink)
- TNMH_relationship.setRelatedLink(TNMH_NSSI_relatedLink)
- anNssmfUtils.createRelationShipInAAI(execution, ANNF_relationship,AN_NSSI)
- anNssmfUtils.createRelationShipInAAI(execution, TNFH_relationship,AN_NSSI)
- anNssmfUtils.createRelationShipInAAI(execution, TNMH_relationship,AN_NSSI)
+ if (execution.getVariable("IsRANNfAlonePresent")) {
+ try {
+ def ANNF_serviceInstanceId = execution.getVariable("RANNFServiceInstanceId")
+ def AN_profileInstanceId = execution.getVariable("sliceProfileId")
+ def AN_NSSI = execution.getVariable("RANServiceInstanceId")
+ def ANNF_profileInstanceId = execution.getVariable("ANNF_sliceProfileInstanceId")
+ String globalSubscriberId = execution.getVariable("globalSubscriberId")
+ String subscriptionServiceType = execution.getVariable("subscriptionServiceType")
- } catch (BpmnError e) {
- throw e
- } catch (Exception ex) {
+ Relationship ANNF_relationship = new Relationship()
+ String ANNF_relatedLink = "aai/v21/business/customers/customer/${globalSubscriberId}/service-subscriptions/service-subscription/${subscriptionServiceType}/service-instances/service-instance/${ANNF_profileInstanceId}"
+ String ANNF_NSSI_relatedLink = "aai/v21/business/customers/customer/${globalSubscriberId}/service-subscriptions/service-subscription/${subscriptionServiceType}/service-instances/service-instance/${ANNF_serviceInstanceId}"
+ ANNF_relationship.setRelatedLink(ANNF_relatedLink)
+ ANNF_relationship.setRelatedTo("service-instance")
+ ANNF_relationship.setRelationshipLabel("org.onap.relationships.inventory.ComposedOf")
+ anNssmfUtils.createRelationShipInAAI(execution, ANNF_relationship, ANNF_serviceInstanceId)
+ anNssmfUtils.createRelationShipInAAI(execution, ANNF_relationship, AN_profileInstanceId)
+ ANNF_relationship.setRelatedLink(ANNF_NSSI_relatedLink)
+ anNssmfUtils.createRelationShipInAAI(execution, ANNF_relationship, AN_NSSI)
- msg = "Exception in DoCreateE2EServiceInstance.createCustomRelationship. " + ex.getMessage()
- logger.info(msg)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
+ } catch (BpmnError e) {
+ throw e
+ } catch (Exception ex) {
+
+ msg = "Exception in DoCreateE2EServiceInstance.createCustomRelationship. " + ex.getMessage()
+ logger.info(msg)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
+ }
+ }
+ else {
+ try {
+ def ANNF_serviceInstanceId = execution.getVariable("RANNFServiceInstanceId")
+ def TNFH_serviceInstanceId = execution.getVariable("TNFH_NSSI")
+ def TNMH_serviceInstanceId = execution.getVariable("TNMH_NSSI")
+ def AN_profileInstanceId = execution.getVariable("sliceProfileId")
+ def AN_NSSI = execution.getVariable("RANServiceInstanceId")
+ def ANNF_profileInstanceId = execution.getVariable("ANNF_sliceProfileInstanceId")
+ def TNFH_profileInstanceId = execution.getVariable("TNFH_sliceProfileInstanceId")
+ def TNMH_profileInstanceId = execution.getVariable("TNMH_sliceProfileInstanceId")
+ String globalSubscriberId = execution.getVariable("globalSubscriberId")
+ String subscriptionServiceType = execution.getVariable("subscriptionServiceType")
+
+ Relationship ANNF_relationship = new Relationship()
+ Relationship TNFH_relationship = new Relationship()
+ Relationship TNMH_relationship = new Relationship()
+
+ String ANNF_relatedLink = "aai/v21/business/customers/customer/${globalSubscriberId}/service-subscriptions/service-subscription/${subscriptionServiceType}/service-instances/service-instance/${ANNF_profileInstanceId}"
+ String TNFH_relatedLink = "aai/v21/business/customers/customer/${globalSubscriberId}/service-subscriptions/service-subscription/${subscriptionServiceType}/service-instances/service-instance/${TNFH_profileInstanceId}"
+ String TNMH_relatedLink = "aai/v21/business/customers/customer/${globalSubscriberId}/service-subscriptions/service-subscription/${subscriptionServiceType}/service-instances/service-instance/${TNMH_profileInstanceId}"
+
+ String ANNF_NSSI_relatedLink = "aai/v21/business/customers/customer/${globalSubscriberId}/service-subscriptions/service-subscription/${subscriptionServiceType}/service-instances/service-instance/${ANNF_serviceInstanceId}"
+ String TNFH_NSSI_relatedLink = "aai/v21/business/customers/customer/${globalSubscriberId}/service-subscriptions/service-subscription/${subscriptionServiceType}/service-instances/service-instance/${TNFH_serviceInstanceId}"
+ String TNMH_NSSI_relatedLink = "aai/v21/business/customers/customer/${globalSubscriberId}/service-subscriptions/service-subscription/${subscriptionServiceType}/service-instances/service-instance/${TNMH_serviceInstanceId}"
+
+ ANNF_relationship.setRelatedLink(ANNF_relatedLink)
+ ANNF_relationship.setRelatedTo("service-instance")
+ ANNF_relationship.setRelationshipLabel("org.onap.relationships.inventory.ComposedOf")
+ TNFH_relationship.setRelatedLink(TNFH_relatedLink)
+ TNFH_relationship.setRelatedTo("service-instance")
+ TNFH_relationship.setRelationshipLabel("org.onap.relationships.inventory.ComposedOf")
+ TNMH_relationship.setRelatedLink(TNMH_relatedLink)
+ TNMH_relationship.setRelatedTo("service-instance")
+ TNMH_relationship.setRelationshipLabel("org.onap.relationships.inventory.ComposedOf")
+
+ // create SliceProfile and NSSI relationship in AAI
+ anNssmfUtils.createRelationShipInAAI(execution, ANNF_relationship, ANNF_serviceInstanceId)
+ anNssmfUtils.createRelationShipInAAI(execution, TNFH_relationship, TNFH_serviceInstanceId)
+ anNssmfUtils.createRelationShipInAAI(execution, TNMH_relationship, TNMH_serviceInstanceId)
+ anNssmfUtils.createRelationShipInAAI(execution, ANNF_relationship, AN_profileInstanceId)
+ anNssmfUtils.createRelationShipInAAI(execution, TNFH_relationship, AN_profileInstanceId)
+ anNssmfUtils.createRelationShipInAAI(execution, TNMH_relationship, AN_profileInstanceId)
+
+ //create AN NSSI and ANNF,TNFH,TNMH relationship in AAI
+ ANNF_relationship.setRelatedLink(ANNF_NSSI_relatedLink)
+ TNFH_relationship.setRelatedLink(TNFH_NSSI_relatedLink)
+ TNMH_relationship.setRelatedLink(TNMH_NSSI_relatedLink)
+ anNssmfUtils.createRelationShipInAAI(execution, ANNF_relationship, AN_NSSI)
+ anNssmfUtils.createRelationShipInAAI(execution, TNFH_relationship, AN_NSSI)
+ anNssmfUtils.createRelationShipInAAI(execution, TNMH_relationship, AN_NSSI)
+
+ } catch (BpmnError e) {
+ throw e
+ } catch (Exception ex) {
+
+ msg = "Exception in DoCreateE2EServiceInstance.createCustomRelationship. " + ex.getMessage()
+ logger.info(msg)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
+ }
}
}
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 0088ed4e54..bc155c5943 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
@@ -34,6 +34,7 @@ import org.camunda.bpm.engine.delegate.DelegateExecution
import org.onap.aai.domain.yang.Relationship
import org.onap.aai.domain.yang.ServiceInstance
import org.onap.aai.domain.yang.SliceProfile
+import org.onap.aaiclient.client.aai.AAINamespaceConstants
import org.onap.aaiclient.client.aai.AAIResourcesClient
import org.onap.aaiclient.client.aai.entities.AAIResultWrapper
import org.onap.aaiclient.client.aai.entities.uri.AAIResourceUri
@@ -53,6 +54,7 @@ import org.onap.so.bpmn.core.json.JsonUtils
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import static org.apache.commons.lang3.StringUtils.isBlank
+import org.onap.aaiclient.client.aai.AAIObjectType
class DoAllocateNSIandNSSI extends AbstractServiceTaskProcessor{
@@ -62,6 +64,8 @@ class DoAllocateNSIandNSSI extends AbstractServiceTaskProcessor{
JsonUtils jsonUtil = new JsonUtils()
+ AnNssmfUtils anNssmfUtils = new AnNssmfUtils()
+
AAIResourcesClient client = getAAIClient()
/**
@@ -75,6 +79,13 @@ class DoAllocateNSIandNSSI extends AbstractServiceTaskProcessor{
String msg = ""
logger.trace("Enter preProcessRequest()")
Map<String, Object> nssiMap = new HashMap<>()
+ int nsstCount=execution.getVariable("nsstCount") as int
+ if(nsstCount==5){
+ execution.setVariable("processFHandMH", true)
+ }
+ else{
+ execution.setVariable("processFHandMH", false)
+ }
execution.setVariable("nssiMap", nssiMap)
boolean isMoreNSSTtoProcess = true
execution.setVariable("isMoreNSSTtoProcess", isMoreNSSTtoProcess)
@@ -393,26 +404,26 @@ class DoAllocateNSIandNSSI extends AbstractServiceTaskProcessor{
//todo:
SliceTaskParamsAdapter sliceParams =
execution.getVariable("sliceTaskParams") as SliceTaskParamsAdapter
- SliceTaskInfo<SliceProfileAdapter> sliceTaskInfo = sliceParams.anSliceTaskInfo
+ SliceTaskInfo<SliceProfileAdapter> sliceTaskInfo = sliceParams.getAnSliceTaskInfo()
NssmfAdapterNBIRequest nbiRequest = new NssmfAdapterNBIRequest()
AllocateAnNssi allocateAnNssi = new AllocateAnNssi()
- allocateAnNssi.sliceProfile = sliceTaskInfo.sliceProfile.trans2AnProfile()
- allocateAnNssi.sliceProfile.sliceProfileId = sliceTaskInfo.sliceInstanceId
- allocateAnNssi.nsstId = sliceTaskInfo.NSSTInfo.UUID
- allocateAnNssi.nssiId = sliceTaskInfo.suggestNssiId
- allocateAnNssi.nssiName = "nssi_an" + execution.getVariable("sliceServiceInstanceName")
- allocateAnNssi.scriptName = sliceTaskInfo.getScriptName()
+ allocateAnNssi.setSliceProfile(sliceTaskInfo.getSliceProfile().trans2AnProfile())
+ allocateAnNssi.getSliceProfile().setSliceProfileId(sliceTaskInfo.getSliceInstanceId())
+ allocateAnNssi.setNsstId(sliceTaskInfo.getNSSTInfo().getUUID())
+ allocateAnNssi.setNssiId(sliceTaskInfo.getSuggestNssiId())
+ allocateAnNssi.setNssiName("nssi_an" + execution.getVariable("sliceServiceInstanceName") as String)
+ allocateAnNssi.setScriptName(sliceTaskInfo.getScriptName())
NsiInfo nsiInfo = new NsiInfo()
- nsiInfo.nsiId = sliceParams.suggestNsiId
- nsiInfo.nsiName = sliceParams.suggestNsiName
- allocateAnNssi.nsiInfo = nsiInfo
+ nsiInfo.setNsiId(sliceParams.getSuggestNsiId())
+ nsiInfo.setNsiName(sliceParams.getSuggestNsiName())
+ allocateAnNssi.setNsiInfo(nsiInfo)
//endPoint
EndPoint endPoint = new EndPoint()
- endPoint.setIpAddress(sliceTaskInfo.sliceProfile.ipAddress)
- endPoint.setLogicInterfaceId(sliceTaskInfo.sliceProfile.logicInterfaceId)
- endPoint.setNextHopInfo(sliceTaskInfo.sliceProfile.nextHopInfo)
+ endPoint.setIpAddress(sliceTaskInfo.getSliceProfile().getIpAddress())
+ endPoint.setLogicInterfaceId(sliceTaskInfo.getSliceProfile().getLogicInterfaceId())
+ endPoint.setNextHopInfo(sliceTaskInfo.getSliceProfile().getNextHopInfo())
allocateAnNssi.setEndPoint(endPoint)
EsrInfo esrInfo = new EsrInfo()
@@ -420,19 +431,20 @@ class DoAllocateNSIandNSSI extends AbstractServiceTaskProcessor{
esrInfo.setVendor(sliceTaskInfo.getVendor())
esrInfo.setNetworkType(sliceTaskInfo.getNetworkType())
- String globalSubscriberId = execution.getVariable("globalSubscriberId")
- String subscriptionServiceType = execution.getVariable("subscriptionServiceType")
+ String globalSubscriberId = execution.getVariable("globalSubscriberId") as String
+ String subscriptionServiceType = execution.getVariable("subscriptionServiceType") as String
//todo: service info
- ServiceInfo serviceInfo = new ServiceInfo()
- serviceInfo.globalSubscriberId = globalSubscriberId
- serviceInfo.subscriptionServiceType = subscriptionServiceType
- serviceInfo.nsiId = sliceParams.suggestNsiId
- serviceInfo.serviceInvariantUuid = sliceTaskInfo.NSSTInfo.invariantUUID
- serviceInfo.serviceUuid = sliceTaskInfo.NSSTInfo.UUID
- serviceInfo.sST = sliceTaskInfo.sliceProfile.sST ?: sliceParams.serviceProfile.get("sST")
- serviceInfo.nssiName = sliceTaskInfo.suggestNssiId ? sliceTaskInfo.NSSTInfo.name : allocateAnNssi.nssiName
- serviceInfo.nssiId = sliceTaskInfo.suggestNssiId
+ ServiceInfo serviceInfo = ServiceInfo.builder()
+ .globalSubscriberId(globalSubscriberId)
+ .subscriptionServiceType(subscriptionServiceType)
+ .nsiId(sliceParams.getSuggestNsiId())
+ .serviceInvariantUuid(sliceTaskInfo.getNSSTInfo().getInvariantUUID())
+ .serviceUuid(sliceTaskInfo.getNSSTInfo().getUUID())
+ .sST(sliceTaskInfo.getSliceProfile().getSST() ?: sliceParams.getServiceProfile().get("sST") as String)
+ .nssiName(sliceTaskInfo.getSuggestNssiId() ? sliceTaskInfo.getNSSTInfo().getName() : allocateAnNssi.getNssiName())
+ .nssiId(sliceTaskInfo.getSuggestNssiId())
+ .build()
nbiRequest.setServiceInfo(serviceInfo)
nbiRequest.setEsrInfo(esrInfo)
@@ -956,4 +968,450 @@ class DoAllocateNSIandNSSI extends AbstractServiceTaskProcessor{
return rspi
}
+ public void createTNEndPoints(DelegateExecution execution) {
+ String type = "endpoint"
+ String function = "transport_EP"
+ int prefixLength = 24
+ String addressFamily = "ipv4"
+ //BH RAN end point update
+ //set BH end point
+ String sliceParams = execution.getVariable("sliceParams")
+ List<String> BH_endPoints = jsonUtil.StringArrayToList(jsonUtil.getJsonValue(sliceParams, "endPoints"))
+ logger.debug("BH end points list : "+BH_endPoints)
+ if(BH_endPoints.empty) {
+ String msg = "End point info is empty"
+ logger.debug(msg)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)
+ }
+ String bh_routeId = UUID.randomUUID().toString()
+ execution.setVariable("tranportEp_ID_bh", bh_routeId)
+ String role = "CU"
+ String CU_IpAddress = jsonUtil.getJsonValue(bh_endpoint, "IpAddress")
+ String LogicalLinkId = jsonUtil.getJsonValue(bh_endpoint, "LogicalLinkId")
+ String nextHopInfo = jsonUtil.getJsonValue(bh_endpoint, "nextHopInfo")
+ NetworkRoute bh_ep = new NetworkRoute()
+ bh_ep.setRouteId(bh_routeId)
+ bh_ep.setFunction(function)
+ bh_ep.setRole(role)
+ bh_ep.setType(type)
+ bh_ep.setIpAddress(CU_IpAddress)
+ bh_ep.setLogicalInterfaceId(LogicalLinkId)
+ bh_ep.setNextHop(nextHopInfo)
+ bh_ep.setPrefixLength(prefixLength)
+ bh_ep.setAddressFamily(addressFamily)
+ //FH RAN end points update
+ //RU
+ String RU_routeId = UUID.randomUUID().toString()
+ execution.setVariable("tranportEp_ID_RU", RU_routeId)
+ role = "RU"
+ NetworkRoute RU_ep = new NetworkRoute()
+ RU_ep.setRouteId(RU_routeId)
+ RU_ep.setFunction(function)
+ RU_ep.setRole(role)
+ RU_ep.setType(type)
+ RU_ep.setIpAddress("192.168.100.4")
+ RU_ep.setLogicalInterfaceId("1234")
+ RU_ep.setNextHop("Host1")
+ RU_ep.setPrefixLength(prefixLength)
+ RU_ep.setAddressFamily(addressFamily)
+ //DU Ingress
+ String DUIN_routeId = UUID.randomUUID().toString()
+ execution.setVariable("tranportEp_ID_DUIN", DUIN_routeId)
+ role = "DU"
+ NetworkRoute DU_ep = new NetworkRoute()
+ DU_ep.setRouteId(DUIN_routeId)
+ DU_ep.setFunction(function)
+ DU_ep.setRole(role)
+ DU_ep.setType(type)
+ DU_ep.setIpAddress("192.168.100.5")
+ DU_ep.setLogicalInterfaceId("1234")
+ DU_ep.setNextHop("Host2")
+ DU_ep.setPrefixLength(prefixLength)
+ DU_ep.setAddressFamily(addressFamily)
+ //MH RAN end point update
+ //DUEG
+ String DUEG_routeId = UUID.randomUUID().toString()
+ execution.setVariable("tranportEp_ID_DUEG", DUEG_routeId)
+ NetworkRoute DUEG_ep = new NetworkRoute()
+ DUEG_ep.setRouteId(DUEG_routeId)
+ DUEG_ep.setFunction(function)
+ DUEG_ep.setRole(role)
+ DUEG_ep.setType(type)
+ DUEG_ep.setIpAddress("192.168.100.5")
+ DUEG_ep.setLogicalInterfaceId("1234")
+ DUEG_ep.setPrefixLength(prefixLength)
+ DUEG_ep.setAddressFamily(addressFamily)
+ DUEG_ep.setNextHop("Host3")
+ //CUIN
+ String CUIN_routeId = UUID.randomUUID().toString()
+ execution.setVariable("tranportEp_ID_CUIN", CUIN_routeId)
+ NetworkRoute CUIN_ep = new NetworkRoute()
+ CUIN_ep.setRouteId(CUIN_routeId)
+ CUIN_ep.setFunction(function)
+ CUIN_ep.setRole(role)
+ CUIN_ep.setType(type)
+ CUIN_ep.setIpAddress("192.168.100.6")
+ CUIN_ep.setLogicalInterfaceId("1234")
+ CUIN_ep.setNextHop("Host4")
+ CUIN_ep.setPrefixLength(prefixLength)
+ CUIN_ep.setAddressFamily(addressFamily)
+ try {
+ AAIResourcesClient client = new AAIResourcesClient()
+ logger.debug("creating bh endpoint . ID : "+bh_routeId+" node details : "+bh_ep.toString())
+ AAIResourceUri networkRouteUri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().networkRoute(bh_routeId))
+ client.create(networkRouteUri, bh_ep)
+ logger.debug("creating RU endpoint . ID : "+RU_routeId+" node details : "+RU_ep.toString())
+ networkRouteUri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().networkRoute(RU_routeId))
+ client.create(networkRouteUri, RU_ep)
+ logger.debug("creating DUIN endpoint . ID : "+DUIN_routeId+" node details : "+DU_ep.toString())
+ networkRouteUri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().networkRoute(DUIN_routeId))
+ client.create(networkRouteUri, DU_ep)
+ logger.debug("creating DUEG endpoint . ID : "+DUEG_routeId+" node details : "+DUEG_ep.toString())
+ networkRouteUri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().networkRoute(DUEG_routeId))
+ client.create(networkRouteUri, DUEG_ep)
+ logger.debug("creating CUIN endpoint . ID : "+CUIN_routeId+" node details : "+CUIN_ep.toString())
+ networkRouteUri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().networkRoute(CUIN_routeId))
+ client.create(networkRouteUri, CUIN_ep)
+ //relationship b/w bh_ep and RAN NSSI
+ def AN_NSSI = execution.getVariable("RANServiceInstanceId")
+ Relationship relationship = new Relationship()
+ String relatedLink = "aai/v21/network/network-routes/network-route/${bh_routeId}"
+ relationship.setRelatedLink(relatedLink)
+ relationship.setRelatedTo("network-route")
+ relationship.setRelationshipLabel("org.onap.relationships.inventory.ComposedOf")
+ anNssmfUtils.createRelationShipInAAI(execution, relationship, AN_NSSI)
+ def ANNF_serviceInstanceId = execution.getVariable("RANNFServiceInstanceId")
+ relatedLink = "aai/v21/network/network-routes/network-route/${RU_routeId}"
+ relationship.setRelatedLink(relatedLink)
+ anNssmfUtils.createRelationShipInAAI(execution, relationship, ANNF_serviceInstanceId)
+ relatedLink = "aai/v21/network/network-routes/network-route/${DUIN_routeId}"
+ relationship.setRelatedLink(relatedLink)
+ anNssmfUtils.createRelationShipInAAI(execution, relationship, ANNF_serviceInstanceId)
+ relatedLink = "aai/v21/network/network-routes/network-route/${DUEG_routeId}"
+ relationship.setRelatedLink(relatedLink)
+ anNssmfUtils.createRelationShipInAAI(execution, relationship, ANNF_serviceInstanceId)
+ relatedLink = "aai/v21/network/network-routes/network-route/${CUIN_routeId}"
+ relationship.setRelatedLink(relatedLink)
+ anNssmfUtils.createRelationShipInAAI(execution, relationship, ANNF_serviceInstanceId)
+ } catch (BpmnError e) {
+ throw e
+ } catch (Exception ex) {
+ String msg = "Exception in createEndPointsInAai " + ex.getMessage()
+ logger.info(msg)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
+ }
+ }
+
+ /**
+ * create TN Slice Profile Instance
+ * @param execution
+ */
+ void createTnFHSliceProfileInstance(DelegateExecution execution) {
+ String globalSubscriberId = execution.getVariable("globalSubscriberId")
+ String subscriptionServiceType = execution.getVariable("subscriptionServiceType")
+
+ String oStatus = "deactivated"
+
+ SliceTaskParamsAdapter sliceParams =
+ execution.getVariable("sliceTaskParams") as SliceTaskParamsAdapter
+
+ SliceTaskInfo<SliceProfileAdapter> sliceTaskInfo = sliceParams.tnFHSliceTaskInfo
+ String serviceInstanceId = UUID.randomUUID().toString()
+
+ sliceTaskInfo.setSliceInstanceId(serviceInstanceId)
+ String sliceProfileName = "tn_fh" + sliceParams.serviceName
+ //execution.setVariable("cnSliceProfileInstanceId", serviceInstanceId) //todo:
+
+ // create slice profile
+ ServiceInstance rspi = createSliceProfileInstance(sliceTaskInfo, sliceProfileName, oStatus)
+
+ //timestamp format YYYY-MM-DD hh:mm:ss
+ rspi.setCreatedAt(new Date(System.currentTimeMillis()).format("yyyy-MM-dd HH:mm:ss", TimeZone.getDefault()))
+
+ execution.setVariable("communicationServiceInstance", rspi)
+
+ AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.business()
+ .customer(globalSubscriberId)
+ .serviceSubscription(subscriptionServiceType)
+ .serviceInstance(serviceInstanceId))
+ client.create(uri, rspi)
+
+ execution.setVariable("sliceTaskParams", sliceParams)
+ }
+
+ /**
+ * create Tn Slice Profile
+ * @param execution
+ */
+ void createTnFHSliceProfile(DelegateExecution execution) {
+
+ String globalSubscriberId = execution.getVariable("globalSubscriberId")
+ String subscriptionServiceType = execution.getVariable("subscriptionServiceType")
+
+ SliceTaskParamsAdapter sliceParams =
+ execution.getVariable("sliceTaskParams") as SliceTaskParamsAdapter
+
+ SliceTaskInfo<SliceProfileAdapter> sliceTaskInfo = sliceParams.tnFHSliceTaskInfo
+
+ SliceProfileAdapter tnSliceProfile = sliceTaskInfo.sliceProfile
+ String profileId = UUID.randomUUID().toString()
+ tnSliceProfile.setSliceProfileId(profileId)
+
+ SliceProfile sliceProfile = new SliceProfile()
+ sliceProfile.setProfileId(profileId)
+ sliceProfile.setLatency(tnSliceProfile.latency)
+ sliceProfile.setMaxBandwidth(tnSliceProfile.maxBandwidth)
+ sliceProfile.setJitter(tnSliceProfile.jitter)
+
+ AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.business()
+ .customer(globalSubscriberId)
+ .serviceSubscription(subscriptionServiceType)
+ .serviceInstance(sliceTaskInfo.sliceInstanceId)
+ .sliceProfile(profileId))
+ client.create(uri, sliceProfile)
+
+ execution.setVariable("sliceTaskParams", sliceParams)
+ }
+
+ /**
+ * prepare AllocateCnNssi
+ * @param execution
+ */
+ void prepareAllocateTnFHNssi(DelegateExecution execution) {
+
+ //todo:
+ SliceTaskParamsAdapter sliceParams =
+ execution.getVariable("sliceTaskParams") as SliceTaskParamsAdapter
+ SliceTaskInfo<SliceProfileAdapter> sliceTaskInfo = sliceParams.getTnFHSliceTaskInfo()
+
+ NssmfAdapterNBIRequest nbiRequest = new NssmfAdapterNBIRequest()
+
+ AllocateTnNssi allocateTnNssi = new AllocateTnNssi()
+ allocateTnNssi.setNssiId(sliceTaskInfo.getSuggestNssiId())
+ //todo: AllocateTnNssi
+ //todo: endPointId -> set into tn
+ List<TransportSliceNetwork> transportSliceNetworks = new ArrayList<>()
+ TransportSliceNetwork transportSliceNetwork = new TransportSliceNetwork()
+ List<ConnectionLink> connectionLinks = new ArrayList<>()
+ ConnectionLink connectionLink = new ConnectionLink()
+ connectionLink.setTransportEndpointA(execution.getVariable("tranportEp_ID_RU") as String)
+ connectionLink.setTransportEndpointB(execution.getVariable("tranportEp_ID_DUIN") as String)
+ connectionLinks.add(connectionLink)
+ transportSliceNetwork.setConnectionLinks(connectionLinks)
+ transportSliceNetworks.add(transportSliceNetwork)
+ allocateTnNssi.setTransportSliceNetworks(transportSliceNetworks)
+
+ allocateTnNssi.setSliceProfile(sliceTaskInfo.getSliceProfile().trans2TnProfile())
+ NsiInfo nsiInfo = new NsiInfo()
+ nsiInfo.setNsiId(sliceParams.getSuggestNsiId())
+ nsiInfo.setNsiName(sliceParams.getSuggestNsiName())
+ allocateTnNssi.setNsiInfo(nsiInfo)
+
+ EsrInfo esrInfo = new EsrInfo()
+ esrInfo.setVendor(sliceTaskInfo.getVendor())
+ esrInfo.setNetworkType(sliceTaskInfo.getNetworkType())
+
+ String globalSubscriberId = execution.getVariable("globalSubscriberId") as String
+ String subscriptionServiceType = execution.getVariable("subscriptionServiceType") as String
+
+ ServiceInfo serviceInfo = ServiceInfo.builder()
+ .globalSubscriberId(globalSubscriberId)
+ .subscriptionServiceType(subscriptionServiceType)
+ .nsiId(sliceParams.getSuggestNsiId())
+ .serviceInvariantUuid(sliceTaskInfo.getNSSTInfo().getInvariantUUID())
+ .setServiceUuid(sliceTaskInfo.getNSSTInfo().getUUID())
+ .nssiId(sliceTaskInfo.getSuggestNssiId())
+ .sST(sliceTaskInfo.getSliceProfile().getSST() ?: sliceParams.getServiceProfile().get("sST"))
+ .nssiName("nssi_tn_fh_" + execution.getVariable("sliceServiceInstanceName") as String)
+ .build()
+
+ nbiRequest.setServiceInfo(serviceInfo)
+ nbiRequest.setEsrInfo(esrInfo)
+ nbiRequest.setAllocateTnNssi(allocateTnNssi)
+
+ execution.setVariable("TnFHAllocateNssiNbiRequest", nbiRequest)
+ execution.setVariable("tnFHSliceTaskInfo", sliceTaskInfo)
+ execution.setVariable("tnFHSubnetType", SubnetType.TN_BH)
+ }
+
+ /**
+ * Update relationship between
+ * 1. NSI and NSSI
+ * 2. Slice Profile and Service Profile
+ * 3. SliceProfile and NSSI
+ *
+ * @param execution
+ */
+ public void updateTnFHRelationship(DelegateExecution execution) {
+ SliceTaskParamsAdapter sliceParams =
+ execution.getVariable("sliceTaskParams") as SliceTaskParamsAdapter
+
+ NssiResponse result = execution.getVariable("tnFHNssiAllocateResult") as NssiResponse
+ String nssiId = result.getNssiId()
+ String nsiId = sliceParams.getSuggestNsiId()
+ String sliceProfileInstanceId = sliceParams.tnFHSliceTaskInfo.sliceInstanceId
+ String serviceProfileInstanceId = sliceParams.serviceId
+
+ updateRelationship(execution, nsiId, nssiId)
+
+ updateRelationship(execution, serviceProfileInstanceId, sliceProfileInstanceId)
+
+ updateRelationship(execution,sliceProfileInstanceId, nssiId)
+
+ sliceParams.tnFHSliceTaskInfo.suggestNssiId = nssiId
+ execution.setVariable("sliceTaskParams", sliceParams)
+ }
+
+ /**
+ * create TN Slice Profile Instance
+ * @param execution
+ */
+ void createTnMHSliceProfileInstance(DelegateExecution execution) {
+ String globalSubscriberId = execution.getVariable("globalSubscriberId")
+ String subscriptionServiceType = execution.getVariable("subscriptionServiceType")
+
+ String oStatus = "deactivated"
+
+ SliceTaskParamsAdapter sliceParams =
+ execution.getVariable("sliceTaskParams") as SliceTaskParamsAdapter
+
+ SliceTaskInfo<SliceProfileAdapter> sliceTaskInfo = sliceParams.tnMHSliceTaskInfo
+ String serviceInstanceId = UUID.randomUUID().toString()
+
+ sliceTaskInfo.setSliceInstanceId(serviceInstanceId)
+ String sliceProfileName = "tn_mh_" + sliceParams.serviceName
+ ServiceInstance rspi = createSliceProfileInstance(sliceTaskInfo, sliceProfileName, oStatus)
+
+ rspi.setCreatedAt(new Date(System.currentTimeMillis()).format("yyyy-MM-dd HH:mm:ss", TimeZone.getDefault()))
+
+ execution.setVariable("communicationServiceInstance", rspi)
+
+ AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.business()
+ .customer(globalSubscriberId)
+ .serviceSubscription(subscriptionServiceType)
+ .serviceInstance(serviceInstanceId))
+ client.create(uri, rspi)
+
+ execution.setVariable("sliceTaskParams", sliceParams)
+ }
+
+ /**
+ * create Tn Slice Profile
+ * @param execution
+ */
+ void createTnMHSliceProfile(DelegateExecution execution) {
+
+ String globalSubscriberId = execution.getVariable("globalSubscriberId")
+ String subscriptionServiceType = execution.getVariable("subscriptionServiceType")
+
+ SliceTaskParamsAdapter sliceParams =
+ execution.getVariable("sliceTaskParams") as SliceTaskParamsAdapter
+
+ SliceTaskInfo<SliceProfileAdapter> sliceTaskInfo = sliceParams.tnMHSliceTaskInfo
+
+ SliceProfileAdapter tnSliceProfile = sliceTaskInfo.sliceProfile
+ String profileId = UUID.randomUUID().toString()
+ tnSliceProfile.setSliceProfileId(profileId)
+
+ SliceProfile sliceProfile = new SliceProfile()
+ sliceProfile.setProfileId(profileId)
+ sliceProfile.setLatency(tnSliceProfile.latency)
+ sliceProfile.setMaxBandwidth(tnSliceProfile.maxBandwidth)
+ sliceProfile.setJitter(tnSliceProfile.jitter)
+
+ AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.business()
+ .customer(globalSubscriberId)
+ .serviceSubscription(subscriptionServiceType)
+ .serviceInstance(sliceTaskInfo.sliceInstanceId)
+ .sliceProfile(profileId))
+ client.create(uri, sliceProfile)
+
+ execution.setVariable("sliceTaskParams", sliceParams)
+ }
+
+ /**
+ * prepare AllocateCnNssi
+ * @param execution
+ */
+ void prepareAllocateTnMHNssi(DelegateExecution execution) {
+
+ SliceTaskParamsAdapter sliceParams =
+ execution.getVariable("sliceTaskParams") as SliceTaskParamsAdapter
+ SliceTaskInfo<SliceProfileAdapter> sliceTaskInfo = sliceParams.getTnMHSliceTaskInfo()
+
+ NssmfAdapterNBIRequest nbiRequest = new NssmfAdapterNBIRequest()
+
+ AllocateTnNssi allocateTnNssi = new AllocateTnNssi()
+ allocateTnNssi.setNssiId(sliceTaskInfo.getSuggestNssiId())
+ List<TransportSliceNetwork> transportSliceNetworks = new ArrayList<>()
+ TransportSliceNetwork transportSliceNetwork = new TransportSliceNetwork()
+ List<ConnectionLink> connectionLinks = new ArrayList<>()
+ ConnectionLink connectionLink = new ConnectionLink()
+ connectionLink.setTransportEndpointA(execution.getVariable("tranportEp_ID_DUEG") as String)
+ connectionLink.setTransportEndpointB(execution.getVariable("tranportEp_ID_CUIN") as String)
+ connectionLinks.add(connectionLink)
+ transportSliceNetwork.setConnectionLinks(connectionLinks)
+ transportSliceNetworks.add(transportSliceNetwork)
+ allocateTnNssi.setTransportSliceNetworks(transportSliceNetworks)
+
+ allocateTnNssi.setSliceProfile(sliceTaskInfo.getSliceProfile().trans2TnProfile())
+ NsiInfo nsiInfo = new NsiInfo()
+ nsiInfo.setNsiId(sliceParams.getSuggestNsiId())
+ nsiInfo.setNsiName(sliceParams.getSuggestNsiName())
+ allocateTnNssi.setNsiInfo(nsiInfo)
+
+ EsrInfo esrInfo = new EsrInfo()
+ esrInfo.setVendor(sliceTaskInfo.getVendor())
+ esrInfo.setNetworkType(sliceTaskInfo.getNetworkType())
+
+ String globalSubscriberId = execution.getVariable("globalSubscriberId") as String
+ String subscriptionServiceType = execution.getVariable("subscriptionServiceType") as String
+
+ ServiceInfo serviceInfo = ServiceInfo.builder()
+ .globalSubscriberId(globalSubscriberId)
+ .subscriptionServiceType(subscriptionServiceType)
+ .nsiId(sliceParams.getSuggestNsiId())
+ .serviceInvariantUuid(sliceTaskInfo.getNSSTInfo().getInvariantUUID())
+ .serviceUuid(sliceTaskInfo.getNSSTInfo().getUUID())
+ .nssiId(sliceTaskInfo.getSuggestNssiId())
+ .sST(sliceTaskInfo.getSliceProfile().getSST() ?: sliceParams.getServiceProfile().get("sST"))
+ .nssiName("nssi_tn_bh_" + execution.getVariable("sliceServiceInstanceName") as String)
+ .build()
+
+ nbiRequest.setServiceInfo(serviceInfo)
+ nbiRequest.setEsrInfo(esrInfo)
+ nbiRequest.setAllocateTnNssi(allocateTnNssi)
+
+ execution.setVariable("TnMHAllocateNssiNbiRequest", nbiRequest)
+ execution.setVariable("tnMHSliceTaskInfo", sliceTaskInfo)
+ execution.setVariable("tnMHSubnetType", SubnetType.TN_BH)
+ }
+
+ /**
+ * Update relationship between
+ * 1. NSI and NSSI
+ * 2. Slice Profile and Service Profile
+ * 3. SliceProfile and NSSI
+ *
+ * @param execution
+ */
+ public void updateTnMHRelationship(DelegateExecution execution) {
+ SliceTaskParamsAdapter sliceParams =
+ execution.getVariable("sliceTaskParams") as SliceTaskParamsAdapter
+
+ NssiResponse result = execution.getVariable("tnMHNssiAllocateResult") as NssiResponse
+ String nssiId = result.getNssiId()
+ String nsiId = sliceParams.getSuggestNsiId()
+ String sliceProfileInstanceId = sliceParams.tnMHSliceTaskInfo.sliceInstanceId
+ String serviceProfileInstanceId = sliceParams.serviceId
+
+ updateRelationship(execution, nsiId, nssiId)
+
+ updateRelationship(execution, serviceProfileInstanceId, sliceProfileInstanceId)
+
+ updateRelationship(execution,sliceProfileInstanceId, nssiId)
+
+ sliceParams.tnMHSliceTaskInfo.suggestNssiId = nssiId
+ execution.setVariable("sliceTaskParams", sliceParams)
+ }
}
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 5476cb5afa..35b4199909 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 ac959543a2..2588d07e50 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
@@ -213,6 +213,22 @@ class DoCreateSliceServiceOption extends AbstractServiceTaskProcessor{
sliceParams.tnMHSliceTaskInfo.NSSTInfo.invariantUUID = modelInfo.getModelInvariantUuid()
sliceParams.tnMHSliceTaskInfo.NSSTInfo.name = modelInfo.getModelName()
break
+ case SubnetType.TN_FH:
+ sliceParams.tnFHSliceTaskInfo.vendor = vendor
+ sliceParams.tnFHSliceTaskInfo.subnetType = subnetType
+ sliceParams.tnFHSliceTaskInfo.networkType = subnetType.networkType
+ sliceParams.tnFHSliceTaskInfo.NSSTInfo.UUID = modelInfo.getModelUuid()
+ sliceParams.tnFHSliceTaskInfo.NSSTInfo.invariantUUID = modelInfo.getModelInvariantUuid()
+ sliceParams.tnFHSliceTaskInfo.NSSTInfo.name = modelInfo.getModelName()
+ break
+ case SubnetType.AN_NF:
+ sliceParams.anNFSliceTaskInfo.vendor = vendor
+ sliceParams.anNFSliceTaskInfo.subnetType = subnetType
+ sliceParams.anNFSliceTaskInfo.networkType = subnetType.networkType
+ sliceParams.anNFSliceTaskInfo.NSSTInfo.UUID = modelInfo.getModelUuid()
+ sliceParams.anNFSliceTaskInfo.NSSTInfo.invariantUUID = modelInfo.getModelInvariantUuid()
+ sliceParams.anNFSliceTaskInfo.NSSTInfo.name = modelInfo.getModelName()
+ break
case SubnetType.AN:
sliceParams.anSliceTaskInfo.vendor = vendor
sliceParams.anSliceTaskInfo.subnetType = subnetType
@@ -255,18 +271,24 @@ class DoCreateSliceServiceOption extends AbstractServiceTaskProcessor{
* @return
*/
private SubnetType convertServiceCategory(String serviceCategory){
- if(serviceCategory ==~ /CN.*/){
+ if("CN NSST".equals(serviceCategory)){
return SubnetType.CN
}
- if (serviceCategory ==~ /AN.*/){
+ if ("AN NF NSST".equals(serviceCategory)){
+ return SubnetType.AN_NF
+ }
+ if ("AN NSST".equals(serviceCategory)){
return SubnetType.AN
}
- if (serviceCategory ==~ /TN.*BH.*/){
+ if ("TN BH NSST".equals(serviceCategory)){
return SubnetType.TN_BH
}
- if(serviceCategory ==~ /TN.*MH.*/){
+ if("TN MH NSST".equals(serviceCategory)){
return SubnetType.TN_MH
}
+ if("TN FH NSST".equals(serviceCategory)){
+ return SubnetType.TN_FH
+ }
return null
}
@@ -426,7 +448,15 @@ class DoCreateSliceServiceOption extends AbstractServiceTaskProcessor{
case "tn_bh":
sliceParams.tnBHSliceTaskInfo.sliceProfile = adapter
break
+ case "tn_fh":
+ sliceParams.tnFHSliceTaskInfo.sliceProfile = adapter
+ break
+ case "tn_mh":
+ sliceParams.tnMHSliceTaskInfo.sliceProfile = adapter
+ break
case "an_nf":
+ sliceParams.anNFSliceTaskInfo.sliceProfile = adapter
+ break
case "an":
sliceParams.anSliceTaskInfo.sliceProfile = adapter
break
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 08c03b0dbb..e0c2b776fe 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,7 @@ 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/process/CreateSliceService.bpmn b/bpmn/so-bpmn-infrastructure-flows/src/main/resources/process/CreateSliceService.bpmn
index 290e13d05c..4d452aa57d 100644
--- a/bpmn/so-bpmn-infrastructure-flows/src/main/resources/process/CreateSliceService.bpmn
+++ b/bpmn/so-bpmn-infrastructure-flows/src/main/resources/process/CreateSliceService.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:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_1wio50w" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="3.4.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:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_1wio50w" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.8.1">
<bpmn:process id="CreateSliceService" name="CreateSliceService" isExecutable="true">
<bpmn:startEvent id="StartEvent_1nbljfd" name="Create Slice Service Creation Flow">
<bpmn:outgoing>SequenceFlow_03s744c</bpmn:outgoing>
@@ -283,6 +283,7 @@ css.prepareUpdateOrchestrationTask(execution)</bpmn:script>
<camunda:in source="allottedResourceId" target="allottedResourceId" />
<camunda:out source="sliceTaskParams" target="sliceTaskParams" />
<camunda:in source="allottedResourceUri" target="allottedResourceUri" />
+ <camunda:in source="nsstCount" target="nsstCount" />
</bpmn:extensionElements>
<bpmn:incoming>SequenceFlow_1bevt3a</bpmn:incoming>
<bpmn:outgoing>SequenceFlow_0mlrlbv</bpmn:outgoing>
@@ -319,6 +320,7 @@ css.prepareUpdateOrchestrationTask(execution)</bpmn:script>
<camunda:in source="globalSubscriberId" target="globalSubscriberId" />
<camunda:in source="subscriptionServiceType" target="subscriptionServiceType" />
<camunda:in source="serviceType" target="serviceType" />
+ <camunda:out source="maxNsstIndex" target="nsstCount" />
</bpmn:extensionElements>
<bpmn:incoming>SequenceFlow_1f6dyxo</bpmn:incoming>
<bpmn:outgoing>SequenceFlow_1aaozcg</bpmn:outgoing>
@@ -452,6 +454,66 @@ css.prepareSelectNSTRequest(execution)</bpmn:script>
<bpmn:message id="Message_0c4b2r5" name="SliceServiceTask" />
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="CreateSliceService">
+ <bpmndi:BPMNEdge id="SequenceFlow_031cwkd_di" bpmnElement="SequenceFlow_031cwkd">
+ <di:waypoint x="520" y="620" />
+ <di:waypoint x="550" y="620" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_0sub2c2_di" bpmnElement="SequenceFlow_0sub2c2">
+ <di:waypoint x="213" y="620" />
+ <di:waypoint x="240" y="620" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1fk2cn3_di" bpmnElement="SequenceFlow_1fk2cn3">
+ <di:waypoint x="372" y="718" />
+ <di:waypoint x="372" y="772" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_02sve8o_di" bpmnElement="SequenceFlow_02sve8o">
+ <di:waypoint x="410" y="350" />
+ <di:waypoint x="520" y="350" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1r2jtal_di" bpmnElement="SequenceFlow_1r2jtal">
+ <di:waypoint x="620" y="350" />
+ <di:waypoint x="710" y="350" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1whq7vc_di" bpmnElement="SequenceFlow_1whq7vc">
+ <di:waypoint x="788" y="620" />
+ <di:waypoint x="830" y="620" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_0ti386y_di" bpmnElement="SequenceFlow_0ti386y">
+ <di:waypoint x="650" y="620" />
+ <di:waypoint x="688" y="620" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1f6dyxo_di" bpmnElement="SequenceFlow_1f6dyxo">
+ <di:waypoint x="810" y="350" />
+ <di:waypoint x="880" y="350" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_12wo878_di" bpmnElement="SequenceFlow_12wo878">
+ <di:waypoint x="1330" y="124" />
+ <di:waypoint x="1402" y="124" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_00kcej9_di" bpmnElement="SequenceFlow_00kcej9">
+ <di:waypoint x="1320" y="350" />
+ <di:waypoint x="1402" y="350" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_14c2tav_di" bpmnElement="SequenceFlow_14c2tav">
+ <di:waypoint x="204" y="350" />
+ <di:waypoint x="310" y="350" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_0jhqtls_di" bpmnElement="SequenceFlow_0jhqtls">
+ <di:waypoint x="1160" y="124" />
+ <di:waypoint x="1230" y="124" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1dfon41_di" bpmnElement="SequenceFlow_1dfon41">
+ <di:waypoint x="990" y="122" />
+ <di:waypoint x="1060" y="122" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1x4n7an_di" bpmnElement="SequenceFlow_1x4n7an">
+ <di:waypoint x="820" y="122" />
+ <di:waypoint x="890" y="122" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_0xmvg4v_di" bpmnElement="SequenceFlow_0xmvg4v">
+ <di:waypoint x="664" y="122" />
+ <di:waypoint x="720" y="122" />
+ </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="SequenceFlow_0kixzdj_di" bpmnElement="SequenceFlow_0kixzdj">
<di:waypoint x="684" y="965" />
<di:waypoint x="764" y="965" />
@@ -561,6 +623,9 @@ css.prepareSelectNSTRequest(execution)</bpmn:script>
<dc:Bounds x="167" y="645" width="60" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="ScriptTask_1tc44ge_di" bpmnElement="ScriptTask_1tc44ge">
+ <dc:Bounds x="250" y="82" width="100" height="80" />
+ </bpmndi:BPMNShape>
<bpmndi:BPMNShape id="ScriptTask_1jgtb0y_di" bpmnElement="ScriptTask_1jgtb0y">
<dc:Bounds x="830" y="580" width="100" height="80" />
</bpmndi:BPMNShape>
@@ -591,15 +656,6 @@ css.prepareSelectNSTRequest(execution)</bpmn:script>
<bpmndi:BPMNShape id="EndEvent_0x406rw_di" bpmnElement="EndEvent_0x406rw">
<dc:Bounds x="446" y="1090" width="36" height="36" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="ScriptTask_1tc44ge_di" bpmnElement="ScriptTask_1tc44ge">
- <dc:Bounds x="250" y="82" width="100" height="80" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="ServiceTask_0kd6p6p_di" bpmnElement="ServiceTask_0kd6p6p">
- <dc:Bounds x="564" y="82" width="100" height="80" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="ScriptTask_1xxag1o_di" bpmnElement="ScriptTask_1xxag1o">
- <dc:Bounds x="410" y="82" width="100" height="80" />
- </bpmndi:BPMNShape>
<bpmndi:BPMNShape id="SubProcess_1yv9i68_di" bpmnElement="SubProcess_1yv9i68" isExpanded="true">
<dc:Bounds x="688" y="1072" width="781" height="196" />
</bpmndi:BPMNShape>
@@ -629,9 +685,15 @@ css.prepareSelectNSTRequest(execution)</bpmn:script>
<dc:Bounds x="1404" y="990" width="20" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="ScriptTask_1xxag1o_di" bpmnElement="ScriptTask_1xxag1o">
+ <dc:Bounds x="410" y="82" width="100" height="80" />
+ </bpmndi:BPMNShape>
<bpmndi:BPMNShape id="ScriptTask_1ssh2l9_di" bpmnElement="ScriptTask_1ssh2l9">
<dc:Bounds x="1074" y="925" width="100" height="80" />
</bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="ServiceTask_0kd6p6p_di" bpmnElement="ServiceTask_0kd6p6p">
+ <dc:Bounds x="564" y="82" width="100" height="80" />
+ </bpmndi:BPMNShape>
<bpmndi:BPMNShape id="CallActivity_0h88mep_di" bpmnElement="CallActivity_0h88mep">
<dc:Bounds x="890" y="82" width="100" height="80" />
</bpmndi:BPMNShape>
@@ -689,93 +751,47 @@ css.prepareSelectNSTRequest(execution)</bpmn:script>
<bpmndi:BPMNShape id="ScriptTask_1ac05ww_di" bpmnElement="ScriptTask_1ac05ww">
<dc:Bounds x="720" y="82" width="100" height="80" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="SequenceFlow_0xmvg4v_di" bpmnElement="SequenceFlow_0xmvg4v">
- <di:waypoint x="664" y="122" />
- <di:waypoint x="720" y="122" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_1x4n7an_di" bpmnElement="SequenceFlow_1x4n7an">
- <di:waypoint x="820" y="122" />
- <di:waypoint x="890" y="122" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_1dfon41_di" bpmnElement="SequenceFlow_1dfon41">
- <di:waypoint x="990" y="122" />
- <di:waypoint x="1060" y="122" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_0jhqtls_di" bpmnElement="SequenceFlow_0jhqtls">
- <di:waypoint x="1160" y="124" />
- <di:waypoint x="1230" y="124" />
- </bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="IntermediateCatchEvent_0gceuxu_di" bpmnElement="IntermediateCatchEvent_0gceuxu">
<dc:Bounds x="168" y="332" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="161" y="375" width="60" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="SequenceFlow_14c2tav_di" bpmnElement="SequenceFlow_14c2tav">
- <di:waypoint x="204" y="350" />
- <di:waypoint x="310" y="350" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_00kcej9_di" bpmnElement="SequenceFlow_00kcej9">
- <di:waypoint x="1320" y="350" />
- <di:waypoint x="1402" y="350" />
- </bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="IntermediateThrowEvent_0lpvnze_di" bpmnElement="IntermediateThrowEvent_0lpvnze">
<dc:Bounds x="1402" y="106" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="1382" y="147" width="87" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="SequenceFlow_12wo878_di" bpmnElement="SequenceFlow_12wo878">
- <di:waypoint x="1330" y="124" />
- <di:waypoint x="1402" y="124" />
- </bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="ScriptTask_13roglo_di" bpmnElement="ScriptTask_13roglo">
<dc:Bounds x="710" y="310" width="100" height="80" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="SequenceFlow_1f6dyxo_di" bpmnElement="SequenceFlow_1f6dyxo">
- <di:waypoint x="810" y="350" />
- <di:waypoint x="880" y="350" />
- </bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="EndEvent_0bz8a65_di" bpmnElement="EndEvent_0bz8a65">
<dc:Bounds x="354" y="772" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="ScriptTask_04qudo2_di" bpmnElement="ScriptTask_04qudo2">
<dc:Bounds x="550" y="580" width="100" height="80" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="SequenceFlow_0ti386y_di" bpmnElement="SequenceFlow_0ti386y">
- <di:waypoint x="650" y="620" />
- <di:waypoint x="688" y="620" />
- </bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="CallActivity_1vu3zcv_di" bpmnElement="CallActivity_1vu3zcv">
<dc:Bounds x="688" y="580" width="100" height="80" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="SequenceFlow_1whq7vc_di" bpmnElement="SequenceFlow_1whq7vc">
- <di:waypoint x="788" y="620" />
- <di:waypoint x="830" y="620" />
- </bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="CallActivity_0xf2g6c_di" bpmnElement="CallActivity_0xf2g6c">
<dc:Bounds x="520" y="310" width="100" height="80" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="SequenceFlow_1r2jtal_di" bpmnElement="SequenceFlow_1r2jtal">
- <di:waypoint x="620" y="350" />
- <di:waypoint x="710" y="350" />
- </bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="ScriptTask_1ayg9y8_di" bpmnElement="ScriptTask_1ayg9y8">
<dc:Bounds x="310" y="310" width="100" height="80" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="SequenceFlow_02sve8o_di" bpmnElement="SequenceFlow_02sve8o">
- <di:waypoint x="410" y="350" />
- <di:waypoint x="520" y="350" />
- </bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="SubProcess_1sxkpqq_di" bpmnElement="SubProcess_1sxkpqq" isExpanded="true">
<dc:Bounds x="240" y="540" width="280" height="160" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="BoundaryEvent_0xqq1ch_di" bpmnElement="BoundaryEvent_0xqq1ch">
- <dc:Bounds x="354" y="682" width="36" height="36" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="395" y="712" width="40" height="14" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="SequenceFlow_0recnor_di" bpmnElement="SequenceFlow_0recnor">
+ <di:waypoint x="308" y="620" />
+ <di:waypoint x="367" y="620" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1htsa6t_di" bpmnElement="SequenceFlow_1htsa6t">
+ <di:waypoint x="403" y="620" />
+ <di:waypoint x="460" y="620" />
+ </bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="StartEvent_1hd68zf_di" bpmnElement="StartEvent_1hd68zf">
<dc:Bounds x="272" y="602" width="36" height="36" />
</bpmndi:BPMNShape>
@@ -788,26 +804,12 @@ css.prepareSelectNSTRequest(execution)</bpmn:script>
<dc:Bounds x="353" y="644" width="67" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="SequenceFlow_1htsa6t_di" bpmnElement="SequenceFlow_1htsa6t">
- <di:waypoint x="403" y="620" />
- <di:waypoint x="460" y="620" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_0recnor_di" bpmnElement="SequenceFlow_0recnor">
- <di:waypoint x="308" y="620" />
- <di:waypoint x="367" y="620" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_1fk2cn3_di" bpmnElement="SequenceFlow_1fk2cn3">
- <di:waypoint x="372" y="718" />
- <di:waypoint x="372" y="772" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_0sub2c2_di" bpmnElement="SequenceFlow_0sub2c2">
- <di:waypoint x="213" y="620" />
- <di:waypoint x="240" y="620" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_031cwkd_di" bpmnElement="SequenceFlow_031cwkd">
- <di:waypoint x="520" y="620" />
- <di:waypoint x="550" y="620" />
- </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="BoundaryEvent_0xqq1ch_di" bpmnElement="BoundaryEvent_0xqq1ch">
+ <dc:Bounds x="354" y="682" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="395" y="712" width="40" height="14" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn:definitions>
diff --git a/bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoAllocateAccessNSSI.bpmn b/bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoAllocateAccessNSSI.bpmn
index 9df7398f8c..85aa7c2bf5 100644
--- a/bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoAllocateAccessNSSI.bpmn
+++ b/bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoAllocateAccessNSSI.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:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_05od9yd" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="3.7.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:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_05od9yd" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.10.0">
<bpmn:process id="DoAllocateAccessNSSI" name="DoAllocateAccessNSSI" isExecutable="true">
<bpmn:startEvent id="StartEvent_1" name="Start">
<bpmn:outgoing>Flow_163f3sq</bpmn:outgoing>
@@ -12,14 +12,14 @@ def nss = new DoAllocateAccessNSSI()
nss.preProcessRequest(execution)</bpmn:script>
</bpmn:scriptTask>
<bpmn:scriptTask id="Activity_0vhvubq" name="Get Subnet capabilities" scriptFormat="groovy">
- <bpmn:incoming>Flow_00f37fu</bpmn:incoming>
+ <bpmn:incoming>Flow_1xcjj1m</bpmn:incoming>
<bpmn:outgoing>Flow_1w8whur</bpmn:outgoing>
<bpmn:script>import org.onap.so.bpmn.infrastructure.scripts.*
def nss = new DoAllocateAccessNSSI()
nss.getSubnetCapabilities(execution)</bpmn:script>
</bpmn:scriptTask>
<bpmn:scriptTask id="Activity_11vdo22" name="Prepare Resource Operation Status Update" scriptFormat="groovy">
- <bpmn:incoming>Flow_0833cha</bpmn:incoming>
+ <bpmn:incoming>Flow_1gxbsoi</bpmn:incoming>
<bpmn:outgoing>Flow_1xw4abx</bpmn:outgoing>
<bpmn:script>import org.onap.so.bpmn.infrastructure.scripts.*
def nss = new DoAllocateAccessNSSI()
@@ -50,12 +50,12 @@ nss.prepareOperationStatusUpdate(execution)</bpmn:script>
<bpmn:endEvent id="Event_0vh1hs2">
<bpmn:incoming>Flow_0ll5x3u</bpmn:incoming>
</bpmn:endEvent>
- <bpmn:sequenceFlow id="Flow_0833cha" sourceRef="Event_05jtdqp" targetRef="Activity_11vdo22" />
+ <bpmn:sequenceFlow id="Flow_0833cha" sourceRef="Event_05jtdqp" targetRef="Activity_0vf28ld" />
<bpmn:sequenceFlow id="Flow_1xw4abx" sourceRef="Activity_11vdo22" targetRef="Activity_1nfx154" />
<bpmn:sequenceFlow id="Flow_0ll5x3u" sourceRef="Activity_1nfx154" targetRef="Event_0vh1hs2" />
<bpmn:sequenceFlow id="Flow_1x3y2tg" sourceRef="Event_18r5xkz" targetRef="Activity_03dgcg5" />
<bpmn:scriptTask id="Activity_19laorl" name="prepare OOF request for RAN NF NSSI selection" scriptFormat="groovy">
- <bpmn:incoming>Flow_0rb4j9r</bpmn:incoming>
+ <bpmn:incoming>Flow_1eo3bed</bpmn:incoming>
<bpmn:outgoing>Flow_0d0f3ie</bpmn:outgoing>
<bpmn:script>import org.onap.so.bpmn.infrastructure.scripts.*
def nss = new DoAllocateAccessNSSI()
@@ -80,7 +80,7 @@ nss.prepareTnMhRequest(execution)</bpmn:script>
<bpmn:linkEventDefinition id="LinkEventDefinition_05sogjc" name="OperationStatusUpdate" />
</bpmn:intermediateCatchEvent>
<bpmn:intermediateThrowEvent id="Event_0u9308h" name="Go to start   operation status update">
- <bpmn:incoming>Flow_0kcvava</bpmn:incoming>
+ <bpmn:incoming>Flow_0bd6dhi</bpmn:incoming>
<bpmn:linkEventDefinition id="LinkEventDefinition_1o9trjv" name="OperationStatusUpdate" />
</bpmn:intermediateThrowEvent>
<bpmn:intermediateCatchEvent id="Event_18r5xkz" name="start TN allocate">
@@ -120,7 +120,7 @@ nss.prepareOofRequestForRanNSS(execution)</bpmn:script>
<bpmn:linkEventDefinition id="LinkEventDefinition_08wuatj" name="OperationStatusUpdate" />
</bpmn:intermediateThrowEvent>
<bpmn:intermediateThrowEvent id="Event_15zn4zi" name="Goto start TN allocate">
- <bpmn:incoming>Flow_1exjm0h</bpmn:incoming>
+ <bpmn:incoming>Flow_0d40k12</bpmn:incoming>
<bpmn:linkEventDefinition id="LinkEventDefinition_13crcza" name="startTnAllocate" />
</bpmn:intermediateThrowEvent>
<bpmn:scriptTask id="Activity_1pxd5wf" name="Process OOF response" scriptFormat="groovy">
@@ -256,12 +256,11 @@ nss.processMhAllocateNssiJobStatusRsp(execution)</bpmn:script>
<bpmn:sequenceFlow id="Flow_1v3wpa2" sourceRef="Activity_0c0cq9d" targetRef="Activity_0zn4e4n" />
<bpmn:scriptTask id="Activity_1ll0nr1" name="Process Decomposition" scriptFormat="groovy">
<bpmn:incoming>Flow_1i10qog</bpmn:incoming>
- <bpmn:outgoing>Flow_00f37fu</bpmn:outgoing>
+ <bpmn:outgoing>Flow_1f0furp</bpmn:outgoing>
<bpmn:script>import org.onap.so.bpmn.infrastructure.scripts.*
def nss = new DoAllocateAccessNSSI()
nss.processDecomposition(execution)</bpmn:script>
</bpmn:scriptTask>
- <bpmn:sequenceFlow id="Flow_00f37fu" sourceRef="Activity_1ll0nr1" targetRef="Activity_0vhvubq" />
<bpmn:callActivity id="Activity_06hcbu6" name="Call Decompose Service" calledElement="DecomposeService">
<bpmn:extensionElements>
<camunda:in source="msoRequestId" target="msoRequestId" />
@@ -278,7 +277,7 @@ nss.processDecomposition(execution)</bpmn:script>
<bpmn:sequenceFlow id="Flow_1i10qog" sourceRef="Activity_06hcbu6" targetRef="Activity_1ll0nr1" />
<bpmn:scriptTask id="Activity_1aweui4" name="post process RAN NF NSSI modify" scriptFormat="groovy">
<bpmn:incoming>Flow_1k3vqxg</bpmn:incoming>
- <bpmn:outgoing>Flow_0n1mh5c</bpmn:outgoing>
+ <bpmn:outgoing>Flow_1tx240t</bpmn:outgoing>
<bpmn:script>import org.onap.so.bpmn.infrastructure.scripts.*
def nss = new DoAllocateAccessNSSI()
nss.processRanNfModifyRsp(execution)</bpmn:script>
@@ -395,7 +394,7 @@ nss.processNsstDecomposition(execution)</bpmn:script>
<bpmn:sequenceFlow id="Flow_0reg6l5" sourceRef="Activity_0fdm3in" targetRef="Activity_0a7a04p" />
<bpmn:sequenceFlow id="Flow_0jdjta3" sourceRef="Activity_0a7a04p" targetRef="Activity_1nmk2rt" />
<bpmn:sequenceFlow id="Flow_0y78v1q" sourceRef="Activity_1nmk2rt" targetRef="Gateway_1cmraqs" />
- <bpmn:sequenceFlow id="Flow_0rb4j9r" name="yes" sourceRef="Gateway_1cmraqs" targetRef="Activity_19laorl">
+ <bpmn:sequenceFlow id="Flow_0rb4j9r" name="yes" sourceRef="Gateway_1cmraqs" targetRef="Event_0lx9qhs">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{(execution.getVariable("isAllNsstsDecomposed" ) == true)}</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:sequenceFlow id="Flow_0d0f3ie" sourceRef="Activity_19laorl" targetRef="Activity_0y9xgkl" />
@@ -432,12 +431,11 @@ def nss = new DoAllocateAccessNSSI()
nss.updateAaiWithRANInstances(execution)</bpmn:script>
</bpmn:scriptTask>
<bpmn:sequenceFlow id="Flow_0ikdlkf" sourceRef="Activity_118je0o" targetRef="Activity_0pa8al6" />
- <bpmn:sequenceFlow id="Flow_1exjm0h" sourceRef="Activity_0pa8al6" targetRef="Event_15zn4zi" />
- <bpmn:sequenceFlow id="Flow_0bd6dhi" sourceRef="Activity_0zn4e4n" targetRef="Activity_0vf28ld" />
- <bpmn:sequenceFlow id="Flow_0kcvava" sourceRef="Activity_0vf28ld" targetRef="Event_0u9308h" />
+ <bpmn:sequenceFlow id="Flow_1exjm0h" sourceRef="Activity_0pa8al6" targetRef="Gateway_1832fz7" />
+ <bpmn:sequenceFlow id="Flow_0bd6dhi" sourceRef="Activity_0zn4e4n" targetRef="Event_0u9308h" />
<bpmn:scriptTask id="Activity_0vf28ld" name="update AAI relationships" scriptFormat="groovy">
- <bpmn:incoming>Flow_0bd6dhi</bpmn:incoming>
- <bpmn:outgoing>Flow_0kcvava</bpmn:outgoing>
+ <bpmn:incoming>Flow_0833cha</bpmn:incoming>
+ <bpmn:outgoing>Flow_1gxbsoi</bpmn:outgoing>
<bpmn:script>import org.onap.so.bpmn.infrastructure.scripts.*
def nss = new DoAllocateAccessNSSI()
nss.updateAairelationships(execution)</bpmn:script>
@@ -492,10 +490,9 @@ nss.prepareFailedOperationStatusUpdate(execution)</bpmn:script>
<bpmn:sequenceFlow id="Flow_0umohws" sourceRef="Activity_0p0mwue" targetRef="Activity_084fqbd" />
</bpmn:subProcess>
<bpmn:intermediateThrowEvent id="Event_1cqde7p" name="Goto start TN allocate">
- <bpmn:incoming>Flow_0n1mh5c</bpmn:incoming>
+ <bpmn:incoming>Flow_15uux8j</bpmn:incoming>
<bpmn:linkEventDefinition id="LinkEventDefinition_0da795k" name="startTnAllocate" />
</bpmn:intermediateThrowEvent>
- <bpmn:sequenceFlow id="Flow_0n1mh5c" sourceRef="Activity_1aweui4" targetRef="Event_1cqde7p" />
<bpmn:callActivity id="Activity_08i0hzk" name="DoModifyRanNfNssi" calledElement="DoModifyRanNfNssi">
<bpmn:extensionElements>
<camunda:in source="msoRequestId" target="msoRequestId" />
@@ -513,52 +510,125 @@ nss.prepareFailedOperationStatusUpdate(execution)</bpmn:script>
</bpmn:callActivity>
<bpmn:sequenceFlow id="Flow_1k3vqxg" sourceRef="Activity_08i0hzk" targetRef="Activity_1aweui4" />
<bpmn:sequenceFlow id="Flow_083bb3k" sourceRef="Gateway_1cmraqs" targetRef="Activity_0fdm3in" />
+ <bpmn:sequenceFlow id="Flow_1gxbsoi" sourceRef="Activity_0vf28ld" targetRef="Activity_11vdo22" />
+ <bpmn:intermediateThrowEvent id="Event_0lx9qhs" name="Goto start RANNF Allocate">
+ <bpmn:incoming>Flow_0rb4j9r</bpmn:incoming>
+ <bpmn:linkEventDefinition id="LinkEventDefinition_0s0j5kx" name="startRANNFAllocate" />
+ </bpmn:intermediateThrowEvent>
+ <bpmn:intermediateCatchEvent id="Event_0idp63x" name="start RANNF Allocate">
+ <bpmn:outgoing>Flow_1eo3bed</bpmn:outgoing>
+ <bpmn:linkEventDefinition id="LinkEventDefinition_0zk2eis" name="startRANNFAllocate" />
+ </bpmn:intermediateCatchEvent>
+ <bpmn:sequenceFlow id="Flow_1eo3bed" sourceRef="Event_0idp63x" targetRef="Activity_19laorl" />
+ <bpmn:exclusiveGateway id="Gateway_1832fz7" name="Is TN Present?" default="Flow_0d40k12">
+ <bpmn:incoming>Flow_1exjm0h</bpmn:incoming>
+ <bpmn:outgoing>Flow_0d40k12</bpmn:outgoing>
+ <bpmn:outgoing>Flow_024x74t</bpmn:outgoing>
+ </bpmn:exclusiveGateway>
+ <bpmn:sequenceFlow id="Flow_0d40k12" name="Yes" sourceRef="Gateway_1832fz7" targetRef="Event_15zn4zi" />
+ <bpmn:intermediateThrowEvent id="Event_11t655f" name="Go to start   operation status update">
+ <bpmn:incoming>Flow_024x74t</bpmn:incoming>
+ <bpmn:linkEventDefinition id="LinkEventDefinition_0f0lmkf" name="OperationStatusUpdate" />
+ </bpmn:intermediateThrowEvent>
+ <bpmn:sequenceFlow id="Flow_024x74t" name="No" sourceRef="Gateway_1832fz7" targetRef="Event_11t655f">
+ <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{(execution.getVariable("IsRANNfAlonePresent" ) == true)}</bpmn:conditionExpression>
+ </bpmn:sequenceFlow>
+ <bpmn:exclusiveGateway id="Gateway_0qnxawk" name="Is TOP RAN has TN NSSTs?" default="Flow_1xcjj1m">
+ <bpmn:incoming>Flow_1f0furp</bpmn:incoming>
+ <bpmn:outgoing>Flow_1xcjj1m</bpmn:outgoing>
+ <bpmn:outgoing>Flow_0twvyso</bpmn:outgoing>
+ </bpmn:exclusiveGateway>
+ <bpmn:sequenceFlow id="Flow_1xcjj1m" name="yes" sourceRef="Gateway_0qnxawk" targetRef="Activity_0vhvubq" />
+ <bpmn:intermediateThrowEvent id="Event_0htr86v" name="Go to start NSSI allocate">
+ <bpmn:incoming>Flow_0twvyso</bpmn:incoming>
+ <bpmn:linkEventDefinition id="LinkEventDefinition_02ffzy2" name="NSSIAllocate" />
+ </bpmn:intermediateThrowEvent>
+ <bpmn:sequenceFlow id="Flow_0twvyso" name="No" sourceRef="Gateway_0qnxawk" targetRef="Event_0htr86v">
+ <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{(execution.getVariable("IsRANNfAlonePresent" ) == true)}</bpmn:conditionExpression>
+ </bpmn:sequenceFlow>
+ <bpmn:sequenceFlow id="Flow_1f0furp" sourceRef="Activity_1ll0nr1" targetRef="Gateway_0qnxawk" />
+ <bpmn:exclusiveGateway id="Gateway_0rm6svp" name="Is TN present?" default="Flow_15uux8j">
+ <bpmn:incoming>Flow_1tx240t</bpmn:incoming>
+ <bpmn:outgoing>Flow_15uux8j</bpmn:outgoing>
+ <bpmn:outgoing>Flow_1ryf352</bpmn:outgoing>
+ </bpmn:exclusiveGateway>
+ <bpmn:sequenceFlow id="Flow_1tx240t" sourceRef="Activity_1aweui4" targetRef="Gateway_0rm6svp" />
+ <bpmn:sequenceFlow id="Flow_15uux8j" name="Yes" sourceRef="Gateway_0rm6svp" targetRef="Event_1cqde7p" />
+ <bpmn:intermediateThrowEvent id="Event_0f7ueve" name="Go to start   operation status update">
+ <bpmn:incoming>Flow_1ryf352</bpmn:incoming>
+ <bpmn:linkEventDefinition id="LinkEventDefinition_1qz179m" name="OperationStatusUpdate" />
+ </bpmn:intermediateThrowEvent>
+ <bpmn:sequenceFlow id="Flow_1ryf352" name="No" sourceRef="Gateway_0rm6svp" targetRef="Event_0f7ueve">
+ <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{(execution.getVariable("IsRANNfAlonePresent" ) == true)}</bpmn:conditionExpression>
+ </bpmn:sequenceFlow>
</bpmn:process>
<bpmn:message id="Message_1r7nv8u" name="WorkflowMessage" />
<bpmn:error id="Error_047rteq" name="MSO Workflow Exception" errorCode="MSOWorkflowException" />
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="DoAllocateAccessNSSI">
- <bpmndi:BPMNEdge id="Flow_0kcvava_di" bpmnElement="Flow_0kcvava">
- <di:waypoint x="1800" y="820" />
- <di:waypoint x="1882" y="820" />
+ <bpmndi:BPMNEdge id="Flow_1f0furp_di" bpmnElement="Flow_1f0furp">
+ <di:waypoint x="790" y="120" />
+ <di:waypoint x="875" y="120" />
</bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="Flow_0bd6dhi_di" bpmnElement="Flow_0bd6dhi">
- <di:waypoint x="1620" y="820" />
- <di:waypoint x="1700" y="820" />
+ <bpmndi:BPMNEdge id="Flow_0twvyso_di" bpmnElement="Flow_0twvyso">
+ <di:waypoint x="900" y="145" />
+ <di:waypoint x="900" y="192" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="908" y="166" width="15" height="14" />
+ </bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="Flow_1exjm0h_di" bpmnElement="Flow_1exjm0h">
- <di:waypoint x="1850" y="680" />
- <di:waypoint x="1882" y="680" />
+ <bpmndi:BPMNEdge id="Flow_1xcjj1m_di" bpmnElement="Flow_1xcjj1m">
+ <di:waypoint x="925" y="120" />
+ <di:waypoint x="1030" y="120" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="970" y="102" width="17" height="14" />
+ </bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="Flow_0ikdlkf_di" bpmnElement="Flow_0ikdlkf">
- <di:waypoint x="1720" y="680" />
- <di:waypoint x="1750" y="680" />
+ <bpmndi:BPMNEdge id="Flow_1eo3bed_di" bpmnElement="Flow_1eo3bed">
+ <di:waypoint x="228" y="819" />
+ <di:waypoint x="300" y="819" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_1gxbsoi_di" bpmnElement="Flow_1gxbsoi">
+ <di:waypoint x="430" y="1440" />
+ <di:waypoint x="490" y="1440" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_083bb3k_di" bpmnElement="Flow_083bb3k">
+ <di:waypoint x="790" y="554" />
+ <di:waypoint x="790" y="660" />
+ <di:waypoint x="420" y="660" />
+ <di:waypoint x="420" y="569" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_1k3vqxg_di" bpmnElement="Flow_1k3vqxg">
+ <di:waypoint x="1010" y="818" />
+ <di:waypoint x="1040" y="818" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_0bd6dhi_di" bpmnElement="Flow_0bd6dhi">
+ <di:waypoint x="1620" y="1260" />
+ <di:waypoint x="1722" y="1260" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0fdetmo_di" bpmnElement="Flow_0fdetmo">
- <di:waypoint x="1260" y="820" />
- <di:waypoint x="1340" y="820" />
+ <di:waypoint x="1260" y="1260" />
+ <di:waypoint x="1340" y="1260" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1p48xbl_di" bpmnElement="Flow_1p48xbl">
- <di:waypoint x="580" y="820" />
- <di:waypoint x="640" y="820" />
+ <di:waypoint x="580" y="1260" />
+ <di:waypoint x="640" y="1260" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1ryi6ym_di" bpmnElement="Flow_1ryi6ym">
- <di:waypoint x="1330" y="531" />
- <di:waypoint x="1355" y="531" />
+ <di:waypoint x="780" y="820" />
+ <di:waypoint x="805" y="820" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1f9rw3m_di" bpmnElement="Flow_1f9rw3m">
- <di:waypoint x="1210" y="531" />
- <di:waypoint x="1230" y="531" />
+ <di:waypoint x="660" y="820" />
+ <di:waypoint x="680" y="820" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0d0f3ie_di" bpmnElement="Flow_0d0f3ie">
- <di:waypoint x="950" y="530" />
- <di:waypoint x="980" y="530" />
+ <di:waypoint x="400" y="819" />
+ <di:waypoint x="430" y="819" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0rb4j9r_di" bpmnElement="Flow_0rb4j9r">
<di:waypoint x="815" y="529" />
- <di:waypoint x="833" y="529" />
- <di:waypoint x="833" y="530" />
- <di:waypoint x="850" y="530" />
+ <di:waypoint x="882" y="529" />
<bpmndi:BPMNLabel>
<dc:Bounds x="824" y="543" width="17" height="14" />
</bpmndi:BPMNLabel>
@@ -609,48 +679,36 @@ nss.prepareFailedOperationStatusUpdate(execution)</bpmn:script>
<di:waypoint x="480" y="120" />
<di:waypoint x="530" y="120" />
</bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="Flow_00f37fu_di" bpmnElement="Flow_00f37fu">
- <di:waypoint x="790" y="120" />
- <di:waypoint x="830" y="120" />
- </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1v3wpa2_di" bpmnElement="Flow_1v3wpa2">
- <di:waypoint x="1440" y="820" />
- <di:waypoint x="1520" y="820" />
+ <di:waypoint x="1440" y="1260" />
+ <di:waypoint x="1520" y="1260" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_04thflx_di" bpmnElement="Flow_04thflx">
- <di:waypoint x="1100" y="820" />
- <di:waypoint x="1160" y="820" />
+ <di:waypoint x="1100" y="1260" />
+ <di:waypoint x="1160" y="1260" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0qhjtre_di" bpmnElement="Flow_0qhjtre">
- <di:waypoint x="410" y="820" />
- <di:waypoint x="480" y="820" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="Flow_05yqmnj_di" bpmnElement="Flow_05yqmnj">
- <di:waypoint x="1580" y="680" />
- <di:waypoint x="1620" y="680" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="Flow_1pbiznt_di" bpmnElement="Flow_1pbiznt">
- <di:waypoint x="1430" y="680" />
- <di:waypoint x="1480" y="680" />
+ <di:waypoint x="410" y="1260" />
+ <di:waypoint x="480" y="1260" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0kn30g3_di" bpmnElement="Flow_0kn30g3">
- <di:waypoint x="1403" y="529" />
- <di:waypoint x="1460" y="529" />
+ <di:waypoint x="853" y="818" />
+ <di:waypoint x="910" y="818" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="1413" y="513" width="17" height="14" />
+ <dc:Bounds x="863" y="802" width="17" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1nkqrpd_di" bpmnElement="Flow_1nkqrpd">
- <di:waypoint x="1080" y="531" />
- <di:waypoint x="1110" y="531" />
+ <di:waypoint x="530" y="820" />
+ <di:waypoint x="560" y="820" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_16z59pu_di" bpmnElement="Flow_16z59pu">
- <di:waypoint x="740" y="820" />
- <di:waypoint x="810" y="820" />
+ <di:waypoint x="740" y="1260" />
+ <di:waypoint x="810" y="1260" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1b14415_di" bpmnElement="Flow_1b14415">
- <di:waypoint x="1200" y="120" />
- <di:waypoint x="1240" y="120" />
+ <di:waypoint x="1400" y="120" />
+ <di:waypoint x="1440" y="120" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0tica8m_di" bpmnElement="Flow_0tica8m">
<di:waypoint x="340" y="120" />
@@ -669,22 +727,22 @@ nss.prepareFailedOperationStatusUpdate(execution)</bpmn:script>
<di:waypoint x="245" y="380" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1h7iq8l_di" bpmnElement="Flow_1h7iq8l">
- <di:waypoint x="1340" y="120" />
- <di:waypoint x="1372" y="120" />
+ <di:waypoint x="1540" y="120" />
+ <di:waypoint x="1572" y="120" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0tkzfhb_di" bpmnElement="Flow_0tkzfhb">
- <di:waypoint x="1060" y="120" />
- <di:waypoint x="1100" y="120" />
+ <di:waypoint x="1260" y="120" />
+ <di:waypoint x="1300" y="120" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1w8whur_di" bpmnElement="Flow_1w8whur">
- <di:waypoint x="930" y="120" />
- <di:waypoint x="960" y="120" />
+ <di:waypoint x="1130" y="120" />
+ <di:waypoint x="1160" y="120" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_178fenq_di" bpmnElement="Flow_178fenq">
- <di:waypoint x="1380" y="556" />
- <di:waypoint x="1380" y="640" />
+ <di:waypoint x="830" y="845" />
+ <di:waypoint x="830" y="977" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="1386" y="574" width="15" height="14" />
+ <dc:Bounds x="836" y="863" width="15" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1ipsxgh_di" bpmnElement="Flow_1ipsxgh">
@@ -699,38 +757,72 @@ nss.prepareFailedOperationStatusUpdate(execution)</bpmn:script>
<di:waypoint x="240" y="120" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0zhr499_di" bpmnElement="Flow_0zhr499">
- <di:waypoint x="910" y="820" />
- <di:waypoint x="1000" y="820" />
+ <di:waypoint x="910" y="1260" />
+ <di:waypoint x="1000" y="1260" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1x3y2tg_di" bpmnElement="Flow_1x3y2tg">
- <di:waypoint x="228" y="820" />
- <di:waypoint x="310" y="820" />
+ <di:waypoint x="228" y="1260" />
+ <di:waypoint x="310" y="1260" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0ll5x3u_di" bpmnElement="Flow_0ll5x3u">
- <di:waypoint x="600" y="1010" />
- <di:waypoint x="692" y="1010" />
+ <di:waypoint x="760" y="1440" />
+ <di:waypoint x="862" y="1440" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1xw4abx_di" bpmnElement="Flow_1xw4abx">
- <di:waypoint x="420" y="1010" />
- <di:waypoint x="500" y="1010" />
+ <di:waypoint x="590" y="1440" />
+ <di:waypoint x="660" y="1440" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0833cha_di" bpmnElement="Flow_0833cha">
- <di:waypoint x="228" y="1010" />
- <di:waypoint x="320" y="1010" />
+ <di:waypoint x="228" y="1440" />
+ <di:waypoint x="330" y="1440" />
</bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="Flow_0n1mh5c_di" bpmnElement="Flow_0n1mh5c">
- <di:waypoint x="1690" y="529" />
- <di:waypoint x="1742" y="529" />
+ <bpmndi:BPMNEdge id="Flow_1tx240t_di" bpmnElement="Flow_1tx240t">
+ <di:waypoint x="1140" y="818" />
+ <di:waypoint x="1245" y="818" />
</bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="Flow_1k3vqxg_di" bpmnElement="Flow_1k3vqxg">
- <di:waypoint x="1560" y="529" />
- <di:waypoint x="1590" y="529" />
+ <bpmndi:BPMNEdge id="Flow_15uux8j_di" bpmnElement="Flow_15uux8j">
+ <di:waypoint x="1295" y="818" />
+ <di:waypoint x="1392" y="818" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="1335" y="800" width="18" height="14" />
+ </bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="Flow_083bb3k_di" bpmnElement="Flow_083bb3k">
- <di:waypoint x="790" y="554" />
- <di:waypoint x="790" y="730" />
- <di:waypoint x="420" y="730" />
- <di:waypoint x="420" y="569" />
+ <bpmndi:BPMNEdge id="Flow_0d40k12_di" bpmnElement="Flow_0d40k12">
+ <di:waypoint x="1375" y="1017" />
+ <di:waypoint x="1452" y="1017" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="1406" y="999" width="18" height="14" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_1pbiznt_di" bpmnElement="Flow_1pbiznt">
+ <di:waypoint x="880" y="1017" />
+ <di:waypoint x="930" y="1017" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_05yqmnj_di" bpmnElement="Flow_05yqmnj">
+ <di:waypoint x="1030" y="1017" />
+ <di:waypoint x="1070" y="1017" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_0ikdlkf_di" bpmnElement="Flow_0ikdlkf">
+ <di:waypoint x="1170" y="1017" />
+ <di:waypoint x="1200" y="1017" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_1exjm0h_di" bpmnElement="Flow_1exjm0h">
+ <di:waypoint x="1300" y="1017" />
+ <di:waypoint x="1325" y="1017" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_024x74t_di" bpmnElement="Flow_024x74t">
+ <di:waypoint x="1350" y="1042" />
+ <di:waypoint x="1350" y="1100" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="1358" y="1068" width="15" height="14" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_1ryf352_di" bpmnElement="Flow_1ryf352">
+ <di:waypoint x="1270" y="843" />
+ <di:waypoint x="1270" y="865" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="1278" y="851" width="15" height="14" />
+ </bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
<dc:Bounds x="162" y="102" width="36" height="36" />
@@ -742,52 +834,52 @@ nss.prepareFailedOperationStatusUpdate(execution)</bpmn:script>
<dc:Bounds x="240" y="80" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1gdi5bo_di" bpmnElement="Activity_0vhvubq">
- <dc:Bounds x="830" y="80" width="100" height="80" />
+ <dc:Bounds x="1030" y="80" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_11vdo22_di" bpmnElement="Activity_11vdo22">
- <dc:Bounds x="320" y="970" width="100" height="80" />
+ <dc:Bounds x="490" y="1400" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1nfx154_di" bpmnElement="Activity_1nfx154">
- <dc:Bounds x="500" y="970" width="100" height="80" />
+ <dc:Bounds x="660" y="1400" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0vh1hs2_di" bpmnElement="Event_0vh1hs2">
- <dc:Bounds x="692" y="992" width="36" height="36" />
+ <dc:Bounds x="862" y="1422" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0icw8wt_di" bpmnElement="Activity_19laorl">
- <dc:Bounds x="850" y="490" width="100" height="80" />
+ <dc:Bounds x="300" y="779" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_10z6k5t_di" bpmnElement="Activity_03dgcg5">
- <dc:Bounds x="310" y="780" width="100" height="80" />
+ <dc:Bounds x="310" y="1220" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1dracjc_di" bpmnElement="Activity_18y4ijb">
- <dc:Bounds x="1000" y="780" width="100" height="80" />
+ <dc:Bounds x="1000" y="1220" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0g0i472_di" bpmnElement="Event_05jtdqp">
- <dc:Bounds x="192" y="992" width="36" height="36" />
+ <dc:Bounds x="192" y="1422" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="174" y="1035" width="73" height="27" />
+ <dc:Bounds x="174" y="1465" width="73" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_1ea1h0i_di" bpmnElement="Event_0u9308h">
- <dc:Bounds x="1882" y="802" width="36" height="36" />
+ <dc:Bounds x="1722" y="1242" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="1860" y="850" width="79" height="40" />
+ <dc:Bounds x="1700" y="1290" width="79" height="40" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_1fj3anx_di" bpmnElement="Event_18r5xkz">
- <dc:Bounds x="192" y="802" width="36" height="36" />
+ <dc:Bounds x="192" y="1242" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="170" y="845" width="81" height="14" />
+ <dc:Bounds x="170" y="1285" width="81" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0nm8unl_di" bpmnElement="Activity_0qn2fvh">
- <dc:Bounds x="810" y="780" width="100" height="80" />
+ <dc:Bounds x="810" y="1220" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_12szahe_di" bpmnElement="Activity_12szahe">
- <dc:Bounds x="1240" y="80" width="100" height="80" />
+ <dc:Bounds x="1440" y="80" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1oepxwk_di" bpmnElement="Activity_0vwhzem">
- <dc:Bounds x="960" y="80" width="100" height="80" />
+ <dc:Bounds x="1160" y="80" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_1aesepd_di" bpmnElement="Gateway_1aesepd" isMarkerVisible="true">
<dc:Bounds x="245" y="355" width="50" height="50" />
@@ -801,31 +893,19 @@ nss.prepareFailedOperationStatusUpdate(execution)</bpmn:script>
<dc:Bounds x="1220" y="397" width="79" height="40" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Event_15zn4zi_di" bpmnElement="Event_15zn4zi">
- <dc:Bounds x="1882" y="662" width="36" height="36" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="1868" y="705" width="67" height="27" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1pxd5wf_di" bpmnElement="Activity_1pxd5wf">
- <dc:Bounds x="1110" y="491" width="100" height="80" />
+ <dc:Bounds x="560" y="780" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_0en9ki5_di" bpmnElement="Gateway_0en9ki5" isMarkerVisible="true">
- <dc:Bounds x="1355" y="506" width="50" height="50" />
+ <dc:Bounds x="805" y="795" width="50" height="50" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="1349" y="476" width="62" height="27" />
+ <dc:Bounds x="799" y="765" width="62" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Activity_0a95zgv_di" bpmnElement="Activity_0a95zgv">
- <dc:Bounds x="1330" y="640" width="100" height="80" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Activity_118je0o_di" bpmnElement="Activity_118je0o">
- <dc:Bounds x="1620" y="640" width="100" height="80" />
- </bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0qwruv5_di" bpmnElement="Event_0s8t1ji">
- <dc:Bounds x="1372" y="102" width="36" height="36" />
+ <dc:Bounds x="1572" y="102" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="1351" y="145" width="81" height="27" />
+ <dc:Bounds x="1551" y="145" width="81" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_1vfrb2l_di" bpmnElement="Event_1glt41l">
@@ -838,22 +918,19 @@ nss.prepareFailedOperationStatusUpdate(execution)</bpmn:script>
<dc:Bounds x="380" y="80" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1u28lyv_di" bpmnElement="Activity_1u28lyv">
- <dc:Bounds x="1100" y="80" width="100" height="80" />
+ <dc:Bounds x="1300" y="80" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1ux83hz_di" bpmnElement="Activity_1ux83hz">
- <dc:Bounds x="640" y="780" width="100" height="80" />
+ <dc:Bounds x="640" y="1220" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0c0cq9d_di" bpmnElement="Activity_0c0cq9d">
- <dc:Bounds x="1340" y="780" width="100" height="80" />
+ <dc:Bounds x="1340" y="1220" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0y9xgkl_di" bpmnElement="Activity_0y9xgkl">
- <dc:Bounds x="980" y="491" width="100" height="80" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Activity_0vbzhej_di" bpmnElement="Activity_0vbzhej">
- <dc:Bounds x="1480" y="640" width="100" height="80" />
+ <dc:Bounds x="430" y="780" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0zn4e4n_di" bpmnElement="Activity_0zn4e4n">
- <dc:Bounds x="1520" y="780" width="100" height="80" />
+ <dc:Bounds x="1520" y="1220" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1ll0nr1_di" bpmnElement="Activity_1ll0nr1">
<dc:Bounds x="690" y="80" width="100" height="80" />
@@ -861,9 +938,6 @@ nss.prepareFailedOperationStatusUpdate(execution)</bpmn:script>
<bpmndi:BPMNShape id="Activity_06hcbu6_di" bpmnElement="Activity_06hcbu6">
<dc:Bounds x="530" y="80" width="100" height="80" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Activity_1xke4xc_di" bpmnElement="Activity_1aweui4">
- <dc:Bounds x="1590" y="489" width="100" height="80" />
- </bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1bjike9_di" bpmnElement="Activity_1bjike9">
<dc:Bounds x="530" y="340" width="100" height="80" />
</bpmndi:BPMNShape>
@@ -898,62 +972,128 @@ nss.prepareFailedOperationStatusUpdate(execution)</bpmn:script>
<dc:Bounds x="620" y="489" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_027ic3j_di" bpmnElement="Activity_027ic3j">
- <dc:Bounds x="1230" y="491" width="100" height="80" />
+ <dc:Bounds x="680" y="780" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_12vtq69_di" bpmnElement="Activity_12vtq69">
- <dc:Bounds x="480" y="780" width="100" height="80" />
+ <dc:Bounds x="480" y="1220" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0qpy2sg_di" bpmnElement="Activity_0qpy2sg">
- <dc:Bounds x="1160" y="780" width="100" height="80" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Activity_0pa8al6_di" bpmnElement="Activity_0pa8al6">
- <dc:Bounds x="1750" y="640" width="100" height="80" />
+ <dc:Bounds x="1160" y="1220" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1riw9uv_di" bpmnElement="Activity_0vf28ld">
- <dc:Bounds x="1700" y="780" width="100" height="80" />
+ <dc:Bounds x="330" y="1400" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_1cqde7p_di" bpmnElement="Event_1cqde7p">
- <dc:Bounds x="1742" y="511" width="36" height="36" />
+ <dc:Bounds x="1392" y="800" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="1728" y="554" width="67" height="27" />
+ <dc:Bounds x="1378" y="843" width="67" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Activity_08i0hzk_di" bpmnElement="Activity_08i0hzk">
- <dc:Bounds x="1460" y="489" width="100" height="80" />
+ <bpmndi:BPMNShape id="Activity_1xke4xc_di" bpmnElement="Activity_1aweui4">
+ <dc:Bounds x="1040" y="778" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Gateway_0rm6svp_di" bpmnElement="Gateway_0rm6svp" isMarkerVisible="true">
+ <dc:Bounds x="1245" y="793" width="50" height="50" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="1235" y="763" width="73" height="14" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Event_15zn4zi_di" bpmnElement="Event_15zn4zi">
+ <dc:Bounds x="1452" y="999" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="1438" y="1042" width="67" height="27" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_0a95zgv_di" bpmnElement="Activity_0a95zgv">
+ <dc:Bounds x="780" y="977" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_118je0o_di" bpmnElement="Activity_118je0o">
+ <dc:Bounds x="1070" y="977" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_0vbzhej_di" bpmnElement="Activity_0vbzhej">
+ <dc:Bounds x="930" y="977" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_0pa8al6_di" bpmnElement="Activity_0pa8al6">
+ <dc:Bounds x="1200" y="977" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Gateway_1832fz7_di" bpmnElement="Gateway_1832fz7" isMarkerVisible="true">
+ <dc:Bounds x="1325" y="992" width="50" height="50" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="1313" y="971" width="74" height="14" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Event_11t655f_di" bpmnElement="Event_11t655f">
+ <dc:Bounds x="1332" y="1100" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="1310" y="1148" width="79" height="40" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Event_0f7ueve_di" bpmnElement="Event_0f7ueve">
+ <dc:Bounds x="1252" y="865" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="1230" y="913" width="79" height="40" />
+ </bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0bcs8g1_di" bpmnElement="Activity_0bcs8g1" isExpanded="true">
- <dc:Bounds x="410" y="1160" width="781" height="196" />
+ <dc:Bounds x="390" y="1530" width="781" height="196" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_0umohws_di" bpmnElement="Flow_0umohws">
- <di:waypoint x="800" y="1264" />
- <di:waypoint x="870" y="1264" />
+ <di:waypoint x="780" y="1634" />
+ <di:waypoint x="850" y="1634" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_11qgtdm_di" bpmnElement="Flow_11qgtdm">
- <di:waypoint x="640" y="1264" />
- <di:waypoint x="700" y="1264" />
+ <di:waypoint x="620" y="1634" />
+ <di:waypoint x="680" y="1634" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_18rrdsq_di" bpmnElement="Flow_18rrdsq">
- <di:waypoint x="476" y="1264" />
- <di:waypoint x="540" y="1264" />
+ <di:waypoint x="456" y="1634" />
+ <di:waypoint x="520" y="1634" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0c9dr7z_di" bpmnElement="Flow_0c9dr7z">
- <di:waypoint x="970" y="1264" />
- <di:waypoint x="1078" y="1264" />
+ <di:waypoint x="950" y="1634" />
+ <di:waypoint x="1058" y="1634" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Event_077lf7i_di" bpmnElement="Event_077lf7i">
- <dc:Bounds x="440" y="1246" width="36" height="36" />
+ <dc:Bounds x="420" y="1616" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_1p00v8c_di" bpmnElement="Event_1p00v8c">
- <dc:Bounds x="1078" y="1246" width="36" height="36" />
+ <dc:Bounds x="1058" y="1616" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_084fqbd_di" bpmnElement="Activity_084fqbd">
- <dc:Bounds x="870" y="1224" width="100" height="80" />
+ <dc:Bounds x="850" y="1594" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1adxijg_di" bpmnElement="Activity_1adxijg">
- <dc:Bounds x="540" y="1224" width="100" height="80" />
+ <dc:Bounds x="520" y="1594" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0p0mwue_di" bpmnElement="Activity_0p0mwue">
- <dc:Bounds x="700" y="1224" width="100" height="80" />
+ <dc:Bounds x="680" y="1594" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_08i0hzk_di" bpmnElement="Activity_08i0hzk">
+ <dc:Bounds x="910" y="778" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Event_0lx9qhs_di" bpmnElement="Event_0lx9qhs">
+ <dc:Bounds x="882" y="511" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="855" y="546" width="90" height="27" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Event_0idp63x_di" bpmnElement="Event_0idp63x">
+ <dc:Bounds x="192" y="801" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="180" y="844" width="63" height="27" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Gateway_0qnxawk_di" bpmnElement="Gateway_0qnxawk" isMarkerVisible="true">
+ <dc:Bounds x="875" y="95" width="50" height="50" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="860" y="65" width="82" height="27" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Event_0htr86v_di" bpmnElement="Event_0htr86v">
+ <dc:Bounds x="882" y="192" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="860" y="227" width="81" height="27" />
+ </bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
diff --git a/bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoAllocateNSIandNSSI.bpmn b/bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoAllocateNSIandNSSI.bpmn
index c6268d3638..51f96ee8a9 100644
--- a/bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoAllocateNSIandNSSI.bpmn
+++ b/bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoAllocateNSIandNSSI.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:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="3.4.1">
+<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.8.1">
<bpmn:process id="DoAllocateNSIandNSSI" name="DoAllocateNSIandNSSI" isExecutable="true">
<bpmn:startEvent id="StartEvent_1ym3sha" name="Start">
<bpmn:outgoing>SequenceFlow_0xgfj7z</bpmn:outgoing>
@@ -155,7 +155,7 @@ dcnsio.createCnSliceProfileInstance(execution)</bpmn:script>
def dcnsio = new DoAllocateNSIandNSSI()
dcnsio.createCnSliceProfile(execution)</bpmn:script>
</bpmn:scriptTask>
- <bpmn:sequenceFlow id="SequenceFlow_0ax2c4p" sourceRef="ExclusiveGateway_19ru3hp" targetRef="EndEvent_02c8wsp" />
+ <bpmn:sequenceFlow id="SequenceFlow_0ax2c4p" sourceRef="ExclusiveGateway_19ru3hp" targetRef="Gateway_0tpcoai" />
<bpmn:scriptTask id="ScriptTask_0stnvp3" name="Create TN (BH) Slice Profile" scriptFormat="groovy">
<bpmn:incoming>SequenceFlow_0paqrtx</bpmn:incoming>
<bpmn:outgoing>SequenceFlow_1d48cil</bpmn:outgoing>
@@ -230,7 +230,7 @@ dcnsio.updateCnRelationship(execution)</bpmn:script>
<bpmn:incoming>SequenceFlow_150xio1</bpmn:incoming>
</bpmn:endEvent>
<bpmn:intermediateThrowEvent id="EndEvent_02c8wsp" name="GoTo Create Tn SliceProfile">
- <bpmn:incoming>SequenceFlow_0ax2c4p</bpmn:incoming>
+ <bpmn:incoming>Flow_0ehx22x</bpmn:incoming>
<bpmn:linkEventDefinition name="CreateTnSliceProfile" />
</bpmn:intermediateThrowEvent>
<bpmn:scriptTask id="ScriptTask_0s8vhha" name="prepare Allocate An Nssi" scriptFormat="groovy">
@@ -274,56 +274,363 @@ dcnsio.createANEndpoint(execution)</bpmn:script>
def dcnsio = new DoAllocateNSIandNSSI()
dcnsio.createCNEndpoint(execution)</bpmn:script>
</bpmn:scriptTask>
+ <bpmn:intermediateCatchEvent id="Event_0mxnhe0" name="Create Tn FH SliceProfile">
+ <bpmn:outgoing>Flow_19564hj</bpmn:outgoing>
+ <bpmn:linkEventDefinition id="LinkEventDefinition_03yk2ml" name="CreateTnFHSliceProfile" />
+ </bpmn:intermediateCatchEvent>
+ <bpmn:scriptTask id="Activity_0z1ympd" name="Create TN (FH) Slice Profile" scriptFormat="groovy">
+ <bpmn:incoming>Flow_19564hj</bpmn:incoming>
+ <bpmn:outgoing>Flow_1j649ha</bpmn:outgoing>
+ <bpmn:script>import org.onap.so.bpmn.infrastructure.scripts.*
+def dcnsio = new DoAllocateNSIandNSSI()
+dcnsio.createTnFHSliceProfileInstance(execution)</bpmn:script>
+ </bpmn:scriptTask>
+ <bpmn:scriptTask id="Activity_1xwl7x0" name="Create TN(FH) Slice Profile" scriptFormat="groovy">
+ <bpmn:incoming>Flow_1j649ha</bpmn:incoming>
+ <bpmn:outgoing>Flow_1hhipma</bpmn:outgoing>
+ <bpmn:script>import org.onap.so.bpmn.infrastructure.scripts.*
+def dcnsio = new DoAllocateNSIandNSSI()
+dcnsio.createTnFHSliceProfile(execution)</bpmn:script>
+ </bpmn:scriptTask>
+ <bpmn:scriptTask id="Activity_14td7ux" name="prepare Allocate Tn-FH Nssi" scriptFormat="groovy">
+ <bpmn:incoming>Flow_1hhipma</bpmn:incoming>
+ <bpmn:outgoing>Flow_00n25jt</bpmn:outgoing>
+ <bpmn:script>import org.onap.so.bpmn.infrastructure.scripts.*
+def dcnsio = new DoAllocateNSIandNSSI()
+dcnsio.prepareAllocateTnFHNssi(execution)</bpmn:script>
+ </bpmn:scriptTask>
+ <bpmn:callActivity id="Activity_129ztck" name="Call DoAllocateNSSI(TN)" calledElement="DoAllocateNSSI">
+ <bpmn:extensionElements>
+ <camunda:in source="msoRequestId" target="msoRequestId" />
+ <camunda:out source="WorkflowException" target="WorkflowException" />
+ <camunda:in source="nsstInput" target="nsstInput" />
+ <camunda:in source="globalSubscriberId" target="globalSubscriberId" />
+ <camunda:in source="subscriptionServiceType" target="subscriptionServiceType" />
+ <camunda:in source="uuiRequest" target="uuiRequest" />
+ <camunda:in source="sliceTaskParams" target="sliceTaskParams" />
+ <camunda:in source="taskId" target="CSSOT_taskId" />
+ <camunda:in source="taskName" target="CSSOT_name" />
+ <camunda:in source="taskStatus" target="CSSOT_status" />
+ <camunda:in source="isManual" target="CSSOT_isManual" />
+ <camunda:in source="isNSIOptionAvailable" target="isNSIOptionAvailable" />
+ <camunda:in source="tnFHSliceTaskInfo" target="sliceTaskInfo" />
+ <camunda:out source="nssiAllocateResult" target="tnFHNssiAllocateResult" />
+ <camunda:in source="TnFHAllocateNssiNbiRequest" target="nbiRequest" />
+ <camunda:out source="sliceTaskParams" target="sliceTaskParams" />
+ <camunda:in source="tnFHSubnetType" target="subnetType" />
+ </bpmn:extensionElements>
+ <bpmn:incoming>Flow_00n25jt</bpmn:incoming>
+ <bpmn:outgoing>Flow_1b3a4vn</bpmn:outgoing>
+ </bpmn:callActivity>
+ <bpmn:scriptTask id="Activity_0e7x5rm" name="Update relationship between NSI and NSSI" scriptFormat="groovy">
+ <bpmn:incoming>Flow_1b3a4vn</bpmn:incoming>
+ <bpmn:outgoing>Flow_0dpbero</bpmn:outgoing>
+ <bpmn:script>import org.onap.so.bpmn.infrastructure.scripts.*
+def dcnsio = new DoAllocateNSIandNSSI()
+dcnsio.updateTnFHRelationship(execution)</bpmn:script>
+ </bpmn:scriptTask>
+ <bpmn:sequenceFlow id="Flow_19564hj" sourceRef="Event_0mxnhe0" targetRef="Activity_0z1ympd" />
+ <bpmn:sequenceFlow id="Flow_1j649ha" sourceRef="Activity_0z1ympd" targetRef="Activity_1xwl7x0" />
+ <bpmn:sequenceFlow id="Flow_1hhipma" sourceRef="Activity_1xwl7x0" targetRef="Activity_14td7ux" />
+ <bpmn:sequenceFlow id="Flow_00n25jt" sourceRef="Activity_14td7ux" targetRef="Activity_129ztck" />
+ <bpmn:sequenceFlow id="Flow_1b3a4vn" sourceRef="Activity_129ztck" targetRef="Activity_0e7x5rm" />
+ <bpmn:intermediateCatchEvent id="Event_0grj24z" name="Create Tn MH SliceProfile">
+ <bpmn:outgoing>Flow_0bu5pc9</bpmn:outgoing>
+ <bpmn:linkEventDefinition id="LinkEventDefinition_0vmyjtc" name="CreateTnMHSliceProfile" />
+ </bpmn:intermediateCatchEvent>
+ <bpmn:scriptTask id="Activity_0zlfgf5" name="Create TN (MH) Slice Profile" scriptFormat="groovy">
+ <bpmn:incoming>Flow_0bu5pc9</bpmn:incoming>
+ <bpmn:outgoing>Flow_04gnit7</bpmn:outgoing>
+ <bpmn:script>import org.onap.so.bpmn.infrastructure.scripts.*
+def dcnsio = new DoAllocateNSIandNSSI()
+dcnsio.createTnMHSliceProfileInstance(execution)</bpmn:script>
+ </bpmn:scriptTask>
+ <bpmn:scriptTask id="Activity_0j9tjaf" name="Create TN(MH) Slice Profile" scriptFormat="groovy">
+ <bpmn:incoming>Flow_04gnit7</bpmn:incoming>
+ <bpmn:outgoing>Flow_1i02ybs</bpmn:outgoing>
+ <bpmn:script>import org.onap.so.bpmn.infrastructure.scripts.*
+def dcnsio = new DoAllocateNSIandNSSI()
+dcnsio.createTnMHSliceProfile(execution)</bpmn:script>
+ </bpmn:scriptTask>
+ <bpmn:scriptTask id="Activity_147twno" name="prepare Allocate Tn-MH Nssi" scriptFormat="groovy">
+ <bpmn:incoming>Flow_1i02ybs</bpmn:incoming>
+ <bpmn:outgoing>Flow_0shgflm</bpmn:outgoing>
+ <bpmn:script>import org.onap.so.bpmn.infrastructure.scripts.*
+def dcnsio = new DoAllocateNSIandNSSI()
+dcnsio.prepareAllocateTnMHNssi(execution)</bpmn:script>
+ </bpmn:scriptTask>
+ <bpmn:callActivity id="Activity_0fvj9vy" name="Call DoAllocateNSSI(TN)" calledElement="DoAllocateNSSI">
+ <bpmn:extensionElements>
+ <camunda:in source="msoRequestId" target="msoRequestId" />
+ <camunda:out source="WorkflowException" target="WorkflowException" />
+ <camunda:in source="nsstInput" target="nsstInput" />
+ <camunda:in source="globalSubscriberId" target="globalSubscriberId" />
+ <camunda:in source="subscriptionServiceType" target="subscriptionServiceType" />
+ <camunda:in source="uuiRequest" target="uuiRequest" />
+ <camunda:in source="sliceTaskParams" target="sliceTaskParams" />
+ <camunda:in source="taskId" target="CSSOT_taskId" />
+ <camunda:in source="taskName" target="CSSOT_name" />
+ <camunda:in source="taskStatus" target="CSSOT_status" />
+ <camunda:in source="isManual" target="CSSOT_isManual" />
+ <camunda:in source="isNSIOptionAvailable" target="isNSIOptionAvailable" />
+ <camunda:in source="tnMHSliceTaskInfo" target="sliceTaskInfo" />
+ <camunda:out source="nssiAllocateResult" target="tnMHNssiAllocateResult" />
+ <camunda:in source="TnMHAllocateNssiNbiRequest" target="nbiRequest" />
+ <camunda:out source="sliceTaskParams" target="sliceTaskParams" />
+ <camunda:in source="tnMHSubnetType" target="subnetType" />
+ </bpmn:extensionElements>
+ <bpmn:incoming>Flow_0shgflm</bpmn:incoming>
+ <bpmn:outgoing>Flow_05lgxne</bpmn:outgoing>
+ </bpmn:callActivity>
+ <bpmn:scriptTask id="Activity_08n2y6k" name="Update relationship between NSI and NSSI" scriptFormat="groovy">
+ <bpmn:incoming>Flow_05lgxne</bpmn:incoming>
+ <bpmn:outgoing>Flow_0imtsjm</bpmn:outgoing>
+ <bpmn:script>import org.onap.so.bpmn.infrastructure.scripts.*
+def dcnsio = new DoAllocateNSIandNSSI()
+dcnsio.updateTnMHRelationship(execution)</bpmn:script>
+ </bpmn:scriptTask>
+ <bpmn:sequenceFlow id="Flow_0bu5pc9" sourceRef="Event_0grj24z" targetRef="Activity_0zlfgf5" />
+ <bpmn:sequenceFlow id="Flow_04gnit7" sourceRef="Activity_0zlfgf5" targetRef="Activity_0j9tjaf" />
+ <bpmn:sequenceFlow id="Flow_1i02ybs" sourceRef="Activity_0j9tjaf" targetRef="Activity_147twno" />
+ <bpmn:sequenceFlow id="Flow_0shgflm" sourceRef="Activity_147twno" targetRef="Activity_0fvj9vy" />
+ <bpmn:sequenceFlow id="Flow_05lgxne" sourceRef="Activity_0fvj9vy" targetRef="Activity_08n2y6k" />
+ <bpmn:sequenceFlow id="Flow_0imtsjm" sourceRef="Activity_08n2y6k" targetRef="Event_09ptj1a" />
+ <bpmn:intermediateThrowEvent id="Event_0th2geo" name="GoTo Create Tn MH SliceProfile">
+ <bpmn:incoming>Flow_0dpbero</bpmn:incoming>
+ <bpmn:linkEventDefinition id="LinkEventDefinition_18xcdzv" name="CreateTnMHSliceProfile" />
+ </bpmn:intermediateThrowEvent>
+ <bpmn:sequenceFlow id="Flow_0dpbero" sourceRef="Activity_0e7x5rm" targetRef="Event_0th2geo" />
+ <bpmn:intermediateThrowEvent id="Event_09ptj1a" name="GoTo Create Tn SliceProfile">
+ <bpmn:incoming>Flow_0imtsjm</bpmn:incoming>
+ <bpmn:linkEventDefinition id="LinkEventDefinition_0pcw91e" name="CreateTnSliceProfile" />
+ </bpmn:intermediateThrowEvent>
+ <bpmn:exclusiveGateway id="Gateway_0tpcoai" name="Is FH/MH need to be process?">
+ <bpmn:incoming>SequenceFlow_0ax2c4p</bpmn:incoming>
+ <bpmn:outgoing>Flow_0ehx22x</bpmn:outgoing>
+ <bpmn:outgoing>Flow_13i03hb</bpmn:outgoing>
+ </bpmn:exclusiveGateway>
+ <bpmn:intermediateThrowEvent id="Event_1hemevb" name="GoTo Create Tn FH SliceProfile">
+ <bpmn:incoming>Flow_13i03hb</bpmn:incoming>
+ <bpmn:linkEventDefinition id="LinkEventDefinition_1rscmuw" name="CreateTnFHSliceProfile" />
+ </bpmn:intermediateThrowEvent>
+ <bpmn:sequenceFlow id="Flow_0ehx22x" sourceRef="Gateway_0tpcoai" targetRef="EndEvent_02c8wsp" />
+ <bpmn:sequenceFlow id="Flow_13i03hb" name="yes" sourceRef="Gateway_0tpcoai" targetRef="Event_1hemevb">
+ <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{(execution.getVariable("processFHandMH" ) == true)}</bpmn:conditionExpression>
+ </bpmn:sequenceFlow>
</bpmn:process>
<bpmn:message id="Message_1i10pf1" name="Message_2mc69tg" />
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="DoAllocateNSIandNSSI">
+ <bpmndi:BPMNEdge id="SequenceFlow_17r1oa0_di" bpmnElement="SequenceFlow_17r1oa0">
+ <di:waypoint x="750" y="630" />
+ <di:waypoint x="830" y="630" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1rwy8q7_di" bpmnElement="SequenceFlow_1rwy8q7">
+ <di:waypoint x="750" y="440" />
+ <di:waypoint x="830" y="440" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1wffel4_di" bpmnElement="SequenceFlow_1wffel4">
+ <di:waypoint x="580" y="630" />
+ <di:waypoint x="650" y="630" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_0cwbtmr_di" bpmnElement="SequenceFlow_0cwbtmr">
+ <di:waypoint x="930" y="630" />
+ <di:waypoint x="1030" y="630" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_0npsyye_di" bpmnElement="SequenceFlow_0npsyye">
+ <di:waypoint x="930" y="440" />
+ <di:waypoint x="1030" y="440" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_0jqxxjq_di" bpmnElement="SequenceFlow_0jqxxjq">
+ <di:waypoint x="1310" y="630" />
+ <di:waypoint x="1430" y="630" />
+ <di:waypoint x="1430" y="555" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1l74seh_di" bpmnElement="SequenceFlow_1l74seh">
+ <di:waypoint x="1130" y="630" />
+ <di:waypoint x="1210" y="630" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_0xx5bwa_di" bpmnElement="SequenceFlow_0xx5bwa">
+ <di:waypoint x="1310" y="440" />
+ <di:waypoint x="1430" y="440" />
+ <di:waypoint x="1430" y="505" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_0ax2c4p_di" bpmnElement="SequenceFlow_0ax2c4p">
+ <di:waypoint x="1455" y="530" />
+ <di:waypoint x="1505" y="530" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_0zbd2tq_di" bpmnElement="SequenceFlow_0zbd2tq">
+ <di:waypoint x="580" y="440" />
+ <di:waypoint x="650" y="440" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_05ovikm_di" bpmnElement="SequenceFlow_05ovikm">
+ <di:waypoint x="1070" y="140" />
+ <di:waypoint x="1412" y="140" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_0t0wddg_di" bpmnElement="SequenceFlow_0t0wddg">
+ <di:waypoint x="1030" y="260" />
+ <di:waypoint x="1430" y="260" />
+ <di:waypoint x="1430" y="158" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1xb5nx1_di" bpmnElement="SequenceFlow_1xb5nx1">
+ <di:waypoint x="1130" y="440" />
+ <di:waypoint x="1210" y="440" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_0f36cu2_di" bpmnElement="SequenceFlow_0f36cu2">
+ <di:waypoint x="410" y="630" />
+ <di:waypoint x="480" y="630" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1hfjn79_di" bpmnElement="SequenceFlow_1hfjn79">
+ <di:waypoint x="410" y="440" />
+ <di:waypoint x="480" y="440" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_0k5iu2n_di" bpmnElement="SequenceFlow_0k5iu2n">
+ <di:waypoint x="264" y="545" />
+ <di:waypoint x="264" y="630" />
+ <di:waypoint x="310" y="630" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1m68yca_di" bpmnElement="SequenceFlow_1m68yca">
+ <di:waypoint x="264" y="495" />
+ <di:waypoint x="264" y="440" />
+ <di:waypoint x="310" y="440" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_0ct8yh4_di" bpmnElement="SequenceFlow_0ct8yh4">
+ <di:waypoint x="174" y="520" />
+ <di:waypoint x="239" y="520" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_03ye8m4_di" bpmnElement="SequenceFlow_03ye8m4">
+ <di:waypoint x="634" y="165" />
+ <di:waypoint x="634" y="260" />
+ <di:waypoint x="930" y="260" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1k3cspv_di" bpmnElement="SequenceFlow_1k3cspv">
+ <di:waypoint x="900" y="140" />
+ <di:waypoint x="970" y="140" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_0c986i9_di" bpmnElement="SequenceFlow_0c986i9">
+ <di:waypoint x="659" y="140" />
+ <di:waypoint x="800" y="140" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1ggo6s5_di" bpmnElement="SequenceFlow_1ggo6s5">
+ <di:waypoint x="504" y="140" />
+ <di:waypoint x="609" y="140" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_00aukg6_di" bpmnElement="SequenceFlow_00aukg6">
+ <di:waypoint x="324" y="140" />
+ <di:waypoint x="404" y="140" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_0xgfj7z_di" bpmnElement="SequenceFlow_0xgfj7z">
+ <di:waypoint x="174" y="140" />
+ <di:waypoint x="224" y="140" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_19564hj_di" bpmnElement="Flow_19564hj">
+ <di:waypoint x="174" y="760" />
+ <di:waypoint x="310" y="760" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_1j649ha_di" bpmnElement="Flow_1j649ha">
+ <di:waypoint x="410" y="760" />
+ <di:waypoint x="530" y="760" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_1hhipma_di" bpmnElement="Flow_1hhipma">
+ <di:waypoint x="630" y="760" />
+ <di:waypoint x="730" y="760" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_00n25jt_di" bpmnElement="Flow_00n25jt">
+ <di:waypoint x="830" y="760" />
+ <di:waypoint x="930" y="760" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_1b3a4vn_di" bpmnElement="Flow_1b3a4vn">
+ <di:waypoint x="1030" y="760" />
+ <di:waypoint x="1140" y="760" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_0dpbero_di" bpmnElement="Flow_0dpbero">
+ <di:waypoint x="1240" y="760" />
+ <di:waypoint x="1422" y="760" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_0paqrtx_di" bpmnElement="SequenceFlow_0paqrtx">
+ <di:waypoint x="174" y="1060" />
+ <di:waypoint x="310" y="1060" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1d48cil_di" bpmnElement="SequenceFlow_1d48cil">
+ <di:waypoint x="410" y="1060" />
+ <di:waypoint x="530" y="1060" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_00dexhy_di" bpmnElement="SequenceFlow_00dexhy">
+ <di:waypoint x="630" y="1060" />
+ <di:waypoint x="730" y="1060" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_01isn2q_di" bpmnElement="SequenceFlow_01isn2q">
+ <di:waypoint x="830" y="1060" />
+ <di:waypoint x="930" y="1060" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1omynpt_di" bpmnElement="SequenceFlow_1omynpt">
+ <di:waypoint x="1030" y="1060" />
+ <di:waypoint x="1140" y="1060" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_150xio1_di" bpmnElement="SequenceFlow_150xio1">
+ <di:waypoint x="1240" y="1060" />
+ <di:waypoint x="1412" y="1060" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_0bu5pc9_di" bpmnElement="Flow_0bu5pc9">
+ <di:waypoint x="174" y="920" />
+ <di:waypoint x="310" y="920" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_04gnit7_di" bpmnElement="Flow_04gnit7">
+ <di:waypoint x="410" y="920" />
+ <di:waypoint x="530" y="920" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_1i02ybs_di" bpmnElement="Flow_1i02ybs">
+ <di:waypoint x="630" y="920" />
+ <di:waypoint x="730" y="920" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_0shgflm_di" bpmnElement="Flow_0shgflm">
+ <di:waypoint x="830" y="920" />
+ <di:waypoint x="930" y="920" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_05lgxne_di" bpmnElement="Flow_05lgxne">
+ <di:waypoint x="1030" y="920" />
+ <di:waypoint x="1140" y="920" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_0imtsjm_di" bpmnElement="Flow_0imtsjm">
+ <di:waypoint x="1240" y="920" />
+ <di:waypoint x="1432" y="920" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_0ehx22x_di" bpmnElement="Flow_0ehx22x">
+ <di:waypoint x="1555" y="530" />
+ <di:waypoint x="1602" y="530" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="1572" y="512" width="13" height="14" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_13i03hb_di" bpmnElement="Flow_13i03hb">
+ <di:waypoint x="1530" y="555" />
+ <di:waypoint x="1530" y="620" />
+ <di:waypoint x="1602" y="620" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="1537" y="585" width="17" height="14" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="StartEvent_1ym3sha_di" bpmnElement="StartEvent_1ym3sha">
<dc:Bounds x="138" y="122" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="144" y="165" width="25" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="SequenceFlow_0xgfj7z_di" bpmnElement="SequenceFlow_0xgfj7z">
- <di:waypoint x="174" y="140" />
- <di:waypoint x="224" y="140" />
- </bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="ScriptTask_0q0td74_di" bpmnElement="Task_027u6m6">
<dc:Bounds x="224" y="100" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="ScriptTask_0qorxd9_di" bpmnElement="ScriptTask_0qorxd9">
<dc:Bounds x="404" y="100" width="100" height="80" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="SequenceFlow_00aukg6_di" bpmnElement="SequenceFlow_00aukg6">
- <di:waypoint x="324" y="140" />
- <di:waypoint x="404" y="140" />
- </bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="ExclusiveGateway_00pt1ek_di" bpmnElement="ExclusiveGateway_00pt1ek" isMarkerVisible="true">
<dc:Bounds x="609" y="115" width="50" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="604" y="78" width="59" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="SequenceFlow_1ggo6s5_di" bpmnElement="SequenceFlow_1ggo6s5">
- <di:waypoint x="504" y="140" />
- <di:waypoint x="609" y="140" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_0c986i9_di" bpmnElement="SequenceFlow_0c986i9">
- <di:waypoint x="659" y="140" />
- <di:waypoint x="800" y="140" />
- </bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="ScriptTask_1tizl6b_di" bpmnElement="ScriptTask_1tizl6b">
<dc:Bounds x="800" y="100" width="100" height="80" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="SequenceFlow_1k3cspv_di" bpmnElement="SequenceFlow_1k3cspv">
- <di:waypoint x="900" y="140" />
- <di:waypoint x="970" y="140" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_03ye8m4_di" bpmnElement="SequenceFlow_03ye8m4">
- <di:waypoint x="634" y="165" />
- <di:waypoint x="634" y="260" />
- <di:waypoint x="930" y="260" />
- </bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="IntermediateThrowEvent_0zuxkap_di" bpmnElement="IntermediateThrowEvent_0fx1nyj">
<dc:Bounds x="1412" y="122" width="36" height="36" />
<bpmndi:BPMNLabel>
@@ -336,184 +643,149 @@ dcnsio.createCNEndpoint(execution)</bpmn:script>
<dc:Bounds x="126" y="545" width="60" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="SequenceFlow_0ct8yh4_di" bpmnElement="SequenceFlow_0ct8yh4">
- <di:waypoint x="174" y="520" />
- <di:waypoint x="239" y="520" />
- </bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="ParallelGateway_0q9h79n_di" bpmnElement="ExclusiveGateway_00ufetn">
<dc:Bounds x="239" y="495" width="50" height="50" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="SequenceFlow_1m68yca_di" bpmnElement="SequenceFlow_1m68yca">
- <di:waypoint x="264" y="495" />
- <di:waypoint x="264" y="440" />
- <di:waypoint x="310" y="440" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_0k5iu2n_di" bpmnElement="SequenceFlow_0k5iu2n">
- <di:waypoint x="264" y="545" />
- <di:waypoint x="264" y="630" />
- <di:waypoint x="310" y="630" />
- </bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="CallActivity_1yh9tiq_di" bpmnElement="CallActivity_1yh9tiq">
<dc:Bounds x="1030" y="400" width="100" height="80" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="SequenceFlow_1hfjn79_di" bpmnElement="SequenceFlow_1hfjn79">
- <di:waypoint x="410" y="440" />
- <di:waypoint x="480" y="440" />
- </bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="CallActivity_1ixah3o_di" bpmnElement="CallActivity_1ixah3o">
<dc:Bounds x="1030" y="590" width="100" height="80" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="SequenceFlow_0f36cu2_di" bpmnElement="SequenceFlow_0f36cu2">
- <di:waypoint x="410" y="630" />
- <di:waypoint x="480" y="630" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_1xb5nx1_di" bpmnElement="SequenceFlow_1xb5nx1">
- <di:waypoint x="1130" y="440" />
- <di:waypoint x="1210" y="440" />
- </bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="ParallelGateway_15vgf7c_di" bpmnElement="ExclusiveGateway_19ru3hp">
<dc:Bounds x="1405" y="505" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="ScriptTask_07sgklo_di" bpmnElement="ScriptTask_07sgklo">
<dc:Bounds x="930" y="220" width="100" height="80" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="SequenceFlow_0t0wddg_di" bpmnElement="SequenceFlow_0t0wddg">
- <di:waypoint x="1030" y="260" />
- <di:waypoint x="1430" y="260" />
- <di:waypoint x="1430" y="158" />
- </bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="ScriptTask_1r6kuwy_di" bpmnElement="ScriptTask_1r6kuwy">
<dc:Bounds x="970" y="100" width="100" height="80" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="SequenceFlow_05ovikm_di" bpmnElement="SequenceFlow_05ovikm">
- <di:waypoint x="1070" y="140" />
- <di:waypoint x="1412" y="140" />
- </bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="ScriptTask_17cq3xj_di" bpmnElement="Task_1tv7jy5">
<dc:Bounds x="310" y="400" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="ScriptTask_1r2li91_di" bpmnElement="ScriptTask_1r2li91">
<dc:Bounds x="480" y="400" width="100" height="80" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="SequenceFlow_0zbd2tq_di" bpmnElement="SequenceFlow_0zbd2tq">
- <di:waypoint x="580" y="440" />
- <di:waypoint x="650" y="440" />
- </bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="ScriptTask_01n5nmt_di" bpmnElement="Task_1en3luv">
<dc:Bounds x="310" y="590" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="ScriptTask_0juh1xy_di" bpmnElement="Task_1g8n8iz">
<dc:Bounds x="480" y="590" width="100" height="80" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="SequenceFlow_0ax2c4p_di" bpmnElement="SequenceFlow_0ax2c4p">
- <di:waypoint x="1455" y="530" />
- <di:waypoint x="1512" y="530" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNShape id="ScriptTask_0stnvp3_di" bpmnElement="ScriptTask_0stnvp3">
- <dc:Bounds x="310" y="840" width="100" height="80" />
+ <bpmndi:BPMNShape id="ScriptTask_0mls87v_di" bpmnElement="ScriptTask_0mls87v">
+ <dc:Bounds x="1210" y="400" width="100" height="80" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="ScriptTask_1f4o46q_di" bpmnElement="ScriptTask_1f4o46q">
- <dc:Bounds x="530" y="840" width="100" height="80" />
+ <bpmndi:BPMNShape id="ScriptTask_0z9x5uh_di" bpmnElement="ScriptTask_0z9x5uh">
+ <dc:Bounds x="1210" y="590" width="100" height="80" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="CallActivity_0b28wlb_di" bpmnElement="CallActivity_0b28wlb">
- <dc:Bounds x="930" y="840" width="100" height="80" />
+ <bpmndi:BPMNShape id="ScriptTask_0s8vhha_di" bpmnElement="ScriptTask_0s8vhha">
+ <dc:Bounds x="830" y="400" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="ScriptTask_0z0ec5b_di" bpmnElement="ScriptTask_0z0ec5b">
+ <dc:Bounds x="830" y="590" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="ScriptTask_0x8r537_di" bpmnElement="Task_0dkfe9n">
+ <dc:Bounds x="650" y="400" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="ScriptTask_0mlyx1u_di" bpmnElement="Task_0fwhsq2">
+ <dc:Bounds x="650" y="590" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Event_0mxnhe0_di" bpmnElement="Event_0mxnhe0">
+ <dc:Bounds x="138" y="742" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="124" y="785" width="67" height="27" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_0z1ympd_di" bpmnElement="Activity_0z1ympd">
+ <dc:Bounds x="310" y="720" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_1xwl7x0_di" bpmnElement="Activity_1xwl7x0">
+ <dc:Bounds x="530" y="720" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_14td7ux_di" bpmnElement="Activity_14td7ux">
+ <dc:Bounds x="730" y="720" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_129ztck_di" bpmnElement="Activity_129ztck">
+ <dc:Bounds x="930" y="720" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_0e7x5rm_di" bpmnElement="Activity_0e7x5rm">
+ <dc:Bounds x="1140" y="720" width="100" height="80" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="SequenceFlow_1d48cil_di" bpmnElement="SequenceFlow_1d48cil">
- <di:waypoint x="410" y="880" />
- <di:waypoint x="530" y="880" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_00dexhy_di" bpmnElement="SequenceFlow_00dexhy">
- <di:waypoint x="630" y="880" />
- <di:waypoint x="730" y="880" />
- </bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="IntermediateCatchEvent_08wpvhs_di" bpmnElement="IntermediateCatchEvent_08wpvhs">
- <dc:Bounds x="138" y="862" width="36" height="36" />
+ <dc:Bounds x="138" y="1042" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="129" y="905" width="56" height="27" />
+ <dc:Bounds x="129" y="1085" width="56" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="SequenceFlow_0paqrtx_di" bpmnElement="SequenceFlow_0paqrtx">
- <di:waypoint x="174" y="880" />
- <di:waypoint x="310" y="880" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNShape id="ScriptTask_0sssiii_di" bpmnElement="ScriptTask_0sssiii">
- <dc:Bounds x="1140" y="840" width="100" height="80" />
+ <bpmndi:BPMNShape id="ScriptTask_0stnvp3_di" bpmnElement="ScriptTask_0stnvp3">
+ <dc:Bounds x="310" y="1020" width="100" height="80" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="SequenceFlow_150xio1_di" bpmnElement="SequenceFlow_150xio1">
- <di:waypoint x="1240" y="880" />
- <di:waypoint x="1412" y="880" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNShape id="ScriptTask_0mls87v_di" bpmnElement="ScriptTask_0mls87v">
- <dc:Bounds x="1210" y="400" width="100" height="80" />
+ <bpmndi:BPMNShape id="ScriptTask_1f4o46q_di" bpmnElement="ScriptTask_1f4o46q">
+ <dc:Bounds x="530" y="1020" width="100" height="80" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="SequenceFlow_0xx5bwa_di" bpmnElement="SequenceFlow_0xx5bwa">
- <di:waypoint x="1310" y="440" />
- <di:waypoint x="1430" y="440" />
- <di:waypoint x="1430" y="505" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNShape id="ScriptTask_0z9x5uh_di" bpmnElement="ScriptTask_0z9x5uh">
- <dc:Bounds x="1210" y="590" width="100" height="80" />
+ <bpmndi:BPMNShape id="ScriptTask_0ci5g6y_di" bpmnElement="ScriptTask_0ci5g6y">
+ <dc:Bounds x="730" y="1020" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="CallActivity_0b28wlb_di" bpmnElement="CallActivity_0b28wlb">
+ <dc:Bounds x="930" y="1020" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="ScriptTask_0sssiii_di" bpmnElement="ScriptTask_0sssiii">
+ <dc:Bounds x="1140" y="1020" width="100" height="80" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="SequenceFlow_1l74seh_di" bpmnElement="SequenceFlow_1l74seh">
- <di:waypoint x="1130" y="630" />
- <di:waypoint x="1210" y="630" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_0jqxxjq_di" bpmnElement="SequenceFlow_0jqxxjq">
- <di:waypoint x="1310" y="630" />
- <di:waypoint x="1430" y="630" />
- <di:waypoint x="1430" y="555" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_1omynpt_di" bpmnElement="SequenceFlow_1omynpt">
- <di:waypoint x="1030" y="880" />
- <di:waypoint x="1140" y="880" />
- </bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="EndEvent_0elqlhv_di" bpmnElement="EndEvent_0elqlhv">
- <dc:Bounds x="1412" y="862" width="36" height="36" />
+ <dc:Bounds x="1412" y="1042" width="36" height="36" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="IntermediateThrowEvent_0gz4vi6_di" bpmnElement="EndEvent_02c8wsp">
- <dc:Bounds x="1512" y="512" width="36" height="36" />
+ <bpmndi:BPMNShape id="Event_0grj24z_di" bpmnElement="Event_0grj24z">
+ <dc:Bounds x="138" y="902" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="1492" y="555" width="79" height="27" />
+ <dc:Bounds x="123" y="945" width="70" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="ScriptTask_0s8vhha_di" bpmnElement="ScriptTask_0s8vhha">
- <dc:Bounds x="830" y="400" width="100" height="80" />
+ <bpmndi:BPMNShape id="Activity_0zlfgf5_di" bpmnElement="Activity_0zlfgf5">
+ <dc:Bounds x="310" y="880" width="100" height="80" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="SequenceFlow_0npsyye_di" bpmnElement="SequenceFlow_0npsyye">
- <di:waypoint x="930" y="440" />
- <di:waypoint x="1030" y="440" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNShape id="ScriptTask_0z0ec5b_di" bpmnElement="ScriptTask_0z0ec5b">
- <dc:Bounds x="830" y="590" width="100" height="80" />
+ <bpmndi:BPMNShape id="Activity_0j9tjaf_di" bpmnElement="Activity_0j9tjaf">
+ <dc:Bounds x="530" y="880" width="100" height="80" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="SequenceFlow_0cwbtmr_di" bpmnElement="SequenceFlow_0cwbtmr">
- <di:waypoint x="930" y="630" />
- <di:waypoint x="1030" y="630" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_1wffel4_di" bpmnElement="SequenceFlow_1wffel4">
- <di:waypoint x="580" y="630" />
- <di:waypoint x="650" y="630" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNShape id="ScriptTask_0ci5g6y_di" bpmnElement="ScriptTask_0ci5g6y">
- <dc:Bounds x="730" y="840" width="100" height="80" />
+ <bpmndi:BPMNShape id="Activity_147twno_di" bpmnElement="Activity_147twno">
+ <dc:Bounds x="730" y="880" width="100" height="80" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="SequenceFlow_01isn2q_di" bpmnElement="SequenceFlow_01isn2q">
- <di:waypoint x="830" y="880" />
- <di:waypoint x="930" y="880" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_1rwy8q7_di" bpmnElement="SequenceFlow_1rwy8q7">
- <di:waypoint x="750" y="440" />
- <di:waypoint x="830" y="440" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNShape id="ScriptTask_0x8r537_di" bpmnElement="Task_0dkfe9n">
- <dc:Bounds x="650" y="400" width="100" height="80" />
+ <bpmndi:BPMNShape id="Activity_0fvj9vy_di" bpmnElement="Activity_0fvj9vy">
+ <dc:Bounds x="930" y="880" width="100" height="80" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="SequenceFlow_17r1oa0_di" bpmnElement="SequenceFlow_17r1oa0">
- <di:waypoint x="750" y="630" />
- <di:waypoint x="830" y="630" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNShape id="ScriptTask_0mlyx1u_di" bpmnElement="Task_0fwhsq2">
- <dc:Bounds x="650" y="590" width="100" height="80" />
+ <bpmndi:BPMNShape id="Activity_08n2y6k_di" bpmnElement="Activity_08n2y6k">
+ <dc:Bounds x="1140" y="880" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Event_0th2geo_di" bpmnElement="Event_0th2geo">
+ <dc:Bounds x="1422" y="742" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="1402" y="785" width="79" height="27" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Event_09ptj1a_di" bpmnElement="Event_09ptj1a">
+ <dc:Bounds x="1432" y="902" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="1412" y="945" width="79" height="27" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Gateway_0tpcoai_di" bpmnElement="Gateway_0tpcoai" isMarkerVisible="true">
+ <dc:Bounds x="1505" y="505" width="50" height="50" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="1488" y="468" width="87" height="27" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="IntermediateThrowEvent_0gz4vi6_di" bpmnElement="EndEvent_02c8wsp">
+ <dc:Bounds x="1602" y="512" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="1582" y="555" width="79" height="27" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Event_1hemevb_di" bpmnElement="Event_1hemevb">
+ <dc:Bounds x="1602" y="602" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="1582" y="645" width="79" height="27" />
+ </bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
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/SliceProfileAdapter.java b/common/src/main/java/org/onap/so/beans/nsmf/SliceProfileAdapter.java
index 81d64b592d..7cc940ddde 100644
--- a/common/src/main/java/org/onap/so/beans/nsmf/SliceProfileAdapter.java
+++ b/common/src/main/java/org/onap/so/beans/nsmf/SliceProfileAdapter.java
@@ -63,7 +63,7 @@ public class SliceProfileAdapter implements Serializable {
private int maxBandwidth;
@JsonProperty(value = "sST")
- private String sST;
+ private String sST = "embb";
@JsonProperty(value = "activityFactor")
private int activityFactor;
diff --git a/common/src/main/java/org/onap/so/beans/nsmf/SliceTaskParamsAdapter.java b/common/src/main/java/org/onap/so/beans/nsmf/SliceTaskParamsAdapter.java
index bfd4627b47..15dd2f791c 100644
--- a/common/src/main/java/org/onap/so/beans/nsmf/SliceTaskParamsAdapter.java
+++ b/common/src/main/java/org/onap/so/beans/nsmf/SliceTaskParamsAdapter.java
@@ -67,150 +67,7 @@ public class SliceTaskParamsAdapter implements Serializable {
private SliceTaskInfo<SliceProfileAdapter> anSliceTaskInfo = new SliceTaskInfo<>();
- @SuppressWarnings("unchecked")
- public void convertFromJson(String jsonString) throws IOException {
- ObjectMapper mapper = new ObjectMapper();
- Map<String, String> paramMap = (Map<String, String>) mapper.readValue(jsonString, Map.class);
-
- this.setServiceName(paramMap.get("ServiceName"));
- this.setServiceId(paramMap.get("ServiceId"));
- this.setNstId(paramMap.get("NSTId"));
- this.setNstName(paramMap.get("NSTName"));
- this.setSuggestNsiId(paramMap.get("suggestNSIId"));
- this.setSuggestNsiName(paramMap.get("suggestNSIName"));
-
- this.setServiceProfile(replaceHeader(paramMap, "ServiceProfile."));
-
- SliceProfileAdapter tnBHSliceProfile = mapper.readValue(
- mapper.writeValueAsString(replaceHeader(paramMap, "SliceProfile.TN.BH.")), SliceProfileAdapter.class);
- this.tnBHSliceTaskInfo.setSliceProfile(tnBHSliceProfile);
-
- SliceProfileAdapter tnMHSliceProfile = mapper.readValue(
- mapper.writeValueAsString(replaceHeader(paramMap, "SliceProfile.TN.MH.")), SliceProfileAdapter.class);
- this.tnMHSliceTaskInfo.setSliceProfile(tnMHSliceProfile);
-
- SliceProfileAdapter tnFHSliceProfile = mapper.readValue(
- mapper.writeValueAsString(replaceHeader(paramMap, "SliceProfile.TN.FH.")), SliceProfileAdapter.class);
- this.tnFHSliceTaskInfo.setSliceProfile(tnFHSliceProfile);
-
- SliceProfileAdapter cnSliceProfile = mapper.readValue(
- mapper.writeValueAsString(replaceHeader(paramMap, "SliceProfile.CN.")), SliceProfileAdapter.class);
- this.cnSliceTaskInfo.setSliceProfile(cnSliceProfile);
-
- SliceProfileAdapter anSliceProfile = mapper.readValue(
- mapper.writeValueAsString(replaceHeader(paramMap, "SliceProfile.AN.")), SliceProfileAdapter.class);
- this.anSliceTaskInfo.setSliceProfile(anSliceProfile);
-
- this.tnBHSliceTaskInfo.setSuggestNssiId(paramMap.get("TN.BH.SuggestNSSIId"));
- this.tnBHSliceTaskInfo.setSuggestNssiName(paramMap.get("TN.BH.SuggestNSSIName"));
- this.tnBHSliceTaskInfo.setProgress(paramMap.get("TN.BH.progress"));
- this.tnBHSliceTaskInfo.setStatus(paramMap.get("TN.BH.status"));
- this.tnBHSliceTaskInfo.setStatusDescription(paramMap.get("TN.BH.statusDescription"));
- this.tnBHSliceTaskInfo.setScriptName(paramMap.get("TN.BH.ScriptName"));
-
- this.tnMHSliceTaskInfo.setSuggestNssiId(paramMap.get("TN.MH.SuggestNSSIId"));
- this.tnMHSliceTaskInfo.setSuggestNssiName(paramMap.get("TN.MH.SuggestNSSIName"));
- this.tnMHSliceTaskInfo.setProgress(paramMap.get("TN.MH.progress"));
- this.tnMHSliceTaskInfo.setStatus(paramMap.get("TN.MH.status"));
- this.tnMHSliceTaskInfo.setStatusDescription(paramMap.get("TN.MH.statusDescription"));
- this.tnMHSliceTaskInfo.setScriptName(paramMap.get("TN.MH.ScriptName"));
-
- this.tnFHSliceTaskInfo.setSuggestNssiId(paramMap.get("TN.FH.SuggestNSSIId"));
- this.tnFHSliceTaskInfo.setSuggestNssiName(paramMap.get("TN.FH.SuggestNSSIName"));
- this.tnFHSliceTaskInfo.setProgress(paramMap.get("TN.FH.progress"));
- this.tnFHSliceTaskInfo.setStatus(paramMap.get("TN.FH.status"));
- this.tnFHSliceTaskInfo.setStatusDescription(paramMap.get("TN.FH.statusDescription"));
- this.tnFHSliceTaskInfo.setScriptName(paramMap.get("TN.FH.ScriptName"));
-
- this.cnSliceTaskInfo.setSuggestNssiId(paramMap.get("CN.SuggestNSSIId"));
- this.cnSliceTaskInfo.setSuggestNssiName(paramMap.get("CN.SuggestNSSIName"));
- this.cnSliceTaskInfo.setProgress(paramMap.get("CN.progress"));
- this.cnSliceTaskInfo.setStatus(paramMap.get("CN.status"));
- this.cnSliceTaskInfo.setStatusDescription(paramMap.get("CN.statusDescription"));
- this.cnSliceTaskInfo.setScriptName(paramMap.get("CN.ScriptName"));
-
- this.anSliceTaskInfo.setSuggestNssiId(paramMap.get("AN.SuggestNSSIId"));
- this.anSliceTaskInfo.setSuggestNssiName(paramMap.get("AN.SuggestNSSIName"));
- this.anSliceTaskInfo.setProgress(paramMap.get("AN.progress"));
- this.anSliceTaskInfo.setStatus(paramMap.get("AN.status"));
- this.anSliceTaskInfo.setStatusDescription(paramMap.get("AN.statusDescription"));
- this.anSliceTaskInfo.setScriptName(paramMap.get("AN.ScriptName"));
- }
-
- public String convertToJson() {
- JsonObject jsonObject = new JsonObject();
- jsonObject.addProperty("ServiceId", serviceId);
- jsonObject.addProperty("ServiceName", serviceName);
- jsonObject.addProperty("NSTId", nstId);
- jsonObject.addProperty("NSTName", nstName);
- jsonObject.addProperty("suggestNSIId", suggestNsiId);
- jsonObject.addProperty("suggestNSIName", suggestNsiName);
-
- for (Map.Entry<String, Object> entry : serviceProfile.entrySet()) {
- jsonObject.addProperty("ServiceProfile." + entry.getKey(), entry.getValue().toString());
- }
- Map<String, Object> sliceProfileAn = bean2Map(anSliceTaskInfo.getSliceProfile());
- for (Map.Entry<String, Object> entry : sliceProfileAn.entrySet()) {
- String value = entry.getValue() == null ? "" : entry.getValue().toString();
- jsonObject.addProperty("SliceProfile.AN." + entry.getKey(), value);
- }
- Map<String, Object> sliceProfileCn = bean2Map(cnSliceTaskInfo.getSliceProfile());
- for (Map.Entry<String, Object> entry : sliceProfileCn.entrySet()) {
- String value = entry.getValue() == null ? "" : entry.getValue().toString();
- jsonObject.addProperty("SliceProfile.CN." + entry.getKey(), value);
- }
- Map<String, Object> sliceProfileTnBH = bean2Map(tnBHSliceTaskInfo.getSliceProfile());
- for (Map.Entry<String, Object> entry : sliceProfileTnBH.entrySet()) {
- String value = entry.getValue() == null ? "" : entry.getValue().toString();
- jsonObject.addProperty("SliceProfile.TN.BH." + entry.getKey(), value);
- }
- Map<String, Object> sliceProfileTnMH = bean2Map(tnMHSliceTaskInfo.getSliceProfile());
- for (Map.Entry<String, Object> entry : sliceProfileTnMH.entrySet()) {
- String value = entry.getValue() == null ? "" : entry.getValue().toString();
- jsonObject.addProperty("SliceProfile.TN.MH." + entry.getKey(), value);
- }
- Map<String, Object> sliceProfileTnFH = bean2Map(tnFHSliceTaskInfo.getSliceProfile());
- for (Map.Entry<String, Object> entry : sliceProfileTnFH.entrySet()) {
- String value = entry.getValue() == null ? "" : entry.getValue().toString();
- jsonObject.addProperty("SliceProfile.TN.FH." + entry.getKey(), value);
- }
- jsonObject.addProperty("TN.BH.SuggestNSSIId", tnBHSliceTaskInfo.getSuggestNssiId());
- jsonObject.addProperty("TN.BH.SuggestNSSIName", tnBHSliceTaskInfo.getSuggestNssiName());
- jsonObject.addProperty("TN.BH.progress", tnBHSliceTaskInfo.getProgress());
- jsonObject.addProperty("TN.BH.status", tnBHSliceTaskInfo.getStatus());
- jsonObject.addProperty("TN.BH.statusDescription", tnBHSliceTaskInfo.getStatusDescription());
- jsonObject.addProperty("TN.BH.ScriptName", tnBHSliceTaskInfo.getScriptName());
-
- jsonObject.addProperty("TN.MH.SuggestNSSIId", tnMHSliceTaskInfo.getSuggestNssiId());
- jsonObject.addProperty("TN.MH.SuggestNSSIName", tnMHSliceTaskInfo.getSuggestNssiName());
- jsonObject.addProperty("TN.MH.progress", tnMHSliceTaskInfo.getProgress());
- jsonObject.addProperty("TN.MH.status", tnMHSliceTaskInfo.getStatus());
- jsonObject.addProperty("TN.MH.statusDescription", tnMHSliceTaskInfo.getStatusDescription());
- jsonObject.addProperty("TN.MH.ScriptName", tnMHSliceTaskInfo.getScriptName());
-
- jsonObject.addProperty("TN.FH.SuggestNSSIId", tnFHSliceTaskInfo.getSuggestNssiId());
- jsonObject.addProperty("TN.FH.SuggestNSSIName", tnFHSliceTaskInfo.getSuggestNssiName());
- jsonObject.addProperty("TN.FH.progress", tnFHSliceTaskInfo.getProgress());
- jsonObject.addProperty("TN.FH.status", tnFHSliceTaskInfo.getStatus());
- jsonObject.addProperty("TN.FH.statusDescription", tnFHSliceTaskInfo.getStatusDescription());
- jsonObject.addProperty("TN.FH.ScriptName", tnFHSliceTaskInfo.getScriptName());
-
- jsonObject.addProperty("CN.SuggestNSSIId", cnSliceTaskInfo.getSuggestNssiId());
- jsonObject.addProperty("CN.SuggestNSSIName", cnSliceTaskInfo.getSuggestNssiName());
- jsonObject.addProperty("CN.progress", cnSliceTaskInfo.getProgress());
- jsonObject.addProperty("CN.status", cnSliceTaskInfo.getStatus());
- jsonObject.addProperty("CN.statusDescription", cnSliceTaskInfo.getStatusDescription());
- jsonObject.addProperty("CN.ScriptName", cnSliceTaskInfo.getScriptName());
-
- jsonObject.addProperty("AN.SuggestNSSIId", anSliceTaskInfo.getSuggestNssiId());
- jsonObject.addProperty("AN.SuggestNSSIName", anSliceTaskInfo.getSuggestNssiName());
- jsonObject.addProperty("AN.progress", anSliceTaskInfo.getProgress());
- jsonObject.addProperty("AN.status", anSliceTaskInfo.getStatus());
- jsonObject.addProperty("AN.statusDescription", anSliceTaskInfo.getStatusDescription());
- jsonObject.addProperty("AN.ScriptName", anSliceTaskInfo.getScriptName());
-
- return jsonObject.toString();
- }
+ private SliceTaskInfo<SliceProfileAdapter> anNFSliceTaskInfo = new SliceTaskInfo<>();
/**
* change T t to {@link Map}
@@ -266,3 +123,4 @@ public class SliceTaskParamsAdapter implements Serializable {
return sliceProfileMap;
}
}
+
diff --git a/common/src/main/java/org/onap/so/beans/nsmf/oof/SubnetType.java b/common/src/main/java/org/onap/so/beans/nsmf/oof/SubnetType.java
index 536bb04fce..6f56a72632 100644
--- a/common/src/main/java/org/onap/so/beans/nsmf/oof/SubnetType.java
+++ b/common/src/main/java/org/onap/so/beans/nsmf/oof/SubnetType.java
@@ -26,6 +26,8 @@ import org.onap.so.beans.nsmf.NetworkType;
public enum SubnetType {
AN("AN", NetworkType.ACCESS),
+ AN_NF("AN_NF", NetworkType.ACCESS),
+
CN("CN", NetworkType.CORE),
TN_FH("TN_FH", NetworkType.TRANSPORT),
diff --git a/docs/api/apis/onap3gppServiceInstances-api.rst b/docs/api/apis/onap3gppServiceInstances-api.rst
new file mode 100644
index 0000000000..c7e9dd49b6
--- /dev/null
+++ b/docs/api/apis/onap3gppServiceInstances-api.rst
@@ -0,0 +1,302 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2021 Wipro Ltd.
+
+onap3gppServiceInstances API
+============================
+
+Create a 3GPP service instance
+++++++++++++++++++++++++++++++
+
++--------------------+------------------------------------------------------------+
+|Interface Definition|Description |
++====================+============================================================+
+|URI |/onap/so/infra/3gppservices/v1/allocate |
++--------------------+------------------------------------------------------------+
+|Operation Type |POST |
++--------------------+------------------------------------------------------------+
+|Content-Type |application/json |
++--------------------+------------------------------------------------------------+
+
+Request Body:
+
++---------------------+---------+-----------+----------------------------+-----------------------------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++=====================+=========+===========+============================+=========================================+
+|allocate3gppService |M |1 |allocate3gppService Object |Content of allocate3gppService object |
++---------------------+---------+-----------+----------------------------+-----------------------------------------+
+
+Allocate3gppService Object
+
++------------------------------+-----------------+-------------------------------------------------------------------+
+|Attribute |Content |Description |
++==============================+=================+===================================================================+
+|name |String |Name of the service to allocate |
++------------------------------+-----------------+-------------------------------------------------------------------+
+|modelInvariantUuid |String |Model Invariant UUID |
++------------------------------+-----------------+-------------------------------------------------------------------+
+|modelUuid |String |Model UUID |
++------------------------------+-----------------+-------------------------------------------------------------------+
+|gloabalSubscriberId |String |Customer Id |
++------------------------------+-----------------+-------------------------------------------------------------------+
+|subscriptionServiceType |String |service Type for subscription |
++------------------------------+-----------------+-------------------------------------------------------------------+
+|networkType |String |Network Type |
++------------------------------+-----------------+-------------------------------------------------------------------+
+|additionalProperties |Object |Map of additional properties required for service allocation |
++------------------------------+-----------------+-------------------------------------------------------------------+
+
+Response:
+
++--------------------+---------+-----------+-------+------------------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content|Description |
++--------------------+---------+-----------+-------+------------------------------------------------------------------------+
+|jobId |M |1 |String |Job ID to be used to identify the status of the job |
++--------------------+---------+-----------+-------+------------------------------------------------------------------------+
+|status |M |1 |String |Status of the job |
++--------------------+---------+-----------+-------+------------------------------------------------------------------------+
+|statusDescription |M |1 |Object |Description on status in case of erroneous response |
++--------------------+---------+-----------+-------+------------------------------------------------------------------------+
+
+Terminate/Deallocate a 3GPP service instance
+++++++++++++++++++++++++++++++++++++++++++++
+
++--------------------+------------------------------------------------------------+
+|Interface Definition|Description |
++====================+============================================================+
+|URI |/onap/so/infra/3gppservices/v1/deAllocate |
++--------------------+------------------------------------------------------------+
+|Operation Type |DELETE |
++--------------------+------------------------------------------------------------+
+|Content-Type |application/json |
++--------------------+------------------------------------------------------------+
+
+Request Body:
+
++-----------------------+---------+-----------+------------------------------+-------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++=======================+=========+===========+==============================+===========================================+
+|deAllocate3gppService |M |1 |deAllocate3gppService Object |Content of deAllocate3gppService object |
++-----------------------+---------+-----------+------------------------------+-------------------------------------------+
+
+DeAllocate3gppService Object
+
++------------------------------+-----------------+---------------------------------------------------------------------+
+|Attribute |Content |Description |
++==============================+=================+=====================================================================+
+|serviceInstanceID |String |ID of the service to terminate |
++------------------------------+-----------------+---------------------------------------------------------------------+
+|gloabalSubscriberId |String |Customer Id |
++------------------------------+-----------------+---------------------------------------------------------------------+
+|subscriptionServiceType |String |service Type for subscription |
++------------------------------+-----------------+---------------------------------------------------------------------+
+|networkType |String |Network Type |
++------------------------------+-----------------+---------------------------------------------------------------------+
+|additionalProperties |Object |Map of additional properties required for service deallocation |
++------------------------------+-----------------+---------------------------------------------------------------------+
+
+Response:
+
++--------------------+---------+-----------+-------+------------------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content|Description |
++--------------------+---------+-----------+-------+------------------------------------------------------------------------+
+|jobId |M |1 |String |Job ID to be used to identify the status of the job |
++--------------------+---------+-----------+-------+------------------------------------------------------------------------+
+|status |M |1 |String |Status of the job |
++--------------------+---------+-----------+-------+------------------------------------------------------------------------+
+|statusDescription |M |1 |Object |Description on status in case of erroneous response |
++--------------------+---------+-----------+-------+------------------------------------------------------------------------+
+
+Modify a 3GPP service instance
+++++++++++++++++++++++++++++++
+
++--------------------+------------------------------------------------------------+
+|Interface Definition|Description |
++====================+============================================================+
+|URI |/onap/so/infra/3gppservices/v1/modify |
++--------------------+------------------------------------------------------------+
+|Operation Type |PUT |
++--------------------+------------------------------------------------------------+
+|Content-Type |application/json |
++--------------------+------------------------------------------------------------+
+
+Request Body:
+
++---------------------+---------+-----------+----------------------------+-----------------------------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++=====================+=========+===========+============================+=========================================+
+|modify3gppService |M |1 |modify3gppService Object |Content of modify3gppService object |
++---------------------+---------+-----------+----------------------------+-----------------------------------------+
+
+Modify3gppService Object
+
++------------------------------+-----------------+-------------------------------------------------------------------+
+|Attribute |Content |Description |
++==============================+=================+===================================================================+
+|name |String |Name of the service to modify |
++------------------------------+-----------------+-------------------------------------------------------------------+
+|serviceInstanceID |String |ID of the service to modify |
++------------------------------+-----------------+-------------------------------------------------------------------+
+|gloabalSubscriberId |String |Customer Id |
++------------------------------+-----------------+-------------------------------------------------------------------+
+|subscriptionServiceType |String |service Type for subscription |
++------------------------------+-----------------+-------------------------------------------------------------------+
+|networkType |String |Network Type |
++------------------------------+-----------------+-------------------------------------------------------------------+
+|additionalProperties |Object |Map of additional properties required for service modification |
++------------------------------+-----------------+-------------------------------------------------------------------+
+
+Response:
+
++--------------------+---------+-----------+-------+------------------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content|Description |
++--------------------+---------+-----------+-------+------------------------------------------------------------------------+
+|jobId |M |1 |String |Job ID to be used to identify the status of the job |
++--------------------+---------+-----------+-------+------------------------------------------------------------------------+
+|status |M |1 |String |Status of the job |
++--------------------+---------+-----------+-------+------------------------------------------------------------------------+
+|statusDescription |M |1 |Object |Description on status in case of erroneous response |
++--------------------+---------+-----------+-------+------------------------------------------------------------------------+
+
+Activate a 3GPP service instance
+++++++++++++++++++++++++++++++++
+
++--------------------+------------------------------------------------------------+
+|Interface Definition|Description |
++====================+============================================================+
+|URI |/onap/so/infra/3gppservices/v1/activate |
++--------------------+------------------------------------------------------------+
+|Operation Type |POST |
++--------------------+------------------------------------------------------------+
+|Content-Type |application/json |
++--------------------+------------------------------------------------------------+
+
+Request Body:
+
++---------------------+---------+-----------+----------------------------+-----------------------------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++=====================+=========+===========+============================+=========================================+
+|activate3gppService |M |1 |activate3gppService Object |Content of activate3gppService object |
++---------------------+---------+-----------+----------------------------+-----------------------------------------+
+
+Activate3gppService Object
+
++------------------------------+-----------------+-------------------------------------------------------------------+
+|Attribute |Content |Description |
++==============================+=================+===================================================================+
+|serviceInstanceID |String |ID of the service to be activated |
++------------------------------+-----------------+-------------------------------------------------------------------+
+|gloabalSubscriberId |String |Customer Id |
++------------------------------+-----------------+-------------------------------------------------------------------+
+|subscriptionServiceType |String |service Type for subscription |
++------------------------------+-----------------+-------------------------------------------------------------------+
+|networkType |String |Network Type |
++------------------------------+-----------------+-------------------------------------------------------------------+
+|additionalProperties |Object |Map of additional properties required for service activation |
++------------------------------+-----------------+-------------------------------------------------------------------+
+
+Response:
+
++--------------------+---------+-----------+-------+------------------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content|Description |
++--------------------+---------+-----------+-------+------------------------------------------------------------------------+
+|jobId |M |1 |String |Job ID to be used to identify the status of the job |
++--------------------+---------+-----------+-------+------------------------------------------------------------------------+
+|status |M |1 |String |Status of the job |
++--------------------+---------+-----------+-------+------------------------------------------------------------------------+
+|statusDescription |M |1 |Object |Description on status in case of erroneous response |
++--------------------+---------+-----------+-------+------------------------------------------------------------------------+
+
+Deactivate a 3GPP service instance
+++++++++++++++++++++++++++++++++++
+
++--------------------+------------------------------------------------------------+
+|Interface Definition|Description |
++====================+============================================================+
+|URI |/onap/so/infra/3gppservices/v1/deActivate |
++--------------------+------------------------------------------------------------+
+|Operation Type |POST |
++--------------------+------------------------------------------------------------+
+|Content-Type |application/json |
++--------------------+------------------------------------------------------------+
+
+Request Body:
+
++-----------------------+---------+-----------+------------------------------+-------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++=======================+=========+===========+==============================+===========================================+
+|deActivate3gppService |M |1 |deActivate3gppService Object |Content of deActivate3gppService object |
++-----------------------+---------+-----------+------------------------------+-------------------------------------------+
+
+DeActivate3gppService Object
+
++------------------------------+-----------------+-------------------------------------------------------------------+
+|Attribute |Content |Description |
++==============================+=================+===================================================================+
+|serviceInstanceID |String |ID of the service to be deactivated |
++------------------------------+-----------------+-------------------------------------------------------------------+
+|gloabalSubscriberId |String |Customer Id |
++------------------------------+-----------------+-------------------------------------------------------------------+
+|subscriptionServiceType |String |service Type for subscription |
++------------------------------+-----------------+-------------------------------------------------------------------+
+|networkType |String |Network Type |
++------------------------------+-----------------+-------------------------------------------------------------------+
+|additionalProperties |Object |Map of additional properties required for service deactivation |
++------------------------------+-----------------+-------------------------------------------------------------------+
+
+Response:
+
++--------------------+---------+-----------+-------+------------------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content|Description |
++--------------------+---------+-----------+-------+------------------------------------------------------------------------+
+|jobId |M |1 |String |Job ID to be used to identify the status of the job |
++--------------------+---------+-----------+-------+------------------------------------------------------------------------+
+|status |M |1 |String |Status of the job |
++--------------------+---------+-----------+-------+------------------------------------------------------------------------+
+|statusDescription |M |1 |Object |Description on status in case of erroneous response |
++--------------------+---------+-----------+-------+------------------------------------------------------------------------+
+
+Query subnet capability based on subnet types
++++++++++++++++++++++++++++++++++++++++++++++
+
++--------------------+------------------------------------------------------------+
+|Interface Definition|Description |
++====================+============================================================+
+|URI |/onap/so/infra/3gppservices/v1/subnetCapabilityQuery |
++--------------------+------------------------------------------------------------+
+|Operation Type |GET |
++--------------------+------------------------------------------------------------+
+|Content-Type |application/json |
++--------------------+------------------------------------------------------------+
+
+Request Body:
+
++-------------------------+---------+-----------+-------------------------------+-----------------------------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++=========================+=========+===========+===============================+=========================================+
+|querySubnetCapability |M |1 |QuerySubnetCapability Object |Content of querySubnetCapability object |
++-------------------------+---------+-----------+-------------------------------+-----------------------------------------+
+
+QuerySubnetCapability Object
+
++------------------------------+-----------------+-----------------------------------------+
+|Attribute |Content |Description |
++==============================+=================+=========================================+
+|SubnetTypes |List of object |This describes the subnet types info |
++------------------------------+-----------------+-----------------------------------------+
+
+SubnetTypes Object
+
++------------------------------+-----------------+------------------------------------------------------------------------+
+|Attribute |Content |Description |
++==============================+=================+========================================================================+
+|SubnetTypes |enum |This describes the subnet types i.e., AN,AN_NF,CN,TN_FH,TN_MH,TN_BH |
++------------------------------+-----------------+------------------------------------------------------------------------+
+
+Response:
+
++------------------+---------+-----------+-------+------------------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content|Description |
++------------------+---------+-----------+-------+------------------------------------------------------------------------+
+|ResponseDetails |M |1 |Object |Successful operation with capabilities for the queried subnetTypes |
++------------------+---------+-----------+-------+------------------------------------------------------------------------+
diff --git a/docs/api/apis/serviceInstances-api.rst b/docs/api/apis/serviceInstances-api.rst
index 8eafe05a2e..15ed3932fd 100644
--- a/docs/api/apis/serviceInstances-api.rst
+++ b/docs/api/apis/serviceInstances-api.rst
@@ -13,6 +13,7 @@ This API allows to generate some requests to manage:
- vfModules attached to a vnf instance (create, delete)
- vnfs attached to a service instance (create, delete)
- orchestrationRequests (get)
+- CNF healthCheck
links:
@@ -26,7 +27,7 @@ links:
- :ref:`delete_vnf`
- :ref:`get_orchestration_request_by_id`
- :ref:`get_orchestration_request_all`
-
+- :ref:`healthCheck`
.. _create_service_instance:
@@ -1293,3 +1294,108 @@ RequestStatus Object
+-------------------------+------------------+-------------------------------------------------+
|percentProgress |String |percentage of progress |
+-------------------------+------------------+-------------------------------------------------+
+
+.. _healthCheck:
+
+CNF healthCheck
+++++++++++++++++
+
++--------------------+---------------------------------------------------------------------------------------------------------------+
+|Interface Definition|Description |
++====================+===============================================================================================================+
+|URI |/onap/so/infra/serviceInstantiation/v7/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/healthcheck |
++--------------------+---------------------------------------------------------------------------------------------------------------+
+|Operation Type |POST |
++--------------------+---------------------------------------------------------------------------------------------------------------+
+|Content-Type |application/json |
++--------------------+---------------------------------------------------------------------------------------------------------------+
+
+Request Headers:
+
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Header Name |Required |Description |
++===================+=========+=========================================================================================+
+|Authorization |Y |Base64 encoded username:password |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+
+Request Body:
+
++----------------+---------+-----------+--------------------------+-------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++================+=========+===========+==========================+===========================================+
+|requestDetails |M |1 |requestDetails Object |Content of requestDetails object. |
++----------------+---------+-----------+--------------------------+-------------------------------------------+
+
+RequestDetails Object
+
++---------------------+-------------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=====================+=========================+=================================================+
+|modelInfo |modelInfo Object |Content of modelInfo object. |
++---------------------+-------------------------+-------------------------------------------------+
+|cloudConfiguration |cloudConfiguration Object|Content of cloudConfiguration object. |
++---------------------+-------------------------+-------------------------------------------------+
+|requestInfo |requestInfo Object |Content of requestInfo object. |
++---------------------+-------------------------+-------------------------------------------------+
+|relatedInstanceList |List |Content of relatedInstanceList. |
++---------------------+-------------------------+-------------------------------------------------+
+
+ModelInfo Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|ModelType |String |Type of model |
++-------------------------+------------------+-------------------------------------------------+
+|ModelInvariantId |String |The Model Invariant Id. |
++-------------------------+------------------+-------------------------------------------------+
+|ModelNameVersionId |String |The modelname Version Id |
++-------------------------+------------------+-------------------------------------------------+
+|ModelName |String |Name of the Model |
++-------------------------+------------------+-------------------------------------------------+
+|ModelVersion |String |Version of the model |
++-------------------------+------------------+-------------------------------------------------+
+|ModelCustomization Name |String |The Model Customization name |
++-------------------------+------------------+-------------------------------------------------+
+
+CloudConfiguration Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|lcpCloudRegionId |String |CloudRegion Id (in A&AI) |
++-------------------------+------------------+-------------------------------------------------+
+|tenantId |String |Name of the Subscriber |
++-------------------------+------------------+-------------------------------------------------+
+
+RequestInfo Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|InstanceName |String |The instance Name |
++-------------------------+------------------+-------------------------------------------------+
+|Source |String |source of the request |
++-------------------------+------------------+-------------------------------------------------+
+|SuppressRollback |Boolean |SuppressRollback |
++-------------------------+------------------+-------------------------------------------------+
+
+relatedInstance List
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|relatedInstance |Object |relatedInstance Object |
++-------------------------+------------------+-------------------------------------------------+
+
+relatedInstance List
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|instanceId |String |instanceId |
++-------------------------+------------------+-------------------------------------------------+
+|modelInfo |Object |Content of modelInfo object. |
++-------------------------+------------------+-------------------------------------------------+
+|instanceName |String |Name of the instance |
++-------------------------+------------------+-------------------------------------------------+ \ No newline at end of file
diff --git a/docs/release-notes.rst b/docs/release-notes.rst
index f3b8d45d0d..58902f3d27 100644
--- a/docs/release-notes.rst
+++ b/docs/release-notes.rst
@@ -14,16 +14,227 @@ The SO provides the highest level of service orchestration in the ONAP architect
Release Notes
=============
-Version: 9.0
+Version: 1.9.2
==============
+ :Release Date: 2021-10-14
+
+SO Release Image Versions
+--------------------------
+ - so-bpmn-infra
+
+ :Version: 1.9.2
+
+ - so-catalog-db-adapter
+
+ :Version: 1.9.2
+
+ - so-admin-cockpit
+
+ :Version: 1.8.3
+
+ - so-nssmf-adapter
+
+ :Version: 1.9.1
+
+ - so-openstack-adapter
+
+ :Version: 1.9.2
+
+ - so-request-db-adapter
+
+ :Version: 1.9.2
+
+ - so-sdc-controller
+
+ :Version: 1.9.2
+
+ - so-sdnc-adapter
+
+ :Version: 1.9.2
+
+ - so-sol003-adapter
+
+ :Version: 1.8.2
+
+ - so-api-handler-infra
+
+ :Version: 1.9.2
+
+ - so-etsi-nfvo-ns-lcm
+
+ :Version: 1.8.2
+
+ - so-oof-adapter
+
+ :Version: 1.8.3
+
+ - so-cnf-adapter
+
+ :Version: 1.9.1
+
Release Purpose
----------------
-SO Istanbul Release
+SO Istanbul Release.
+The key deliverable for this release is refactoring SO for better internal architecture.
+
**Epics**
* `REQ-627 <https://jira.onap.org/browse/REQ-627>`_ - ONAP CNF orchestration - Istanbul Enhancements
+* `SO-3649 <https://jira.onap.org/browse/SO-3649>`_ - SO impacts for E2E Network Slicing in Istanbul Release
+* `SO-3637 <https://jira.onap.org/browse/SO-3637>`_ - Global Requirements Approval
+* `SO-3473 <https://jira.onap.org/browse/SO-3473>`_ - Refactor SO to enhance the usability
+
+
+**Stories**
+
+The full list of implemented tasks is available on `JIRA Istanbul STORY <https://jira.onap.org/issues/?jql=project%20%3D%20%22Service%20Orchestrator%22%20%20AND%20issuetype%20%3D%20story%20AND%20fixVersion%20%3D%20%22istanbul%20Release%22>`_
+
+
+**Tasks**
+
+The full list of implemented tasks is available on `JIRA Istanbul TASKS <https://jira.onap.org/issues/?jql=project%20%3D%20%22Service%20Orchestrator%22%20%20AND%20issuetype%20%3D%20Task%20AND%20fixVersion%20%3D%20%22istanbul%20Release%22>`_
+
+**Bug Fixes**
+
+The full list of fixed bugs is available on `JIRA Istanbul BUGS
+<https://jira.onap.org/issues/?jql=project%20%3D%20%22Service%20Orchestrator%22%20%20AND%20issuetype%20%3D%20Bug%20AND%20fixVersion%20%3D%20%22istanbul%20Release%22>`_
+
+Security Notes
+--------------
+
+*Fixed Security Issues*
+
+* `SO-3642 <https://jira.onap.org/browse/SO-3642>`_
+* `SO-3724 <https://jira.onap.org/browse/SO-3724>`_
+
+
+Quick Links:
+
+- `SO project page <https://wiki.onap.org/display/DW/Service+Orchestrator+Project>`__
+- `Passing Badge information for SDC <https://bestpractices.coreinfrastructure.org/en/projects/1702>`__
+
+**Known Issues**
+
+* `SO-3237 <https://jira.onap.org/browse/SO-3237>`_ - Exposed HTTP port.
+
+
+**Upgrade Notes**
+
+ N/A
+
+**Deprecation Notes**
+
+ SO modules Ve-Vnfm-adapter and appc-orchestrator are deprectaed for the Istanbul release.
+
+**Other**
+
+ N/A
+***************************************************************************************
+
+=============
+Release Notes
+=============
+
+Version: 1.8.3
+==============
+
+:Release Date: 2021-09-15
+
+SO Release Image Versions
+--------------------------
+ - so-bpmn-infra
+
+ :Version: 1.8.3
+
+ - so-catalog-db-adapter
+
+ :Version: 1.8.3
+
+ - so-nssmf-adapter
+
+ :Version: 1.8.3
+
+ - so-openstack-adapter
+
+ :Version: 1.8.3
+
+ - so-request-db-adapter
+
+ :Version: 1.8.3
+
+ - so-sdc-controller
+
+ :Version: 1.8.3
+
+ - so-sdnc-adapter
+
+ :Version: 1.8.3
+
+ - so-api-handler-infra
+
+ :Version: 1.8.3
+
+Release Purpose
+----------------
+SO Honolulu Maintence Release.
+The key delivereable for this release is fixing the known issues of H release of SO and sync up with the latest CDS client version.
+
+
+**Epics**
+
+ N/A
+
+**Stories**
+
+ N/A
+
+**Tasks**
+
+ N/A
+
+**Bug Fixes**
+
+* `SO-3626 <https://jira.onap.org/browse/SO-3626>`_ - SO does not requests CDS for skipPostInstantiation flag set to False.
+* `SO-3628 <https://jira.onap.org/browse/SO-3628>`_ - SO cannot send CDS request due to grpc schema problem.
+* `SO-3703 <https://jira.onap.org/browse/SO-3703>`_ - Changes in Modify and Deallocate Core NSST flows
+* `SO-3721 <https://jira.onap.org/browse/SO-3721>`_ - Fix some attribute issues
+* `SO-3260 <https://jira.onap.org/browse/SO-3260>`_ - Wrong additional parameter for OOF's terminateNxiRequest
+
+
+Security Notes
+--------------
+
+*Fixed Security Issues*
+
+*Known Security Issues*
+
+*Known Vulnerabilities in Used Modules*
+
+Quick Links:
+
+- `SO project page <https://wiki.onap.org/display/DW/Service+Orchestrator+Project>`__
+- `Passing Badge information for SDC <https://bestpractices.coreinfrastructure.org/en/projects/1702>`__
+
+**Known Issues**
+
+* `SO-3237 <https://jira.onap.org/browse/SO-3237>`_ - Exposed HTTP port.
+
+
+**Upgrade Notes**
+
+ N/A
+
+**Deprecation Notes**
+
+ SO modules Ve-Vnfm-adapter and appc-orchestrator are deprectaed for the Honolulu release.
+
+**Other**
+
+ N/A
+***************************************************************************************
+
Version: 8.0
==============
@@ -82,7 +293,7 @@ SO Release Image Versions
- so-cnf-adapter
- :Version: 1.8.3
+ :Version: 1.9.1
Release Purpose
----------------
diff --git a/releases/1.9.2.yaml b/releases/1.9.2.yaml
new file mode 100644
index 0000000000..7c04ff1cfa
--- /dev/null
+++ b/releases/1.9.2.yaml
@@ -0,0 +1,22 @@
+
+---
+distribution_type: 'container'
+container_release_tag: '1.9.2'
+project: 'so'
+log_dir: 'so-maven-docker-stage-master/880/'
+ref: 'c0c57ed8c3ca558cb09e7885a9416accd2b80a67'
+containers:
+ - name: 'so/catalog-db-adapter'
+ version: '1.9.2-20211012T0420'
+ - name: 'so/request-db-adapter'
+ version: '1.9.2-20211012T0420'
+ - name: 'so/openstack-adapter'
+ version: '1.9.2-20211012T0420'
+ - name: 'so/sdnc-adapter'
+ version: '1.9.2-20211012T0420'
+ - name: 'so/sdc-controller'
+ version: '1.9.2-20211012T0420'
+ - name: 'so/bpmn-infra'
+ version: '1.9.2-20211012T0420'
+ - name: 'so/api-handler-infra'
+ version: '1.9.2-20211012T0420'