aboutsummaryrefslogtreecommitdiffstats
path: root/bpmn
diff options
context:
space:
mode:
Diffstat (limited to 'bpmn')
-rw-r--r--bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/RequestDBUtil.groovy7
-rw-r--r--bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupUtils.java6
-rw-r--r--bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/restproperties/AAIPropertiesImpl.java19
-rw-r--r--bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupUtilsTest.java2
-rw-r--r--bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/AllocateSliceSubnet.groovy13
-rw-r--r--bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoAllocateNSIandNSSI.groovy35
-rw-r--r--bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoAllocateNSSI.groovy9
-rw-r--r--bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/TnAllocateNssi.groovy8
-rw-r--r--bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBTasks.java16
-rw-r--r--bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBTasksTest.java147
10 files changed, 218 insertions, 44 deletions
diff --git a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/RequestDBUtil.groovy b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/RequestDBUtil.groovy
index 23dfdce753..4e8be5d6e5 100644
--- a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/RequestDBUtil.groovy
+++ b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/RequestDBUtil.groovy
@@ -144,7 +144,7 @@ class RequestDBUtil {
<ns:initResourceOperationStatus xmlns:ns="http://org.onap.so/requestsdb">
<serviceId>${MsoUtils.xmlEscape(serviceId)}</serviceId>
<operationId>${MsoUtils.xmlEscape(operationId)}</operationId>
- <operationType>${MsoUtils.xmlEscape(operType)}</operationType>
+ <operType>${MsoUtils.xmlEscape(operType)}</operType>
<resourceTemplateUUIDs>${MsoUtils.xmlEscape(resourceTemplateUUID)}</resourceTemplateUUIDs>
</ns:initResourceOperationStatus>
</soapenv:Body>
@@ -192,8 +192,9 @@ class RequestDBUtil {
<ns:updateResourceOperationStatus xmlns:ns="http://org.onap.so/requestsdb">
<serviceId>${MsoUtils.xmlEscape(serviceId)}</serviceId>
<operationId>${MsoUtils.xmlEscape(operationId)}</operationId>
- <resourceTemplateUUIDs>${MsoUtils.xmlEscape(resourceTemplateUUID)}</resourceTemplateUUIDs>
- <operationType>${MsoUtils.xmlEscape(operType)}</operationType>
+ <resourceTemplateUUID>${MsoUtils.xmlEscape(resourceTemplateUUID)}</resourceTemplateUUID>
+ <operType>${MsoUtils.xmlEscape(operType)}</operType>
+ <resourceInstanceID>${MsoUtils.xmlEscape(resourceInstanceID)}</resourceInstanceID>
<jobId>${MsoUtils.xmlEscape(jobId)}</jobId>
<status>${MsoUtils.xmlEscape(status)}</status>
<progress>${MsoUtils.xmlEscape(progress)}</progress>
diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupUtils.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupUtils.java
index afd7f6433c..24f1e055e2 100644
--- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupUtils.java
+++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupUtils.java
@@ -269,10 +269,10 @@ public class BBInputSetupUtils {
String cloudRegionId = cloudConfiguration.getLcpCloudRegionId();
String cloudOwner = cloudConfiguration.getCloudOwner();
if (cloudRegionId != null && cloudOwner != null && !cloudRegionId.isEmpty() && !cloudOwner.isEmpty()) {
- return injectionHelper.getAaiClient()
- .get(CloudRegion.class, AAIUriFactory.createResourceUri(
+ return injectionHelper.getAaiClient().get(CloudRegion.class,
+ AAIUriFactory.createResourceUri(
AAIFluentTypeBuilder.cloudInfrastructure().cloudRegion(cloudOwner, cloudRegionId))
- .depth(Depth.TWO))
+ .depth(Depth.ONE).nodesOnly(true))
.orElse(null);
} else {
diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/restproperties/AAIPropertiesImpl.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/restproperties/AAIPropertiesImpl.java
index f67af20ef1..98a14fc0e5 100644
--- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/restproperties/AAIPropertiesImpl.java
+++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/restproperties/AAIPropertiesImpl.java
@@ -25,6 +25,7 @@ import java.net.URL;
import org.onap.aaiclient.client.aai.AAIProperties;
import org.onap.aaiclient.client.aai.AAIVersion;
import org.onap.so.bpmn.core.UrnPropertiesReader;
+import org.onap.so.client.CacheProperties;
import org.springframework.stereotype.Component;
@Component
@@ -34,6 +35,9 @@ public class AAIPropertiesImpl implements AAIProperties {
public static final String AAI_AUTH = "aai.auth";
public static final String AAI_ENDPOINT = "aai.endpoint";
public static final String AAI_READ_TIMEOUT = "aai.readTimeout";
+ public static final String AAI_ENABLE_CACHING = "aai.caching.enable";
+ public static final String AAI_CACHE_MAX_AGE = "aai.caching.maxAge";
+
private UrnPropertiesReader reader;
@Override
@@ -66,4 +70,19 @@ public class AAIPropertiesImpl implements AAIProperties {
return Long.valueOf(reader.getVariable(AAI_READ_TIMEOUT, "60000"));
}
+ @Override
+ public boolean isCachingEnabled() {
+ return Boolean.parseBoolean(reader.getVariable(AAI_ENABLE_CACHING, "false"));
+ }
+
+ @Override
+ public CacheProperties getCacheProperties() {
+ return new AAICacheProperties() {
+ @Override
+ public Long getMaxAge() {
+ return Long.valueOf(reader.getVariable(AAI_CACHE_MAX_AGE, "60000"));
+ }
+ };
+ }
+
}
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupUtilsTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupUtilsTest.java
index 85774ec23c..188f853a14 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupUtilsTest.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupUtilsTest.java
@@ -184,7 +184,7 @@ public class BBInputSetupUtilsTest {
AAIUriFactory
.createResourceUri(AAIFluentTypeBuilder.cloudInfrastructure()
.cloudRegion(cloudConfig.getCloudOwner(), cloudConfig.getLcpCloudRegionId()))
- .depth(Depth.TWO));
+ .depth(Depth.ONE).nodesOnly(true));
assertThat(bbInputSetupUtils.getCloudRegion(cloudConfig), sameBeanAs(expected.get()));
}
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/AllocateSliceSubnet.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/AllocateSliceSubnet.groovy
index 9100f2773b..e2d9c16328 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/AllocateSliceSubnet.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/AllocateSliceSubnet.groovy
@@ -149,16 +149,17 @@ class AllocateSliceSubnet extends AbstractServiceTaskProcessor {
def prepareInitOperationStatus = { DelegateExecution execution ->
logger.debug(Prefix + "prepareInitOperationStatus Start")
- String serviceId = execution.getVariable("dummyServiceId")
+ String modelUuid = execution.getVariable("modelUuid")
String jobId = execution.getVariable("jobId")
String nsiId = execution.getVariable("nsiId")
- logger.debug("Generated new job for Service Instance serviceId:" + serviceId + " jobId:" + jobId)
+ logger.debug("Generated new job for Service Instance serviceId:" + modelUuid + " jobId:" + jobId)
ResourceOperationStatus initStatus = new ResourceOperationStatus()
- initStatus.setServiceId(serviceId)
- initStatus.setOperationId(jobId)
- initStatus.setResourceTemplateUUID(nsiId)
- initStatus.setOperType("Allocate")
+ initStatus.setServiceId(nsiId) // set nsiId to this field
+ initStatus.setOperationId(jobId) // set jobId to this field
+ initStatus.setResourceTemplateUUID(modelUuid) // set modelUuid to this field
+ initStatus.setOperType("ALLOCATE")
+ //initStatus.setResourceInstanceID() // set nssiId to this field
requestDBUtil.prepareInitResourceOperationStatus(execution, initStatus)
logger.debug(Prefix + "prepareInitOperationStatus Exit")
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 fac8871b52..1f3cf6ed52 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
@@ -20,8 +20,11 @@
package org.onap.so.bpmn.infrastructure.scripts
+import org.onap.so.beans.nsmf.ConnectionLink
+import org.onap.so.beans.nsmf.EndPoint
import org.onap.so.beans.nsmf.NsiInfo
import org.onap.so.beans.nsmf.SliceProfileAdapter
+import org.onap.so.beans.nsmf.TransportSliceNetwork
import org.onap.so.beans.nsmf.oof.SubnetType
import org.onap.so.bpmn.common.scripts.AbstractServiceTaskProcessor
import javax.ws.rs.NotFoundException
@@ -328,6 +331,12 @@ class DoAllocateNSIandNSSI extends AbstractServiceTaskProcessor{
NsiInfo nsiInfo = new NsiInfo()
nsiInfo.nsiId = sliceParams.suggestNsiId
allocateAnNssi.nsiInfo = nsiInfo
+ //endPoint
+ EndPoint endPoint = new EndPoint()
+ endPoint.setIpAddress(sliceTaskInfo.sliceProfile.ipAddress)
+ endPoint.setLogicInterfaceId(sliceTaskInfo.sliceProfile.logicInterfaceId)
+ endPoint.setNextHopInfo(sliceTaskInfo.sliceProfile.nextHopInfo)
+ allocateAnNssi.setEndPoint(endPoint)
EsrInfo esrInfo = new EsrInfo()
//todo: vendor and network
@@ -442,6 +451,12 @@ class DoAllocateNSIandNSSI extends AbstractServiceTaskProcessor{
NsiInfo nsiInfo = new NsiInfo()
nsiInfo.nsiId = sliceParams.suggestNsiId
allocateCnNssi.nsiInfo = nsiInfo
+ // endPoint
+ EndPoint endPoint = new EndPoint()
+ endPoint.setIpAddress(sliceTaskInfo.sliceProfile.ipAddress)
+ endPoint.setLogicInterfaceId(sliceTaskInfo.sliceProfile.logicInterfaceId)
+ endPoint.setNextHopInfo(sliceTaskInfo.sliceProfile.nextHopInfo)
+ allocateCnNssi.setEndPoint(endPoint)
EsrInfo esrInfo = new EsrInfo()
//todo: vendor and network
@@ -552,8 +567,18 @@ class DoAllocateNSIandNSSI extends AbstractServiceTaskProcessor{
AllocateTnNssi allocateTnNssi = new AllocateTnNssi()
//todo: AllocateTnNssi
- //todo: endpointId -> set into tn
- allocateTnNssi.setTransportSliceNetworks()
+ //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(sliceParams.anSliceTaskInfo.endPointId)
+ connectionLink.setTransportEndpointB(sliceParams.cnSliceTaskInfo.endPointId)
+ connectionLinks.add(connectionLink)
+ transportSliceNetwork.setConnectionLinks(connectionLinks)
+ transportSliceNetworks.add(transportSliceNetwork)
+ allocateTnNssi.setTransportSliceNetworks(transportSliceNetworks)
+
allocateTnNssi.setNetworkSliceInfos()
allocateTnNssi.setSliceProfile(sliceTaskInfo.sliceProfile.trans2TnProfile())
NsiInfo nsiInfo = new NsiInfo()
@@ -607,7 +632,7 @@ class DoAllocateNSIandNSSI extends AbstractServiceTaskProcessor{
String sliceProfileInstanceId = sliceParams.anSliceTaskInfo.sliceInstanceId
String serviceProfileInstanceId = sliceParams.serviceId
//nsi id
- //todo: aai -> nssi -> relationship -> endpointId -> set into tn
+ //todo: aai -> nssi -> relationship -> endPointId -> set into tn
String endPointId = getEndpointIdFromAAI(execution, nssiId)
execution.setVariable("endPointIdAn", endPointId)
@@ -641,7 +666,7 @@ class DoAllocateNSIandNSSI extends AbstractServiceTaskProcessor{
String sliceProfileInstanceId = sliceParams.cnSliceTaskInfo.sliceInstanceId
String serviceProfileInstanceId = sliceParams.serviceId
//nsi id
- //todo: aai -> nssi -> relationship -> endpointId -> set into tn
+ //todo: aai -> nssi -> relationship -> endPointId -> set into tn
String endPointId = getEndpointIdFromAAI(execution, nssiId)
execution.setVariable("endPointIdCn", endPointId)
@@ -685,7 +710,7 @@ class DoAllocateNSIandNSSI extends AbstractServiceTaskProcessor{
exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
} else {
ServiceInstance nssiInstance = si.get()
- //todo: handle relationship and return endpointId
+ //todo: handle relationship and return endPointId
if (nssiInstance.relationshipList == null) {
String msg = "relationshipList of " + nssiId + " is null"
logger.debug(msg)
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoAllocateNSSI.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoAllocateNSSI.groovy
index 896d7ff4b1..e5c1b56d55 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoAllocateNSSI.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoAllocateNSSI.groovy
@@ -99,8 +99,12 @@ class DoAllocateNSSI extends AbstractServiceTaskProcessor {
if (response != null) {
JobStatusResponse jobStatusResponse = objectMapper.readValue(response, JobStatusResponse.class)
- execution.setVariable("nssiAllocateStatus", jobStatusResponse)
+ if (StringUtils.isBlank(nssiId)) {
+ nssiAllocateResult.setNssiId(jobStatusResponse.getResponseDescriptor().getNssiId())
+ execution.setVariable("nssiAllocateResult", nssiAllocateResult)
+ }
+ execution.setVariable("nssiAllocateStatus", jobStatusResponse)
if (jobStatusResponse.getResponseDescriptor().getProgress() == 100) {
execution.setVariable("jobFinished", true)
}
@@ -119,8 +123,9 @@ class DoAllocateNSSI extends AbstractServiceTaskProcessor {
SliceTaskInfo sliceTaskInfo = execution.getVariable("sliceTaskInfo") as SliceTaskInfo
sliceTaskInfo.progress = response.getProgress()
- sliceTaskInfo.status = response.getStatus()
+ sliceTaskInfo.status = response.getStatus().toLowerCase()
sliceTaskInfo.statusDescription = response.getStatusDescription()
+ sliceTaskInfo.endPointId = response.getEndPointId()
updateNssiResult(sliceParams, subnetType, sliceTaskInfo)
String paramJson = sliceParams.convertToJson()
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/TnAllocateNssi.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/TnAllocateNssi.groovy
index 8a276ed330..88db2161f7 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/TnAllocateNssi.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/TnAllocateNssi.groovy
@@ -321,17 +321,17 @@ class TnAllocateNssi extends AbstractServiceTaskProcessor {
String status,
String progress,
String statusDescription) {
- String serviceId = execution.getVariable("dummyServiceId")
+ String modelUuid = execution.getVariable("modelUuid")
String ssInstanceId = execution.getVariable("sliceServiceInstanceId")
String jobId = execution.getVariable("jobId")
String nsiId = execution.getVariable("nsiId")
ResourceOperationStatus roStatus = new ResourceOperationStatus()
- roStatus.setServiceId(serviceId)
+ roStatus.setServiceId(nsiId)
roStatus.setOperationId(jobId)
- roStatus.setResourceTemplateUUID(nsiId)
+ roStatus.setResourceTemplateUUID(modelUuid)
roStatus.setResourceInstanceID(ssInstanceId)
- roStatus.setOperType("Allocate")
+ roStatus.setOperType("ALLOCATE")
roStatus.setProgress(progress)
roStatus.setStatus(status)
roStatus.setStatusDescription(statusDescription)
diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBTasks.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBTasks.java
index 5e281cff87..554385d043 100644
--- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBTasks.java
+++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBTasks.java
@@ -450,14 +450,18 @@ public class WorkflowActionBBTasks {
if (requestAction.equalsIgnoreCase("replaceInstance")
|| requestAction.equalsIgnoreCase("replaceInstanceRetainAssignments")) {
List<ExecuteBuildingBlock> configBBs = flowsToExecute.stream()
- .filter(item -> !item.getBuildingBlock().getBpmnFlowName().matches(CONFIGURATION_PATTERN))
+ .filter(item -> item.getBuildingBlock().getBpmnFlowName().matches(CONFIGURATION_PATTERN))
.collect(Collectors.toList());
- for (ExecuteBuildingBlock bb : configBBs) {
- bb.getConfigurationResourceKeys().setCvnfcCustomizationUUID(modelCustomizationId);
- bb.getConfigurationResourceKeys().setVnfcName(vnfc.getVnfcName());
+ if (configBBs != null && configBBs.size() > 0) {
+ for (ExecuteBuildingBlock bb : configBBs) {
+ if (bb.getConfigurationResourceKeys() != null) {
+ bb.getConfigurationResourceKeys().setCvnfcCustomizationUUID(modelCustomizationId);
+ bb.getConfigurationResourceKeys().setVnfcName(vnfc.getVnfcName());
+ }
+ }
+ execution.setVariable("flowsToExecute", flowsToExecute);
+ execution.setVariable(COMPLETED, false);
}
- execution.setVariable("flowsToExecute", flowsToExecute);
- execution.setVariable(COMPLETED, false);
} else {
CvnfcConfigurationCustomization fabricConfig = catalogDbClient.getCvnfcCustomization(
serviceModelUUID, vnfCustomizationUUID, vfModuleCustomizationUUID, modelCustomizationId);
diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBTasksTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBTasksTest.java
index 0384a28cdc..b7529bdeb8 100644
--- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBTasksTest.java
+++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBTasksTest.java
@@ -613,7 +613,73 @@ public class WorkflowActionBBTasksTest extends BaseTaskTest {
}
@Test
- public void postProcessingExecuteBBActivateVfModuleTest() throws CloneNotSupportedException {
+ public void postProcessingExecuteBBActivateVfModuleNotReplaceInstanceTest() throws CloneNotSupportedException {
+ WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
+ workflowResourceIds.setServiceInstanceId("1");
+ workflowResourceIds.setVnfId("1");
+
+ BuildingBlock bbActivateVfModule = new BuildingBlock().setBpmnFlowName("ActivateVfModuleBB");
+ ExecuteBuildingBlock ebbActivateVfModule = new ExecuteBuildingBlock().setBuildingBlock(bbActivateVfModule);
+ ebbActivateVfModule.setWorkflowResourceIds(workflowResourceIds);
+ ebbActivateVfModule.setResourceId("1");
+
+ ServiceInstance service = new ServiceInstance();
+ service.setServiceInstanceName("name");
+ service.setModelVersionId("1");
+ doReturn(service).when(bbSetupUtils).getAAIServiceInstanceById("1");
+
+ GenericVnf vnf = new GenericVnf();
+ vnf.setVnfName("name");
+ vnf.setModelCustomizationId("1");
+ doReturn(vnf).when(bbSetupUtils).getAAIGenericVnf("1");
+
+ VfModule vfModule = new VfModule();
+ vfModule.setVfModuleName("name");
+ vfModule.setModelCustomizationId("1");
+ doReturn(vfModule).when(bbSetupUtils).getAAIVfModule("1", "1");
+
+ List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
+ org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
+ vnfc.setModelInvariantId("1");
+ vnfc.setVnfcName("name");
+ vnfc.setModelCustomizationId("2");
+ vnfcs.add(vnfc);
+ doReturn(vnfcs).when(workflowAction).getRelatedResourcesInVfModule(any(), any(), any(), any());
+
+ CvnfcConfigurationCustomization vfModuleCustomization = new CvnfcConfigurationCustomization();
+ ConfigurationResource configuration = new ConfigurationResource();
+ configuration.setToscaNodeType("FabricConfiguration");
+ configuration.setModelUUID("1");
+ vfModuleCustomization.setConfigurationResource(configuration);
+
+ doReturn(vfModuleCustomization).when(catalogDbClient).getCvnfcCustomization("1", "1", "1", "2");
+
+ prepareDelegateExecution();
+ List<ExecuteBuildingBlock> flowsToExecute = new ArrayList<>();
+ flowsToExecute.add(ebbActivateVfModule);
+
+ execution.setVariable("requestAction", "createInstance");
+ execution.setVariable("completed", true);
+
+ ArgumentCaptor<DelegateExecution> executionCaptor = ArgumentCaptor.forClass(DelegateExecution.class);
+ ArgumentCaptor<ExecuteBuildingBlock> bbCaptor = ArgumentCaptor.forClass(ExecuteBuildingBlock.class);
+ ArgumentCaptor<List> listCaptor = ArgumentCaptor.forClass(List.class);
+ workflowActionBBTasks.postProcessingExecuteBBActivateVfModule(execution, ebbActivateVfModule, flowsToExecute);
+ verify(workflowActionBBTasks, times(1)).postProcessingExecuteBBActivateVfModule(executionCaptor.capture(),
+ bbCaptor.capture(), listCaptor.capture());
+ assertEquals(false, executionCaptor.getAllValues().get(0).getVariable("completed"));
+ assertEquals(2, ((ArrayList) executionCaptor.getAllValues().get(0).getVariable("flowsToExecute")).size());
+ assertEquals("2",
+ ((ExecuteBuildingBlock) ((ArrayList) executionCaptor.getAllValues().get(0)
+ .getVariable("flowsToExecute")).get(1)).getConfigurationResourceKeys()
+ .getCvnfcCustomizationUUID());
+ assertEquals("AddFabricConfigurationBB", ((ExecuteBuildingBlock) ((ArrayList) executionCaptor.getAllValues()
+ .get(0).getVariable("flowsToExecute")).get(1)).getBuildingBlock().getBpmnFlowName());
+ }
+
+ @Test
+ public void postProcessingExecuteBBActivateVfModuleReplaceInstanceHasConfigurationTest()
+ throws CloneNotSupportedException {
BuildingBlock bbAddFabric = new BuildingBlock().setBpmnFlowName("AddFabricConfigurationBB");
ExecuteBuildingBlock ebbAddFabric = new ExecuteBuildingBlock().setBuildingBlock(bbAddFabric);
@@ -628,7 +694,7 @@ public class WorkflowActionBBTasksTest extends BaseTaskTest {
ebbActivateVfModule.setWorkflowResourceIds(workflowResourceIds);
ebbActivateVfModule.setResourceId("1");
ConfigurationResourceKeys configurationResourceKeys = new ConfigurationResourceKeys();
- ebbActivateVfModule.setConfigurationResourceKeys(configurationResourceKeys);
+ ebbAddFabric.setConfigurationResourceKeys(configurationResourceKeys);
ServiceInstance service = new ServiceInstance();
service.setServiceInstanceName("name");
@@ -664,35 +730,88 @@ public class WorkflowActionBBTasksTest extends BaseTaskTest {
prepareDelegateExecution();
List<ExecuteBuildingBlock> flowsToExecute = new ArrayList<>();
flowsToExecute.add(ebbActivateVfModule);
+ flowsToExecute.add(ebbAddFabric);
ArgumentCaptor<DelegateExecution> executionCaptor = ArgumentCaptor.forClass(DelegateExecution.class);
ArgumentCaptor<ExecuteBuildingBlock> bbCaptor = ArgumentCaptor.forClass(ExecuteBuildingBlock.class);
ArgumentCaptor<List> listCaptor = ArgumentCaptor.forClass(List.class);
- workflowActionBBTasks.postProcessingExecuteBBActivateVfModule(execution, ebbAddFabric, flowsToExecute);
+
+ execution.setVariable("requestAction", "replaceInstance");
+ execution.setVariable("completed", true);
+ workflowActionBBTasks.postProcessingExecuteBBActivateVfModule(execution, ebbActivateVfModule, flowsToExecute);
verify(workflowActionBBTasks, times(1)).postProcessingExecuteBBActivateVfModule(executionCaptor.capture(),
bbCaptor.capture(), listCaptor.capture());
assertEquals(false, executionCaptor.getAllValues().get(0).getVariable("completed"));
assertEquals(2, ((ArrayList) executionCaptor.getAllValues().get(0).getVariable("flowsToExecute")).size());
- assertEquals(null,
+ assertEquals("2",
((ExecuteBuildingBlock) ((ArrayList) executionCaptor.getAllValues().get(0)
- .getVariable("flowsToExecute")).get(0)).getConfigurationResourceKeys()
+ .getVariable("flowsToExecute")).get(1)).getConfigurationResourceKeys()
.getCvnfcCustomizationUUID());
+ }
+ @Test
+ public void postProcessingExecuteBBActivateVfModuleReplaceInstanceHasNoConfigurationTest()
+ throws CloneNotSupportedException {
- execution.setVariable("requestAction", "replaceInstance");
- flowsToExecute = new ArrayList<>();
+ WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
+ workflowResourceIds.setServiceInstanceId("1");
+ workflowResourceIds.setVnfId("1");
+
+ BuildingBlock bbActivateVfModule = new BuildingBlock().setBpmnFlowName("ActivateVfModuleBB");
+ ExecuteBuildingBlock ebbActivateVfModule = new ExecuteBuildingBlock().setBuildingBlock(bbActivateVfModule);
+ ebbActivateVfModule.setWorkflowResourceIds(workflowResourceIds);
+ ebbActivateVfModule.setResourceId("1");
+
+ ServiceInstance service = new ServiceInstance();
+ service.setServiceInstanceName("name");
+ service.setModelVersionId("1");
+ doReturn(service).when(bbSetupUtils).getAAIServiceInstanceById("1");
+
+ GenericVnf vnf = new GenericVnf();
+ vnf.setVnfName("name");
+ vnf.setModelCustomizationId("1");
+ doReturn(vnf).when(bbSetupUtils).getAAIGenericVnf("1");
+
+ VfModule vfModule = new VfModule();
+ vfModule.setVfModuleName("name");
+ vfModule.setModelCustomizationId("1");
+ doReturn(vfModule).when(bbSetupUtils).getAAIVfModule("1", "1");
+
+ List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
+ org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
+ vnfc.setModelInvariantId("1");
+ vnfc.setVnfcName("name");
+ vnfc.setModelCustomizationId("2");
+ vnfcs.add(vnfc);
+ doReturn(vnfcs).when(workflowAction).getRelatedResourcesInVfModule(any(), any(), any(), any());
+
+ CvnfcConfigurationCustomization vfModuleCustomization = new CvnfcConfigurationCustomization();
+ ConfigurationResource configuration = new ConfigurationResource();
+ configuration.setToscaNodeType("FabricConfiguration");
+ configuration.setModelUUID("1");
+ vfModuleCustomization.setConfigurationResource(configuration);
+
+ doReturn(vfModuleCustomization).when(catalogDbClient).getCvnfcCustomization("1", "1", "1", "2");
+
+ prepareDelegateExecution();
+ List<ExecuteBuildingBlock> flowsToExecute = new ArrayList<>();
flowsToExecute.add(ebbActivateVfModule);
+
+ ArgumentCaptor<DelegateExecution> executionCaptor = ArgumentCaptor.forClass(DelegateExecution.class);
+ ArgumentCaptor<ExecuteBuildingBlock> bbCaptor = ArgumentCaptor.forClass(ExecuteBuildingBlock.class);
+ ArgumentCaptor<List> listCaptor = ArgumentCaptor.forClass(List.class);
+
+ execution.setVariable("requestAction", "replaceInstance");
+ execution.setVariable("completed", true);
+
workflowActionBBTasks.postProcessingExecuteBBActivateVfModule(execution, ebbActivateVfModule, flowsToExecute);
- verify(workflowActionBBTasks, times(2)).postProcessingExecuteBBActivateVfModule(executionCaptor.capture(),
+ verify(workflowActionBBTasks, times(1)).postProcessingExecuteBBActivateVfModule(executionCaptor.capture(),
bbCaptor.capture(), listCaptor.capture());
- assertEquals(false, executionCaptor.getAllValues().get(0).getVariable("completed"));
- assertEquals(1, ((ArrayList) executionCaptor.getAllValues().get(0).getVariable("flowsToExecute")).size());
- assertEquals("2",
- ((ExecuteBuildingBlock) ((ArrayList) executionCaptor.getAllValues().get(0)
- .getVariable("flowsToExecute")).get(0)).getConfigurationResourceKeys()
- .getCvnfcCustomizationUUID());
+ assertEquals(true, executionCaptor.getAllValues().get(0).getVariable("completed"));
}
+
+
@Test
public void getExecuteBBForConfigTest() throws CloneNotSupportedException {
BuildingBlock bbActivateVfModule = new BuildingBlock().setBpmnFlowName("ActivateVfModuleBB");