summaryrefslogtreecommitdiffstats
path: root/bpmn/MSOCommonBPMN/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'bpmn/MSOCommonBPMN/src/test')
-rw-r--r--bpmn/MSOCommonBPMN/src/test/java/org/onap/so/BuildingBlockTestDataSetup.java1
-rw-r--r--bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/resource/InstnaceResourceListTest.java46
-rw-r--r--bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/resource/ResourceRequestBuilderTest.java419
-rw-r--r--bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupMapperLayerTest.java8
-rw-r--r--bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/ExecuteBuildlingBlockRainyDayTest.java43
-rw-r--r--bpmn/MSOCommonBPMN/src/test/java/org/onap/so/client/exception/ExceptionBuilderTest.java89
-rw-r--r--bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/aaiL3NetworkInputWithSubnets.json73
-rw-r--r--bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/l3NetworkExpectedWithSubnet.json56
-rw-r--r--bpmn/MSOCommonBPMN/src/test/resources/__files/InstanceResourceList/InstanceResourceList.json175
-rw-r--r--bpmn/MSOCommonBPMN/src/test/resources/__files/SERVICE-SO-REQ-INPUT.json299
-rw-r--r--bpmn/MSOCommonBPMN/src/test/resources/__files/UUI-SO-REQ.json1
11 files changed, 932 insertions, 278 deletions
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/BuildingBlockTestDataSetup.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/BuildingBlockTestDataSetup.java
index 79a94d5298..3bb417741f 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/BuildingBlockTestDataSetup.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/BuildingBlockTestDataSetup.java
@@ -325,6 +325,7 @@ public class BuildingBlockTestDataSetup {
gBBInput.setCustomer(buildCustomer());
}
gBBInput.getCustomer().getServiceSubscription().getServiceInstances().add(serviceInstance);
+ gBBInput.setServiceInstance(serviceInstance);
lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, serviceInstance.getServiceInstanceId());
return serviceInstance;
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/resource/InstnaceResourceListTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/resource/InstnaceResourceListTest.java
new file mode 100644
index 0000000000..3be67c965c
--- /dev/null
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/resource/InstnaceResourceListTest.java
@@ -0,0 +1,46 @@
+package org.onap.so.bpmn.common.resource;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.onap.so.bpmn.core.domain.GroupResource;
+import org.onap.so.bpmn.core.domain.Resource;
+import org.onap.so.bpmn.core.domain.ResourceType;
+import org.onap.so.bpmn.core.domain.VnfResource;
+import org.onap.so.bpmn.core.domain.VnfcResource;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+public class InstnaceResourceListTest {
+
+ public static String RESOURCE_PATH = "src/test/resources/__files/InstanceResourceList/";
+
+ @Test
+ public void testInstanceResourceList() throws IOException {
+ String uuiRequest = new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "InstanceResourceList" + ".json")));
+ List<Resource> instanceResourceList =
+ InstanceResourceList.getInstanceResourceList(createResourceSequence(), uuiRequest);
+ Assert.assertEquals(4, instanceResourceList.size());
+ Assert.assertEquals(ResourceType.VNF, instanceResourceList.get(0).getResourceType());
+ Assert.assertEquals(ResourceType.GROUP, instanceResourceList.get(1).getResourceType());
+ Assert.assertEquals(ResourceType.VNF, instanceResourceList.get(2).getResourceType());
+ Assert.assertEquals(ResourceType.GROUP, instanceResourceList.get(3).getResourceType());
+ }
+
+ private List<Resource> createResourceSequence() {
+ List<Resource> resourceList = new ArrayList<>();
+ VnfResource vnfResource = new VnfResource();
+ vnfResource.setResourceInput("{\"a\":\"[sdwansiteresource_list,INDEX,sdwansiteresource_list]\"}");
+
+ VnfcResource vnfcResource = new VnfcResource();
+ vnfcResource.setResourceInput("{\"a\":\"[sdwansitewan_list,INDEX,test]\"}");
+
+ GroupResource groupResource = new GroupResource();
+ groupResource.setVnfcs(Arrays.asList(vnfcResource));
+
+ return Arrays.asList(vnfResource, groupResource);
+ }
+}
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/resource/ResourceRequestBuilderTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/resource/ResourceRequestBuilderTest.java
index c7c181744f..557ae6df51 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/resource/ResourceRequestBuilderTest.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/resource/ResourceRequestBuilderTest.java
@@ -19,232 +19,93 @@
*/
package org.onap.so.bpmn.common.resource;
+import java.util.ArrayList;
+import org.junit.Assert;
+import org.junit.Before;
import org.junit.Test;
import org.onap.so.BaseTest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.onap.so.bpmn.core.domain.GroupResource;
+import org.onap.so.bpmn.core.domain.Resource;
+import org.onap.so.bpmn.core.domain.ResourceType;
+import org.onap.so.bpmn.core.domain.VnfResource;
+import org.onap.so.bpmn.core.domain.VnfcResource;
+import org.onap.so.bpmn.mock.FileUtil;
import static com.github.tomakehurst.wiremock.client.WireMock.get;
import static com.github.tomakehurst.wiremock.client.WireMock.ok;
import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;
import static org.junit.Assert.assertEquals;
-
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
public class ResourceRequestBuilderTest extends BaseTest {
- @Test
- public void getResourceInputTest() throws Exception {
+ private Map<String, Object> userInputMap = null;
+ private Map<String, Object> serviceInput = null;
+ @Before
+ public void initializeMockObjects() {
- wireMockServer.stubFor(get(urlEqualTo(
- "/ecomp/mso/catalog/v2/serviceResources?serviceModelUuid=c3954379-4efe-431c-8258-f84905b158e5"))
- .willReturn(ok("{ \"serviceResources\" : {\n" + "\t\"modelInfo\" : {\n"
- + "\t\t\"modelName\" : \"demoVFWCL\",\n"
- + "\t\t\"modelUuid\" : \"c3954379-4efe-431c-8258-f84905b158e5\",\n"
- + "\t\t\"modelInvariantUuid\" : \"0cbff61e-3b0a-4eed-97ce-b1b4faa03493\",\n"
- + "\t\t\"modelVersion\" : \"1.0\"\n" + "\t},\n"
- + "\t\"serviceType\" : \"\",\n" + "\t\"serviceRole\" : \"\",\n"
- + "\t\"environmentContext\" : null,\n" + "\t\"resourceOrder\" : \"res1,res2\",\n"
- + "\t\"workloadContext\" : \"Production\",\n" + "\t\"serviceVnfs\": [\n" + "\t\n"
- + "\t\t{ \"modelInfo\" : {\n"
- + "\t\t\t\"modelName\" : \"15968a6e-2fe5-41bf-a481\",\n"
- + "\t\t\t\"modelUuid\" : \"808abda3-2023-4105-92d2-e62644b61d53\",\n"
- + "\t\t\t\"modelInvariantUuid\" : \"6e4ffc7c-497e-4a77-970d-af966e642d31\",\n"
- + "\t\t\t\"modelVersion\" : \"1.0\",\n"
- + "\t\t\t\"modelCustomizationUuid\" : \"a00404d5-d7eb-4c46-b6b6-9cf2d087e545\",\n"
- + "\t\t\t\"modelInstanceName\" : \"15968a6e-2fe5-41bf-a481 0\"\n" + "\t\t\t},\n"
- + "\t\t\"toscaNodeType\" : \"org.openecomp.resource.vf.15968a6e2fe541bfA481\",\n"
- + "\t\t\"nfFunction\" \t: null,\n"
- + "\"resourceInput\":\"{\\\"a\\\":\\\"b\\\"}\","
- + "\t\t\"nfType\" \t\t: null,\n"
- + "\t\t\"nfRole\" \t\t: null,\n"
- + "\t\t\"nfNamingCode\" \t: null,\n"
- + "\t\t\"multiStageDesign\" : \"false\",\n" + "\t\t\t\"vfModules\": [\n"
- + "\t\t\t\t{\n" + "\t\t\t\t\t\"modelInfo\" : { \n"
- + "\t\t\t\t\t\t\"modelName\" : \"15968a6e2fe541bfA481..base_vfw..module-0\",\n"
- + "\t\t\t\t\t\t\"modelUuid\" : \"ec7fadde-1e5a-42f7-8255-cb19e475ff45\",\n"
- + "\t\t\t\t\t\t\"modelInvariantUuid\" : \"61ab8b64-a014-4cf3-8a5a-b5ef388f8819\",\n"
- + "\t\t\t\t\t\t\"modelVersion\" : \"1\",\n"
- + "\t\t\t\t\t\t\"modelCustomizationUuid\" : \"123aff6b-854f-4026-ae1e-cc74a3924576\"\n"
- + "\t\t\t\t\t},\t\t\"isBase\" : true,\n"
- + "\t\t\t\t\t\"vfModuleLabel\" : \"base_vfw\",\n"
- + "\t\t\t\t\t\"initialCount\" : 1,\n"
- + "\t\t\t\t\t\"hasVolumeGroup\" : true\n" + "\t\t\t\t}\n" + "\t\t\t]\n"
- + "\t\t},\n" + "\t\n" + "\t\t{ \"modelInfo\" : {\n"
- + "\t\t\t\"modelName\" : \"f971106a-248f-4202-9d1f\",\n"
- + "\t\t\t\"modelUuid\" : \"4fbc08a4-35ed-4a59-9e47-79975e4add7e\",\n"
- + "\t\t\t\"modelInvariantUuid\" : \"c669799e-adf1-46ae-8c70-48b326fe89f3\",\n"
- + "\t\t\t\"modelVersion\" : \"1.0\",\n"
- + "\t\t\t\"modelCustomizationUuid\" : \"e776449e-2b10-45c5-9217-2775c88ca1a0\",\n"
- + "\t\t\t\"modelInstanceName\" : \"f971106a-248f-4202-9d1f 0\"\n" + "\t\t\t},\n"
- + "\t\t\"toscaNodeType\" : \"org.openecomp.resource.vf.F971106a248f42029d1f\",\n"
- + "\t\t\"nfFunction\" \t: null,\n"
- + "\t\t\"nfType\" \t\t: null,\n"
- + "\t\t\"nfRole\" \t\t: null,\n"
- + "\"resourceInput\":\"{\\\"a\\\":\\\"key|default_value\\\"}\","
- + "\t\t\"nfNamingCode\" \t: null,\n"
- + "\t\t\"multiStageDesign\" : \"false\",\n" + "\t\t\t\"vfModules\": [\n"
- + "\t\t\t\t{\n" + "\t\t\t\t\t\"modelInfo\" : { \n"
- + "\t\t\t\t\t\t\"modelName\" : \"F971106a248f42029d1f..base_vpkg..module-0\",\n"
- + "\t\t\t\t\t\t\"modelUuid\" : \"47d5273a-7456-4786-9035-b3911944cc35\",\n"
- + "\t\t\t\t\t\t\"modelInvariantUuid\" : \"0ea3e57e-ac7a-425a-928b-b4aee8806c15\",\n"
- + "\t\t\t\t\t\t\"modelVersion\" : \"1\",\n"
- + "\t\t\t\t\t\t\"modelCustomizationUuid\" : \"9ed9fef6-d3f8-4433-9807-7e23393a16bc\"\n"
- + "\t\t\t\t\t},\t\t\"isBase\" : true,\n"
- + "\t\t\t\t\t\"vfModuleLabel\" : \"base_vpkg\",\n"
- + "\t\t\t\t\t\"initialCount\" : 1,\n"
- + "\t\t\t\t\t\"hasVolumeGroup\" : true\n" + "\t\t\t\t}\n" + "\t\t\t]\n"
- + "\t\t}\n" + "\t],\n" + "\t\"serviceNetworks\": [],\n"
- + "\t\"serviceAllottedResources\": []\n" + "\t}}")));
+ if (null == this.userInputMap) {
+ ObjectMapper mapper = new ObjectMapper();
- // when(UrnPropertiesReader.getVariable(anyString())).thenReturn("http://localhost:8080");
+ try {
+ String serviceInputRequest = FileUtil.readResourceFile("__files/UUI-SO-REQ.json");
+ this.userInputMap = mapper.readValue(serviceInputRequest, new TypeReference<Map<String, Object>>() {});
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ if (null == this.serviceInput) {
+
+ try {
+ ObjectMapper mapper = new ObjectMapper();
+ String serviceInputRequest = FileUtil.readResourceFile("__files/SERVICE-SO-REQ-INPUT.json");
+ this.serviceInput = mapper.readValue(serviceInputRequest, new TypeReference<Map<String, Object>>() {});
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ }
+
+ @Test
+ public void getResourceInputTest() throws Exception {
+
+ VnfResource resource = new VnfResource();
+ resource.setResourceType(ResourceType.VNF);
+ resource.setResourceInput("{\"a\":\"key|default_value\"}");
HashMap serviceInput = new HashMap();
serviceInput.put("key", "value");
- Map<String, Object> stringObjectMap = ResourceRequestBuilder.buildResouceRequest(
- "c3954379-4efe-431c-8258-f84905b158e5", "e776449e-2b10-45c5-9217-2775c88ca1a0", serviceInput);
+ Map<String, Object> stringObjectMap = ResourceRequestBuilder.buildResouceRequest(resource, serviceInput, null);
assertEquals(stringObjectMap.get("a"), "value");
}
@Test
public void getResourceInputDefaultValueTest() throws Exception {
-
- wireMockServer.stubFor(get(urlEqualTo(
- "/ecomp/mso/catalog/v2/serviceResources?serviceModelUuid=c3954379-4efe-431c-8258-f84905b158e5"))
- .willReturn(ok("{ \"serviceResources\" : {\n" + "\t\"modelInfo\" : {\n"
- + "\t\t\"modelName\" : \"demoVFWCL\",\n"
- + "\t\t\"modelUuid\" : \"c3954379-4efe-431c-8258-f84905b158e5\",\n"
- + "\t\t\"modelInvariantUuid\" : \"0cbff61e-3b0a-4eed-97ce-b1b4faa03493\",\n"
- + "\t\t\"modelVersion\" : \"1.0\"\n" + "\t},\n"
- + "\t\"serviceType\" : \"\",\n" + "\t\"serviceRole\" : \"\",\n"
- + "\t\"environmentContext\" : null,\n" + "\t\"workloadContext\" : \"Production\",\n"
- + "\t\"serviceVnfs\": [\n" + "\t\n" + "\t\t{ \"modelInfo\" : {\n"
- + "\t\t\t\"modelName\" : \"15968a6e-2fe5-41bf-a481\",\n"
- + "\t\t\t\"modelUuid\" : \"808abda3-2023-4105-92d2-e62644b61d53\",\n"
- + "\t\t\t\"modelInvariantUuid\" : \"6e4ffc7c-497e-4a77-970d-af966e642d31\",\n"
- + "\t\t\t\"modelVersion\" : \"1.0\",\n"
- + "\t\t\t\"modelCustomizationUuid\" : \"a00404d5-d7eb-4c46-b6b6-9cf2d087e545\",\n"
- + "\t\t\t\"modelInstanceName\" : \"15968a6e-2fe5-41bf-a481 0\"\n" + "\t\t\t},\n"
- + "\t\t\"toscaNodeType\" : \"org.openecomp.resource.vf.15968a6e2fe541bfA481\",\n"
- + "\t\t\"nfFunction\" \t: null,\n"
- + "\"resourceInput\":\"{\\\"a\\\":\\\"b\\\"}\","
- + "\t\t\"nfType\" \t\t: null,\n"
- + "\t\t\"nfRole\" \t\t: null,\n"
- + "\t\t\"nfNamingCode\" \t: null,\n"
- + "\t\t\"multiStageDesign\" : \"false\",\n" + "\t\t\t\"vfModules\": [\n"
- + "\t\t\t\t{\n" + "\t\t\t\t\t\"modelInfo\" : { \n"
- + "\t\t\t\t\t\t\"modelName\" : \"15968a6e2fe541bfA481..base_vfw..module-0\",\n"
- + "\t\t\t\t\t\t\"modelUuid\" : \"ec7fadde-1e5a-42f7-8255-cb19e475ff45\",\n"
- + "\t\t\t\t\t\t\"modelInvariantUuid\" : \"61ab8b64-a014-4cf3-8a5a-b5ef388f8819\",\n"
- + "\t\t\t\t\t\t\"modelVersion\" : \"1\",\n"
- + "\t\t\t\t\t\t\"modelCustomizationUuid\" : \"123aff6b-854f-4026-ae1e-cc74a3924576\"\n"
- + "\t\t\t\t\t},\t\t\"isBase\" : true,\n"
- + "\t\t\t\t\t\"vfModuleLabel\" : \"base_vfw\",\n"
- + "\t\t\t\t\t\"initialCount\" : 1,\n"
- + "\t\t\t\t\t\"hasVolumeGroup\" : true\n" + "\t\t\t\t}\n" + "\t\t\t]\n"
- + "\t\t},\n" + "\t\n" + "\t\t{ \"modelInfo\" : {\n"
- + "\t\t\t\"modelName\" : \"f971106a-248f-4202-9d1f\",\n"
- + "\t\t\t\"modelUuid\" : \"4fbc08a4-35ed-4a59-9e47-79975e4add7e\",\n"
- + "\t\t\t\"modelInvariantUuid\" : \"c669799e-adf1-46ae-8c70-48b326fe89f3\",\n"
- + "\t\t\t\"modelVersion\" : \"1.0\",\n"
- + "\t\t\t\"modelCustomizationUuid\" : \"e776449e-2b10-45c5-9217-2775c88ca1a0\",\n"
- + "\t\t\t\"modelInstanceName\" : \"f971106a-248f-4202-9d1f 0\"\n" + "\t\t\t},\n"
- + "\t\t\"toscaNodeType\" : \"org.openecomp.resource.vf.F971106a248f42029d1f\",\n"
- + "\t\t\"nfFunction\" \t: null,\n"
- + "\t\t\"nfType\" \t\t: null,\n"
- + "\t\t\"nfRole\" \t\t: null,\n"
- + "\"resourceInput\":\"{\\\"a\\\":\\\"key|default_value\\\"}\","
- + "\t\t\"nfNamingCode\" \t: null,\n"
- + "\t\t\"multiStageDesign\" : \"false\",\n" + "\t\t\t\"vfModules\": [\n"
- + "\t\t\t\t{\n" + "\t\t\t\t\t\"modelInfo\" : { \n"
- + "\t\t\t\t\t\t\"modelName\" : \"F971106a248f42029d1f..base_vpkg..module-0\",\n"
- + "\t\t\t\t\t\t\"modelUuid\" : \"47d5273a-7456-4786-9035-b3911944cc35\",\n"
- + "\t\t\t\t\t\t\"modelInvariantUuid\" : \"0ea3e57e-ac7a-425a-928b-b4aee8806c15\",\n"
- + "\t\t\t\t\t\t\"modelVersion\" : \"1\",\n"
- + "\t\t\t\t\t\t\"modelCustomizationUuid\" : \"9ed9fef6-d3f8-4433-9807-7e23393a16bc\"\n"
- + "\t\t\t\t\t},\t\t\"isBase\" : true,\n"
- + "\t\t\t\t\t\"vfModuleLabel\" : \"base_vpkg\",\n"
- + "\t\t\t\t\t\"initialCount\" : 1,\n"
- + "\t\t\t\t\t\"hasVolumeGroup\" : true\n" + "\t\t\t\t}\n" + "\t\t\t]\n"
- + "\t\t}\n" + "\t],\n" + "\t\"serviceNetworks\": [],\n"
- + "\t\"serviceAllottedResources\": []\n" + "\t}}")));
-
- // when(UrnPropertiesReader.getVariable(anyString())).thenReturn("http://localhost:8080");
+ VnfResource resource = new VnfResource();
+ resource.setResourceType(ResourceType.VNF);
+ resource.setResourceInput("{\"a\":\"key|default_value\"}");
HashMap serviceInput = new HashMap();
serviceInput.put("key1", "value");
- Map<String, Object> stringObjectMap = ResourceRequestBuilder.buildResouceRequest(
- "c3954379-4efe-431c-8258-f84905b158e5", "e776449e-2b10-45c5-9217-2775c88ca1a0", serviceInput);
+ Map<String, Object> stringObjectMap = ResourceRequestBuilder.buildResouceRequest(resource, serviceInput, null);
assertEquals(stringObjectMap.get("a"), "default_value");
}
@Test
public void getResourceInputValueNoDefaultTest() throws Exception {
-
- wireMockServer.stubFor(get(urlEqualTo(
- "/ecomp/mso/catalog/v2/serviceResources?serviceModelUuid=c3954379-4efe-431c-8258-f84905b158e5"))
- .willReturn(ok("{ \"serviceResources\" : {\n" + "\t\"modelInfo\" : {\n"
- + "\t\t\"modelName\" : \"demoVFWCL\",\n"
- + "\t\t\"modelUuid\" : \"c3954379-4efe-431c-8258-f84905b158e5\",\n"
- + "\t\t\"modelInvariantUuid\" : \"0cbff61e-3b0a-4eed-97ce-b1b4faa03493\",\n"
- + "\t\t\"modelVersion\" : \"1.0\"\n" + "\t},\n"
- + "\t\"serviceType\" : \"\",\n" + "\t\"serviceRole\" : \"\",\n"
- + "\t\"environmentContext\" : null,\n" + "\t\"workloadContext\" : \"Production\",\n"
- + "\t\"serviceVnfs\": [\n" + "\t\n" + "\t\t{ \"modelInfo\" : {\n"
- + "\t\t\t\"modelName\" : \"15968a6e-2fe5-41bf-a481\",\n"
- + "\t\t\t\"modelUuid\" : \"808abda3-2023-4105-92d2-e62644b61d53\",\n"
- + "\t\t\t\"modelInvariantUuid\" : \"6e4ffc7c-497e-4a77-970d-af966e642d31\",\n"
- + "\t\t\t\"modelVersion\" : \"1.0\",\n"
- + "\t\t\t\"modelCustomizationUuid\" : \"a00404d5-d7eb-4c46-b6b6-9cf2d087e545\",\n"
- + "\t\t\t\"modelInstanceName\" : \"15968a6e-2fe5-41bf-a481 0\"\n" + "\t\t\t},\n"
- + "\t\t\"toscaNodeType\" : \"org.openecomp.resource.vf.15968a6e2fe541bfA481\",\n"
- + "\t\t\"nfFunction\" \t: null,\n"
- + "\"resourceInput\":\"{\\\"a\\\":\\\"b\\\"}\","
- + "\t\t\"nfType\" \t\t: null,\n"
- + "\t\t\"nfRole\" \t\t: null,\n"
- + "\t\t\"nfNamingCode\" \t: null,\n"
- + "\t\t\"multiStageDesign\" : \"false\",\n" + "\t\t\t\"vfModules\": [\n"
- + "\t\t\t\t{\n" + "\t\t\t\t\t\"modelInfo\" : { \n"
- + "\t\t\t\t\t\t\"modelName\" : \"15968a6e2fe541bfA481..base_vfw..module-0\",\n"
- + "\t\t\t\t\t\t\"modelUuid\" : \"ec7fadde-1e5a-42f7-8255-cb19e475ff45\",\n"
- + "\t\t\t\t\t\t\"modelInvariantUuid\" : \"61ab8b64-a014-4cf3-8a5a-b5ef388f8819\",\n"
- + "\t\t\t\t\t\t\"modelVersion\" : \"1\",\n"
- + "\t\t\t\t\t\t\"modelCustomizationUuid\" : \"123aff6b-854f-4026-ae1e-cc74a3924576\"\n"
- + "\t\t\t\t\t},\t\t\"isBase\" : true,\n"
- + "\t\t\t\t\t\"vfModuleLabel\" : \"base_vfw\",\n"
- + "\t\t\t\t\t\"initialCount\" : 1,\n"
- + "\t\t\t\t\t\"hasVolumeGroup\" : true\n" + "\t\t\t\t}\n" + "\t\t\t]\n"
- + "\t\t},\n" + "\t\n" + "\t\t{ \"modelInfo\" : {\n"
- + "\t\t\t\"modelName\" : \"f971106a-248f-4202-9d1f\",\n"
- + "\t\t\t\"modelUuid\" : \"4fbc08a4-35ed-4a59-9e47-79975e4add7e\",\n"
- + "\t\t\t\"modelInvariantUuid\" : \"c669799e-adf1-46ae-8c70-48b326fe89f3\",\n"
- + "\t\t\t\"modelVersion\" : \"1.0\",\n"
- + "\t\t\t\"modelCustomizationUuid\" : \"e776449e-2b10-45c5-9217-2775c88ca1a0\",\n"
- + "\t\t\t\"modelInstanceName\" : \"f971106a-248f-4202-9d1f 0\"\n" + "\t\t\t},\n"
- + "\t\t\"toscaNodeType\" : \"org.openecomp.resource.vf.F971106a248f42029d1f\",\n"
- + "\t\t\"nfFunction\" \t: null,\n"
- + "\t\t\"nfType\" \t\t: null,\n"
- + "\t\t\"nfRole\" \t\t: null,\n"
- + "\"resourceInput\":\"{\\\"a\\\":\\\"value\\\"}\","
- + "\t\t\"nfNamingCode\" \t: null,\n"
- + "\t\t\"multiStageDesign\" : \"false\",\n" + "\t\t\t\"vfModules\": [\n"
- + "\t\t\t\t{\n" + "\t\t\t\t\t\"modelInfo\" : { \n"
- + "\t\t\t\t\t\t\"modelName\" : \"F971106a248f42029d1f..base_vpkg..module-0\",\n"
- + "\t\t\t\t\t\t\"modelUuid\" : \"47d5273a-7456-4786-9035-b3911944cc35\",\n"
- + "\t\t\t\t\t\t\"modelInvariantUuid\" : \"0ea3e57e-ac7a-425a-928b-b4aee8806c15\",\n"
- + "\t\t\t\t\t\t\"modelVersion\" : \"1\",\n"
- + "\t\t\t\t\t\t\"modelCustomizationUuid\" : \"9ed9fef6-d3f8-4433-9807-7e23393a16bc\"\n"
- + "\t\t\t\t\t},\t\t\"isBase\" : true,\n"
- + "\t\t\t\t\t\"vfModuleLabel\" : \"base_vpkg\",\n"
- + "\t\t\t\t\t\"initialCount\" : 1,\n"
- + "\t\t\t\t\t\"hasVolumeGroup\" : true\n" + "\t\t\t\t}\n" + "\t\t\t]\n"
- + "\t\t}\n" + "\t],\n" + "\t\"serviceNetworks\": [],\n"
- + "\t\"serviceAllottedResources\": []\n" + "\t}}")));
-
- // when(UrnPropertiesReader.getVariable(anyString())).thenReturn("http://localhost:8080");
+ VnfResource resource = new VnfResource();
+ resource.setResourceType(ResourceType.VNF);
+ resource.setResourceInput("{\"a\":\"value\"}");
HashMap serviceInput = new HashMap();
serviceInput.put("key1", "value");
- Map<String, Object> stringObjectMap = ResourceRequestBuilder.buildResouceRequest(
- "c3954379-4efe-431c-8258-f84905b158e5", "e776449e-2b10-45c5-9217-2775c88ca1a0", serviceInput);
+ Map<String, Object> stringObjectMap = ResourceRequestBuilder.buildResouceRequest(resource, serviceInput, null);
assertEquals(stringObjectMap.get("a"), "value");
}
@@ -322,68 +183,138 @@ public class ResourceRequestBuilderTest extends BaseTest {
@Test
public void getResourceInputWithEmptyServiceResourcesTest() throws Exception {
- wireMockServer.stubFor(get(urlEqualTo(
- "/ecomp/mso/catalog/v2/serviceResources?serviceModelUuid=c3954379-4efe-431c-8258-f84905b158e5"))
- .willReturn(ok("{ \"serviceResources\" : {\n" + "\t\"modelInfo\" : {\n"
- + "\t\t\"modelName\" : \"demoVFWCL\",\n"
- + "\t\t\"modelUuid\" : \"c3954379-4efe-431c-8258-f84905b158e5\",\n"
- + "\t\t\"modelInvariantUuid\" : \"0cbff61e-3b0a-4eed-97ce-b1b4faa03493\",\n"
- + "\t\t\"modelVersion\" : \"1.0\"\n" + "\t},\n"
- + "\t\"serviceType\" : \"\",\n" + "\t\"serviceRole\" : \"\",\n"
- + "\t\"environmentContext\" : null,\n" + "\t\"workloadContext\" : \"Production\",\n"
- + "\t\"serviceVnfs\": [], \n" + "\t\"serviceNetworks\": [],\n"
- + "\t\"serviceAllottedResources\": []\n" + "\t}}")));
+ VnfResource resource = new VnfResource();
+ resource.setResourceType(ResourceType.VNF);
+ resource.setResourceInput(null);
HashMap serviceInput = new HashMap();
serviceInput.put("key1", "value");
- Map<String, Object> stringObjectMap = ResourceRequestBuilder.buildResouceRequest(
- "c3954379-4efe-431c-8258-f84905b158e5", "e776449e-2b10-45c5-9217-2775c88ca1a0", serviceInput);
+ Map<String, Object> stringObjectMap = ResourceRequestBuilder.buildResouceRequest(resource, serviceInput, null);
assertEquals(0, stringObjectMap.size());
}
@Test
public void testGetResourceInputEmptyValue() {
- wireMockServer.stubFor(get(urlEqualTo(
- "/ecomp/mso/catalog/v2/serviceResources?serviceModelUuid=c3954379-4efe-431c-8258-f84905b158e5"))
- .willReturn(ok("{ \"serviceResources\" : {\n" + "\t\"modelInfo\" : {\n"
- + "\t\t\"modelName\" : \"demoVFWCL\",\n"
- + "\t\t\"modelUuid\" : \"c3954379-4efe-431c-8258-f84905b158e5\",\n"
- + "\t\t\"modelInvariantUuid\" : \"0cbff61e-3b0a-4eed-97ce-b1b4faa03493\",\n"
- + "\t\t\"modelVersion\" : \"1.0\"\n" + "\t},\n"
- + "\t\"serviceType\" : \"\",\n" + "\t\"serviceRole\" : \"\",\n"
- + "\t\"environmentContext\" : null,\n" + "\t\"resourceOrder\" : \"res1,res2\",\n"
- + "\t\"workloadContext\" : \"Production\",\n" + "\t\"serviceVnfs\": [\n" + "\t\n"
- + "\t\t{ \"modelInfo\" : {\n"
- + "\t\t\t\"modelName\" : \"15968a6e-2fe5-41bf-a481\",\n"
- + "\t\t\t\"modelUuid\" : \"808abda3-2023-4105-92d2-e62644b61d53\",\n"
- + "\t\t\t\"modelInvariantUuid\" : \"6e4ffc7c-497e-4a77-970d-af966e642d31\",\n"
- + "\t\t\t\"modelVersion\" : \"1.0\",\n"
- + "\t\t\t\"modelCustomizationUuid\" : \"a00404d5-d7eb-4c46-b6b6-9cf2d087e545\",\n"
- + "\t\t\t\"modelInstanceName\" : \"15968a6e-2fe5-41bf-a481 0\"\n" + "\t\t\t},\n"
- + "\t\t\"toscaNodeType\" : \"org.openecomp.resource.vf.15968a6e2fe541bfA481\",\n"
- + "\t\t\"nfFunction\" \t: null,\n"
- + "\"resourceInput\":\"{\\\"a\\\":\\\"key1|\\\"}\","
- + "\t\t\"nfType\" \t\t: null,\n"
- + "\t\t\"nfRole\" \t\t: null,\n"
- + "\t\t\"nfNamingCode\" \t: null,\n"
- + "\t\t\"multiStageDesign\" : \"false\",\n" + "\t\t\t\"vfModules\": [\n"
- + "\t\t\t\t{\n" + "\t\t\t\t\t\"modelInfo\" : { \n"
- + "\t\t\t\t\t\t\"modelName\" : \"15968a6e2fe541bfA481..base_vfw..module-0\",\n"
- + "\t\t\t\t\t\t\"modelUuid\" : \"ec7fadde-1e5a-42f7-8255-cb19e475ff45\",\n"
- + "\t\t\t\t\t\t\"modelInvariantUuid\" : \"61ab8b64-a014-4cf3-8a5a-b5ef388f8819\",\n"
- + "\t\t\t\t\t\t\"modelVersion\" : \"1\",\n"
- + "\t\t\t\t\t\t\"modelCustomizationUuid\" : \"123aff6b-854f-4026-ae1e-cc74a3924576\"\n"
- + "\t\t\t\t\t},\t\t\"isBase\" : true,\n"
- + "\t\t\t\t\t\"vfModuleLabel\" : \"base_vfw\",\n"
- + "\t\t\t\t\t\"initialCount\" : 1,\n"
- + "\t\t\t\t\t\"hasVolumeGroup\" : true\n" + "\t\t\t\t}\n" + "\t\t\t]\n"
- + "\t\t}]}}")));
+
+ VnfResource resource = new VnfResource();
+ resource.setResourceType(ResourceType.VNF);
+ resource.setResourceInput("{\"a\":\"key1|\"}");
HashMap serviceInput = new HashMap();
serviceInput.put("key2", "value");
- Map<String, Object> stringObjectMap = ResourceRequestBuilder.buildResouceRequest(
- "c3954379-4efe-431c-8258-f84905b158e5", "a00404d5-d7eb-4c46-b6b6-9cf2d087e545", serviceInput);
+ Map<String, Object> stringObjectMap = ResourceRequestBuilder.buildResouceRequest(resource, serviceInput, null);
assertEquals(stringObjectMap.get("a"), "");
}
+ @Test
+ public void getListResourceInputTest() throws Exception {
+
+ List<Map> vnfdata = null;
+
+ List<Resource> resources = new ArrayList<>();
+ if (this.serviceInput.containsKey("serviceResources")) {
+ vnfdata = (List<Map>) ((Map) this.serviceInput.get("serviceResources")).get("serviceVnfs");
+ }
+ assertNotNull(vnfdata);
+ vnfdata.forEach(e -> {
+ if (e.get("resourceType").equals("VNF")) {
+ VnfResource r = new VnfResource();
+ r.setResourceInput(e.get("resourceInput").toString());
+ resources.add(r);
+ } else if (e.get("resourceType").equals("GROUP")) {
+ GroupResource r = new GroupResource();
+ VnfcResource vfc = new VnfcResource();
+ vfc.setResourceInput(e.get("resourceInput").toString());
+ List<VnfcResource> vfcList = new ArrayList();
+ vfcList.add(vfc);
+ r.setVnfcs(vfcList);
+ resources.add(r);
+ }
+ });
+
+ assertEquals(9, resources.size());
+
+ // VF level request
+ Map<String, Object> currentVFData = new HashMap<>();
+ Map<String, Object> stringObjectMap =
+ ResourceRequestBuilder.buildResouceRequest(resources.get(0), this.userInputMap, currentVFData);
+ assertEquals("b", stringObjectMap.get("a"));
+ assertEquals("hub_spoke", stringObjectMap.get("topology"));
+ assertEquals("defaultvpn", stringObjectMap.get("name"));
+ assertTrue(((String) stringObjectMap.get("sitelist")).contains("["));
+
+ // vfc level request
+ stringObjectMap =
+ ResourceRequestBuilder.buildResouceRequest(resources.get(1), this.userInputMap, currentVFData);
+ assertEquals("", stringObjectMap.get("a"));
+ assertEquals("layer3-port", stringObjectMap.get("portswitch"));
+ assertEquals("192.168.10.1", stringObjectMap.get("ipAddress"));
+ assertEquals("vCPE", stringObjectMap.get("deviceName"));
+
+ // vfc level request
+ stringObjectMap =
+ ResourceRequestBuilder.buildResouceRequest(resources.get(2), this.userInputMap, currentVFData);
+ assertEquals("", stringObjectMap.get("a"));
+ assertEquals("layer2-port", stringObjectMap.get("portswitch"));
+ assertEquals("192.168.11.1", stringObjectMap.get("ipAddress"));
+ assertEquals("CPE_Beijing", stringObjectMap.get("deviceName"));
+
+ // VF level request
+ stringObjectMap =
+ ResourceRequestBuilder.buildResouceRequest(resources.get(3), this.userInputMap, currentVFData);
+ assertEquals("Huawei Private Cloud", stringObjectMap.get("address"));
+ assertEquals("dsvpn_hub1", stringObjectMap.get("role"));
+ assertTrue(((String) stringObjectMap.get("wanlist")).contains("["));
+ assertTrue(((String) stringObjectMap.get("devlist")).contains("["));
+
+ // VFC request
+ stringObjectMap =
+ ResourceRequestBuilder.buildResouceRequest(resources.get(4), this.userInputMap, currentVFData);
+ assertEquals("Huawei Private Cloud", stringObjectMap.get("address"));
+ assertEquals("20000", stringObjectMap.get("postcode"));
+ assertEquals("single_gateway", stringObjectMap.get("type"));
+ assertEquals("vCPE", stringObjectMap.get("deviceName"));
+ assertEquals("DHCP", stringObjectMap.get("ipMode"));
+
+ // VFC request again
+ stringObjectMap =
+ ResourceRequestBuilder.buildResouceRequest(resources.get(5), this.userInputMap, currentVFData);
+ assertEquals("Huawei Private Cloud", stringObjectMap.get("address"));
+ assertEquals("20000", stringObjectMap.get("postcode"));
+ assertEquals("single_gateway", stringObjectMap.get("type"));
+ assertEquals("20.20.20.1", stringObjectMap.get("systemip"));
+ assertEquals("default_ipv6", stringObjectMap.get("systemipv6"));
+ assertEquals("VNF", stringObjectMap.get("devclass"));
+
+ // VF level request
+ stringObjectMap =
+ ResourceRequestBuilder.buildResouceRequest(resources.get(6), this.userInputMap, currentVFData);
+ assertEquals("Huawei Public Cloud", stringObjectMap.get("address"));
+ assertEquals("dsvpn_hub", stringObjectMap.get("role"));
+ assertTrue(((String) stringObjectMap.get("wanlist")).contains("["));
+ assertTrue(((String) stringObjectMap.get("devlist")).contains("["));
+
+ // VFC request
+ stringObjectMap =
+ ResourceRequestBuilder.buildResouceRequest(resources.get(7), this.userInputMap, currentVFData);
+ assertEquals("Huawei Public Cloud", stringObjectMap.get("address"));
+ assertEquals("20001", stringObjectMap.get("postcode"));
+ assertEquals("multiple_gateway", stringObjectMap.get("type"));
+ assertEquals("CPE_Beijing", stringObjectMap.get("deviceName"));
+ assertEquals("Static", stringObjectMap.get("ipMode"));
+
+ // VFC request again
+ stringObjectMap =
+ ResourceRequestBuilder.buildResouceRequest(resources.get(8), this.userInputMap, currentVFData);
+ assertEquals("Huawei Public Cloud", stringObjectMap.get("address"));
+ assertEquals("20001", stringObjectMap.get("postcode"));
+ assertEquals("multiple_gateway", stringObjectMap.get("type"));
+ assertEquals("20.20.20.2", stringObjectMap.get("systemip"));
+ assertEquals("default_ipv6", stringObjectMap.get("systemipv6"));
+ assertEquals("PNF", stringObjectMap.get("devclass"));
+
+
+ }
+
+
}
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupMapperLayerTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupMapperLayerTest.java
index 39650a2142..13d2b7d3d3 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupMapperLayerTest.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupMapperLayerTest.java
@@ -398,10 +398,12 @@ public class BBInputSetupMapperLayerTest {
@Test
public void testMapAAIL3NetworkIntoL3Network() throws IOException {
- L3Network expected = mapper.readValue(new File(RESOURCE_PATH + "l3NetworkExpected.json"), L3Network.class);
+ L3Network expected =
+ mapper.readValue(new File(RESOURCE_PATH + "l3NetworkExpectedWithSubnet.json"), L3Network.class);
- org.onap.aai.domain.yang.L3Network aaiL3Network = mapper.readValue(
- new File(RESOURCE_PATH + "aaiL3NetworkInput.json"), org.onap.aai.domain.yang.L3Network.class);
+ org.onap.aai.domain.yang.L3Network aaiL3Network =
+ mapper.readValue(new File(RESOURCE_PATH + "aaiL3NetworkInputWithSubnets.json"),
+ org.onap.aai.domain.yang.L3Network.class);
L3Network actual = bbInputSetupMapperLayer.mapAAIL3Network(aaiL3Network);
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/ExecuteBuildlingBlockRainyDayTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/ExecuteBuildlingBlockRainyDayTest.java
index e8d597a823..c5da3cbd51 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/ExecuteBuildlingBlockRainyDayTest.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/ExecuteBuildlingBlockRainyDayTest.java
@@ -68,6 +68,8 @@ public class ExecuteBuildlingBlockRainyDayTest extends BaseTest {
delegateExecution.setVariable("WorkflowException", new WorkflowException("", 7000, ""));
delegateExecution.setVariable("buildingBlock", executeBuildingBlock);
delegateExecution.setVariable("lookupKeyMap", lookupKeyMap);
+
+ delegateExecution.setVariable("WorkflowException", new WorkflowException("processKey", 7000, "errorMessage"));
}
@Test
@@ -101,12 +103,10 @@ public class ExecuteBuildlingBlockRainyDayTest extends BaseTest {
rainyDayHandlerStatus.setPolicy("Rollback");
rainyDayHandlerStatus.setWorkStep(ASTERISK);
- doReturn(rainyDayHandlerStatus).when(MOCK_catalogDbClient)
- .getRainyDayHandlerStatusByFlowNameAndServiceTypeAndVnfTypeAndErrorCodeAndWorkStep(
- "AssignServiceInstanceBB", "st1", "vnft1", "7000", "*");
+ doReturn(rainyDayHandlerStatus).when(MOCK_catalogDbClient).getRainyDayHandlerStatus("AssignServiceInstanceBB",
+ "st1", "vnft1", "7000", "*", "errorMessage");
executeBuildingBlockRainyDay.queryRainyDayTable(delegateExecution, true);
-
assertEquals("Rollback", delegateExecution.getVariable("handlingCode"));
}
@@ -126,15 +126,9 @@ public class ExecuteBuildlingBlockRainyDayTest extends BaseTest {
rainyDayHandlerStatus.setPolicy("Rollback");
rainyDayHandlerStatus.setWorkStep(ASTERISK);
- doReturn(null).when(MOCK_catalogDbClient)
- .getRainyDayHandlerStatusByFlowNameAndServiceTypeAndVnfTypeAndErrorCodeAndWorkStep(
- "AssignServiceInstanceBB", "st1", "vnft1", "7000", ASTERISK);
- doReturn(rainyDayHandlerStatus).when(MOCK_catalogDbClient)
- .getRainyDayHandlerStatusByFlowNameAndServiceTypeAndVnfTypeAndErrorCodeAndWorkStep(
- "AssignServiceInstanceBB", ASTERISK, ASTERISK, ASTERISK, ASTERISK);
-
+ doReturn(rainyDayHandlerStatus).when(MOCK_catalogDbClient).getRainyDayHandlerStatus("AssignServiceInstanceBB",
+ "st1", "vnft1", ASTERISK, ASTERISK, "errorMessage");
executeBuildingBlockRainyDay.queryRainyDayTable(delegateExecution, true);
-
assertEquals("Rollback", delegateExecution.getVariable("handlingCode"));
assertEquals(5, delegateExecution.getVariable("maxRetries"));
}
@@ -145,9 +139,8 @@ public class ExecuteBuildlingBlockRainyDayTest extends BaseTest {
serviceInstance.getModelInfoServiceInstance().setServiceType("st1");
vnf.setVnfType("vnft1");
delegateExecution.setVariable("aLaCarte", true);
- doReturn(null).when(MOCK_catalogDbClient)
- .getRainyDayHandlerStatusByFlowNameAndServiceTypeAndVnfTypeAndErrorCodeAndWorkStep(isA(String.class),
- isA(String.class), isA(String.class), isA(String.class), isA(String.class));
+ doReturn(null).when(MOCK_catalogDbClient).getRainyDayHandlerStatus(isA(String.class), isA(String.class),
+ isA(String.class), isA(String.class), isA(String.class), isA(String.class));
delegateExecution.setVariable("suppressRollback", false);
executeBuildingBlockRainyDay.queryRainyDayTable(delegateExecution, true);
@@ -157,9 +150,8 @@ public class ExecuteBuildlingBlockRainyDayTest extends BaseTest {
@Test
public void queryRainyDayTableExceptionTest() {
- doThrow(RuntimeException.class).when(MOCK_catalogDbClient)
- .getRainyDayHandlerStatusByFlowNameAndServiceTypeAndVnfTypeAndErrorCodeAndWorkStep(isA(String.class),
- isA(String.class), isA(String.class), isA(String.class), isA(String.class));
+ doThrow(RuntimeException.class).when(MOCK_catalogDbClient).getRainyDayHandlerStatus(isA(String.class),
+ isA(String.class), isA(String.class), isA(String.class), isA(String.class), isA(String.class));
delegateExecution.setVariable("aLaCarte", true);
executeBuildingBlockRainyDay.queryRainyDayTable(delegateExecution, true);
delegateExecution.setVariable("suppressRollback", false);
@@ -184,9 +176,8 @@ public class ExecuteBuildlingBlockRainyDayTest extends BaseTest {
rainyDayHandlerStatus.setWorkStep(ASTERISK);
rainyDayHandlerStatus.setSecondaryPolicy("Abort");
- doReturn(rainyDayHandlerStatus).when(MOCK_catalogDbClient)
- .getRainyDayHandlerStatusByFlowNameAndServiceTypeAndVnfTypeAndErrorCodeAndWorkStep(
- "AssignServiceInstanceBB", "st1", "vnft1", "7000", "*");
+ doReturn(rainyDayHandlerStatus).when(MOCK_catalogDbClient).getRainyDayHandlerStatus("AssignServiceInstanceBB",
+ "st1", "vnft1", "7000", "*", "errorMessage");
executeBuildingBlockRainyDay.queryRainyDayTable(delegateExecution, false);
@@ -210,9 +201,8 @@ public class ExecuteBuildlingBlockRainyDayTest extends BaseTest {
rainyDayHandlerStatus.setWorkStep(ASTERISK);
rainyDayHandlerStatus.setSecondaryPolicy("Abort");
- doReturn(rainyDayHandlerStatus).when(MOCK_catalogDbClient)
- .getRainyDayHandlerStatusByFlowNameAndServiceTypeAndVnfTypeAndErrorCodeAndWorkStep(
- "AssignServiceInstanceBB", "st1", "vnft1", "7000", "*");
+ doReturn(rainyDayHandlerStatus).when(MOCK_catalogDbClient).getRainyDayHandlerStatus("AssignServiceInstanceBB",
+ "st1", "vnft1", "7000", "*", "errorMessage");
executeBuildingBlockRainyDay.queryRainyDayTable(delegateExecution, true);
@@ -236,9 +226,8 @@ public class ExecuteBuildlingBlockRainyDayTest extends BaseTest {
rainyDayHandlerStatus.setWorkStep(ASTERISK);
rainyDayHandlerStatus.setSecondaryPolicy("Abort");
- doReturn(rainyDayHandlerStatus).when(MOCK_catalogDbClient)
- .getRainyDayHandlerStatusByFlowNameAndServiceTypeAndVnfTypeAndErrorCodeAndWorkStep(
- "AssignServiceInstanceBB", "st1", "vnft1", "7000", "*");
+ doReturn(rainyDayHandlerStatus).when(MOCK_catalogDbClient).getRainyDayHandlerStatus("AssignServiceInstanceBB",
+ "st1", "vnft1", "7000", "*", "errorMessage");
executeBuildingBlockRainyDay.queryRainyDayTable(delegateExecution, true);
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/client/exception/ExceptionBuilderTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/client/exception/ExceptionBuilderTest.java
index ef066853ca..5f9aef67e6 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/client/exception/ExceptionBuilderTest.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/client/exception/ExceptionBuilderTest.java
@@ -7,9 +7,9 @@
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -21,17 +21,67 @@
package org.onap.so.client.exception;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.fail;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.when;
import org.camunda.bpm.engine.delegate.BpmnError;
+import org.junit.Before;
import org.junit.Test;
-import org.onap.so.bpmn.mock.FileUtil;
+import org.mockito.ArgumentMatchers;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.Spy;
+import org.onap.aai.domain.yang.Vserver;
import org.onap.so.BaseTest;
+import org.onap.so.bpmn.common.DelegateExecutionImpl;
+import org.onap.so.bpmn.core.WorkflowException;
+import org.onap.so.bpmn.mock.FileUtil;
+import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey;
+import org.onap.so.bpmn.servicedecomposition.tasks.ExtractPojosForBB;
+import org.onap.so.client.aai.AAIObjectType;
+import org.onap.so.client.graphinventory.GraphInventoryCommonObjectMapperProvider;
+import org.onap.so.objects.audit.AAIObjectAudit;
+import org.onap.so.objects.audit.AAIObjectAuditList;
+import org.springframework.beans.BeanUtils;
+import com.fasterxml.jackson.core.JsonProcessingException;
public class ExceptionBuilderTest extends BaseTest {
private static final String RESOURCE_PATH = "__files/";
private static final String VALID_ERROR_MESSAGE = "{test error message}";
+ @Mock
+ protected ExtractPojosForBB extractPojosForBB;
+
+ @Spy
+ @InjectMocks
+ private ExceptionBuilder exceptionBuilder = new ExceptionBuilder();
+
+ GraphInventoryCommonObjectMapperProvider objectMapper = new GraphInventoryCommonObjectMapperProvider();
+
+ @Before
+ public void before() throws BBObjectNotFoundException, JsonProcessingException {
+ setCloudRegion();
+ when(extractPojosForBB.extractByKey(any(), ArgumentMatchers.eq(ResourceKey.VF_MODULE_ID)))
+ .thenReturn(buildVfModule());
+ AAIObjectAuditList auditList = new AAIObjectAuditList();
+ auditList.setAuditType("create");
+ auditList.setHeatStackName("testStackName");
+ AAIObjectAudit vserver = new AAIObjectAudit();
+ vserver.setAaiObjectType(AAIObjectType.VSERVER.typeName());
+ vserver.setDoesObjectExist(false);
+ Vserver vs = new Vserver();
+ vs.setVserverId("testVServerId");
+ Vserver vServerShallow = new Vserver();
+ BeanUtils.copyProperties(vs, vServerShallow, "LInterfaces");
+ vserver.setAaiObject(vServerShallow);
+ auditList.getAuditList().add(vserver);
+
+ execution.setVariable("auditInventoryResult", objectMapper.getMapper().writeValueAsString(auditList));
+ }
+
@Test
public void buildAndThrowWorkflowExceptionTest() {
@@ -77,4 +127,35 @@ public class ExceptionBuilderTest extends BaseTest {
assertEquals("MSOWorkflowException", bpmnException.getErrorCode());
}
}
+
+ @Test
+ public void processAuditExceptionTest() {
+ try {
+ Mockito.doReturn(extractPojosForBB).when(exceptionBuilder).getExtractPojosForBB();
+ exceptionBuilder.processAuditException((DelegateExecutionImpl) execution, false);
+ } catch (BpmnError bpmnException) {
+ assertEquals("AAIInventoryFailure", bpmnException.getErrorCode());
+ WorkflowException we = execution.getVariable("WorkflowException");
+ assertNotNull(we);
+ assertEquals(
+ "create VF-Module testVfModuleId1 failed due to incomplete AAI vserver inventory population after stack testStackName was successfully created in cloud region testLcpCloudRegionId. MSO Audit indicates that the following was not created in AAI: vserver testVServerId.",
+ we.getErrorMessage());
+ }
+ }
+
+ @Test
+ public void processAuditExceptionContinueTest() {
+ try {
+ Mockito.doReturn(extractPojosForBB).when(exceptionBuilder).getExtractPojosForBB();
+ exceptionBuilder.processAuditException((DelegateExecutionImpl) execution, true);
+ String sm = execution.getVariable("StatusMessage");
+ assertNotNull(sm);
+ assertEquals(
+ "create VF-Module testVfModuleId1 failed due to incomplete AAI vserver inventory population after stack testStackName was successfully created in cloud region testLcpCloudRegionId. MSO Audit indicates that the following was not created in AAI: vserver testVServerId.",
+ sm);
+ } catch (BpmnError bpmnException) {
+ fail();
+ }
+ }
+
}
diff --git a/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/aaiL3NetworkInputWithSubnets.json b/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/aaiL3NetworkInputWithSubnets.json
new file mode 100644
index 0000000000..418396f290
--- /dev/null
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/aaiL3NetworkInputWithSubnets.json
@@ -0,0 +1,73 @@
+{
+ "networkId": "networkId",
+ "networkName": "networkName",
+ "networkType": null,
+ "networkRole": null,
+ "networkTechnology": null,
+ "neutronNetworkId": null,
+ "isBoundToVpn": true,
+ "serviceId": "serviceId",
+ "networkRoleInstance": 1234,
+ "resourceVersion": null,
+ "orchestrationStatus": "Assigned",
+ "heatStackId": "heatStackId",
+ "msoCatalogKey": null,
+ "contrailNetworkFqdn": "contrailNetworkFqdn",
+ "modelInvariantId": null,
+ "modelVersionId": null,
+ "personaModelVersion": null,
+ "modelCustomizationId": null,
+ "widgetModelId": "widgetModelId",
+ "widgetModelVersion": "widgetModelVersion",
+ "physicalNetworkName": "physicalNetworkName",
+ "isProviderNetwork": true,
+ "isSharedNetwork": true,
+ "isExternalNetwork": true,
+ "selflink": "selflink",
+ "operationalStatus": "operationalStatus",
+ "subnets": {
+ "subnet": [
+ {
+ "subnetId": "subnetId",
+ "subnetName": "subnetName",
+ "neutronSubnetId": "neutronSubnetId",
+ "gatewayAddress": "10.80.12.1",
+ "networkStartAddress": "10.80.12.0",
+ "cidrMask": "23",
+ "ipVersion": "4",
+ "orchestrationStatus": "Active",
+ "dhcpEnabled": true,
+ "dhcpStart": "10.80.12.3",
+ "dhcpEnd": "10.80.13.254",
+ "subnetRole": "s1",
+ "ipAssignmentDirection": "true",
+ "resourceVersion": "1557499815393",
+ "hostRoutes": {
+ "hostRoute": [
+ {
+ "hostRouteId": "91324351-01bf-43f8-a302-8c873451b4f1",
+ "routePrefix": "10.0.0.0/16",
+ "nextHop": "10.80.12.1",
+ "resourceVersion": "1557499777501"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "ctagAssignments": {
+ "ctagAssignment": [
+ {
+ "vlanIdInner": 1234
+ }
+ ]
+ },
+ "segmentationAssignments": {
+ "segmentationAssignment": [
+ {
+ "segmentationId": "segmentationId"
+ }
+ ]
+ },
+ "relationshipList": null
+} \ No newline at end of file
diff --git a/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/l3NetworkExpectedWithSubnet.json b/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/l3NetworkExpectedWithSubnet.json
new file mode 100644
index 0000000000..ccefe195c9
--- /dev/null
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/l3NetworkExpectedWithSubnet.json
@@ -0,0 +1,56 @@
+{
+ "network-id": "networkId",
+ "cascaded": null,
+ "cloud-params": {
+
+ },
+ "network-name": "networkName",
+ "is-bound-to-vpn": true,
+ "service-id": "serviceId",
+ "network-role-instance": 1234,
+ "orchestration-status": "ASSIGNED",
+ "heat-stack-id": "heatStackId",
+ "contrail-network-fqdn": "contrailNetworkFqdn",
+ "widget-model-id": "widgetModelId",
+ "widget-model-version": "widgetModelVersion",
+ "physical-network-name": "physicalNetworkName",
+ "is-provider-network": true,
+ "is-shared-network": true,
+ "is-external-network": true,
+ "self-link": "selflink",
+ "operational-status": "operationalStatus",
+ "subnets": [
+ {
+ "subnet-id": "subnetId",
+ "subnet-name": "subnetName",
+ "neutron-subnet-id": "neutronSubnetId",
+ "gateway-address": "10.80.12.1",
+ "network-start-address": "10.80.12.0",
+ "cidr-mask": "23",
+ "ip-version": "4",
+ "dhcp-enabled": true,
+ "dhcp-start": "10.80.12.3",
+ "dhcp-end": "10.80.13.254",
+ "subnet-role": "s1",
+ "ip-assignment-direction": "true",
+ "host-routes": [
+ {
+ "host-route-id": "91324351-01bf-43f8-a302-8c873451b4f1",
+ "route-prefix": "10.0.0.0/16",
+ "next-hop": "10.80.12.1"
+ }
+ ]
+ }
+ ],
+ "ctag-assignments": [
+ {
+ "vlan-id-inner": 1234
+ }
+ ],
+ "segmentation-assignments": [
+ {
+ "segmentation-id": "segmentationId"
+ }
+ ],
+ "model-info-network": null
+}
diff --git a/bpmn/MSOCommonBPMN/src/test/resources/__files/InstanceResourceList/InstanceResourceList.json b/bpmn/MSOCommonBPMN/src/test/resources/__files/InstanceResourceList/InstanceResourceList.json
new file mode 100644
index 0000000000..0b3d9f0bbe
--- /dev/null
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/InstanceResourceList/InstanceResourceList.json
@@ -0,0 +1,175 @@
+{
+ "service":{
+ "name":"SiteService",
+ "description":"SiteService",
+ "serviceInvariantUuid":"5c13f3fb-2744-4635-9f1f-c59c92dc8f70",
+ "serviceUuid":"3a76b1f5-fb0d-4b6b-82d5-0e8a4ebc3838",
+ "globalSubscriberId":"test_custormer",
+ "serviceType":"example-service-type",
+ "parameters":{
+ "locationConstraints":[
+
+ ],
+ "resources":[
+ {
+ "resourceIndex":"1",
+ "resourceName":"sdwanvpnresource",
+ "resourceInvariantUuid":"0c0e1cbe-6e01-4f9e-8c45-a9700ebc14df",
+ "resourceUuid":"4ad2d390-5c51-45f5-9710-b467a4ec7a73",
+ "resourceCustomizationUuid":"66590e07-0777-415c-af44-36347cf3ddd3",
+ "parameters":{
+ "locationConstraints":[
+
+ ],
+ "resources":[
+
+ ],
+ "requestInputs":{
+
+ }
+ }
+ },
+ {
+ "resourceIndex":"1",
+ "resourceName":"sdwansiteresource",
+ "resourceInvariantUuid":"97a3e552-08c4-4697-aeeb-d8d3e09ce58e",
+ "resourceUuid":"63d8e1af-32dc-4c71-891d-e3f7b6a976d2",
+ "resourceCustomizationUuid":"205456e7-3dc0-40c4-8cb0-28e6c1877042",
+ "parameters":{
+ "locationConstraints":[
+
+ ],
+ "resources":[
+
+ ],
+ "requestInputs":{
+
+ }
+ }
+ },
+ {
+ "resourceIndex":"2",
+ "resourceName":"sdwansiteresource",
+ "resourceInvariantUuid":"97a3e552-08c4-4697-aeeb-d8d3e09ce58e",
+ "resourceUuid":"63d8e1af-32dc-4c71-891d-e3f7b6a976d2",
+ "resourceCustomizationUuid":"205456e7-3dc0-40c4-8cb0-28e6c1877042",
+ "parameters":{
+ "locationConstraints":[
+
+ ],
+ "resources":[
+
+ ],
+ "requestInputs":{
+
+ }
+ }
+ }
+ ],
+ "requestInputs":{
+ "sdwanvpnresource_list":[
+ {
+ "sdwanvpn_topology":"hub_spoke",
+ "sdwanvpn_name":"defaultvpn",
+ "sdwansitelan_list":[
+ {
+ "role":"Hub",
+ "portType":"GE",
+ "portSwitch":"layer3-port",
+ "vlanId":"",
+ "ipAddress":"192.168.10.1",
+ "deviceName":"vCPE",
+ "portNumer":"0/0/1"
+ },
+ {
+ "role":"Hub",
+ "portType":"GE",
+ "portSwitch":"layer2-port",
+ "vlanId":"55",
+ "ipAddress":"192.168.11.1",
+ "deviceName":"CPE_Beijing",
+ "portNumer":"0/0/1"
+ }
+ ]
+ }
+ ],
+ "sdwansiteresource_list":[
+ {
+ "sdwansite_emails":"chenchuanyu@huawei.com",
+ "sdwansite_address":"Huawei Public Cloud",
+ "sdwansite_description":"DC Site",
+ "sdwansite_role":"dsvpn_hub",
+ "sdwansite_postcode":"20000",
+ "sdwansite_type":"single_gateway",
+ "sdwansite_latitude":"",
+ "sdwansite_controlPoint":"",
+ "sdwansite_longitude":"",
+ "sdwansitewan_list":[
+ {
+ "providerIpAddress":"",
+ "portType":"GE",
+ "inputBandwidth":"1000",
+ "ipAddress":"",
+ "name":"10000",
+ "transportNetworkName":"internet",
+ "outputBandwidth":"10000",
+ "deviceName":"vCPE",
+ "portNumber":"0/0/0",
+ "ipMode":"DHCP",
+ "publicIP":"119.3.7.113"
+ }
+ ],
+ "sdwandevice_list":[
+ {
+ "esn":"XXXXXXX",
+ "vendor":"Huawei",
+ "name":"vCPE",
+ "type":"AR1000V",
+ "version":"1.0",
+ "class":"VNF",
+ "systemIp":"20.20.20.1"
+ }
+ ]
+ },
+ {
+ "sdwansite_emails":"chenchuanyu@huawei.com",
+ "sdwansite_address":"Huawei Public Cloud",
+ "sdwansite_description":"DC Site",
+ "sdwansite_role":"dsvpn_hub",
+ "sdwansite_postcode":"20000",
+ "sdwansite_type":"single_gateway",
+ "sdwansite_latitude":"",
+ "sdwansite_controlPoint":"",
+ "sdwansite_longitude":"",
+ "sdwansitewan_list":[
+ {
+ "providerIpAddress":"",
+ "portType":"GE",
+ "inputBandwidth":"1000",
+ "ipAddress":"172.18.1.2/24",
+ "name":"10000",
+ "transportNetworkName":"internet",
+ "outputBandwidth":"10000",
+ "deviceName":"CPE_Beijing",
+ "portNumber":"0/0/0",
+ "ipMode":"Static",
+ "publicIP":""
+ }
+ ],
+ "sdwandevice_list":[
+ {
+ "esn":"XXXXXXX",
+ "vendor":"Huawei",
+ "name":"CPE_Beijing",
+ "type":"AR161",
+ "version":"1.0",
+ "class":"PNF",
+ "systemIp":"20.20.20.2"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/bpmn/MSOCommonBPMN/src/test/resources/__files/SERVICE-SO-REQ-INPUT.json b/bpmn/MSOCommonBPMN/src/test/resources/__files/SERVICE-SO-REQ-INPUT.json
new file mode 100644
index 0000000000..4803fca355
--- /dev/null
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/SERVICE-SO-REQ-INPUT.json
@@ -0,0 +1,299 @@
+{
+ "serviceResources": {
+ "modelInfo": {
+ "modelName": "demoVFWCL",
+ "modelUuid": "c3954379-4efe-431c-8258-f84905b158e5",
+ "modelInvariantUuid": "0cbff61e-3b0a-4eed-97ce-b1b4faa03493",
+ "modelVersion": "1.0"
+ },
+ "serviceType": "",
+ "serviceRole": "",
+ "environmentContext": null,
+ "resourceOrder": "res1,res2",
+ "workloadContext": "Production",
+ "serviceVnfs": [
+
+ {
+ "modelInfo": {
+ "modelName": "15968a6e-2fe5-41bf-a481",
+ "modelUuid": "808abda3-2023-4105-92d2-e62644b61d53",
+ "modelInvariantUuid": "6e4ffc7c-497e-4a77-970d-af966e642d31",
+ "modelVersion": "1.0",
+ "modelCustomizationUuid": "a00404d5-d7eb-4c46-b6b6-9cf2d087e545",
+ "modelInstanceName": "15968a6e-2fe5-41bf-a481 0"
+ },
+ "toscaNodeType": "org.openecomp.resource.vf.15968a6e2fe541bfA481",
+ "nfFunction": null,
+ "resourceInput": "{\"a\":\"b\",\"topology\":\"[sdwanvpnresource_list,INDEX,sdwanvpn_topology]|default_topo\",\"name\":\"[sdwanvpnresource_list,INDEX,sdwanvpn_name]|default_name\",\"sitelist\":\"[sdwanvpnresource_list,INDEX,sdwansitelan_list]|default_sitelist\"}",
+ "resourceType": "VNF",
+ "nfRole": null,
+ "nfNamingCode": null,
+ "multiStageDesign": "false",
+ "vfModules": [{
+ "modelInfo": {
+ "modelName": "15968a6e2fe541bfA481..base_vfw..module-0",
+ "modelUuid": "ec7fadde-1e5a-42f7-8255-cb19e475ff45",
+ "modelInvariantUuid": "61ab8b64-a014-4cf3-8a5a-b5ef388f8819",
+ "modelVersion": "1",
+ "modelCustomizationUuid": "123aff6b-854f-4026-ae1e-cc74a3924576"
+ },
+ "isBase": true,
+ "vfModuleLabel": "base_vfw",
+ "initialCount": 1,
+ "hasVolumeGroup": true
+ }]
+ },
+
+ {
+ "modelInfo": {
+ "modelName": "f971106a-248f-4202-9d1f",
+ "modelUuid": "4fbc08a4-35ed-4a59-9e47-79975e4add7e",
+ "modelInvariantUuid": "c669799e-adf1-46ae-8c70-48b326fe89f3",
+ "modelVersion": "1.0",
+ "modelCustomizationUuid": "e776449e-2b10-45c5-9217-2775c88ca1a0",
+ "modelInstanceName": "f971106a-248f-4202-9d1f 0"
+ },
+ "toscaNodeType": "org.openecomp.resource.vfc.F971106a248f42029d1f",
+ "nfFunction": null,
+ "resourceType": "GROUP",
+ "nfRole": null,
+ "resourceInput": "{\"a\":\"b|\",\"portswitch\":\"[sdwansitelan_list,INDEX,portSwitch]|default_portswitch\",\"ipAddress\":\"[sdwansitelan_list,INDEX,ipAddress]|default_ipAddress\",\"deviceName\":\"[sdwansitelan_list,INDEX,deviceName]|default_deviceName\"}",
+ "nfNamingCode": null,
+ "multiStageDesign": "false",
+ "vfModules": [{
+ "modelInfo": {
+ "modelName": "F971106a248f42029d1f..base_vpkg..module-0",
+ "modelUuid": "47d5273a-7456-4786-9035-b3911944cc35",
+ "modelInvariantUuid": "0ea3e57e-ac7a-425a-928b-b4aee8806c15",
+ "modelVersion": "1",
+ "modelCustomizationUuid": "9ed9fef6-d3f8-4433-9807-7e23393a16bc"
+ },
+ "isBase": true,
+ "vfModuleLabel": "base_vpkg",
+ "initialCount": 1,
+ "hasVolumeGroup": true
+ }]
+ },
+
+ {
+ "modelInfo": {
+ "modelName": "f971106a-248f-4202-9d1e",
+ "modelUuid": "4fbc08a4-35ed-4a59-9e47-79975e4add7d",
+ "modelInvariantUuid": "c669799e-adf1-46ae-8c70-48b326fe89f2",
+ "modelVersion": "1.0",
+ "modelCustomizationUuid": "e776449e-2b10-45c5-9217-2775c88ca1a1",
+ "modelInstanceName": "f971106a-248f-4202-9d1e 0"
+ },
+ "toscaNodeType": "org.openecomp.resource.vfc.F971106a248f42029d1f",
+ "nfFunction": null,
+ "resourceType": "GROUP",
+ "nfRole": null,
+ "resourceInput": "{\"a\":\"b|\",\"portswitch\":\"[sdwansitelan_list,INDEX,portSwitch]|default_portswitch\",\"ipAddress\":\"[sdwansitelan_list,INDEX,ipAddress]|default_ipAddress\",\"deviceName\":\"[sdwansitelan_list,INDEX,deviceName]|default_deviceName\"}",
+ "nfNamingCode": null,
+ "multiStageDesign": "false",
+ "vfModules": [{
+ "modelInfo": {
+ "modelName": "F971106a248f42029d1f..base_vpkg..module-0",
+ "modelUuid": "47d5273a-7456-4786-9035-b3911944cc35",
+ "modelInvariantUuid": "0ea3e57e-ac7a-425a-928b-b4aee8806c15",
+ "modelVersion": "1",
+ "modelCustomizationUuid": "9ed9fef6-d3f8-4433-9807-7e23393a16bc"
+ },
+ "isBase": true,
+ "vfModuleLabel": "base_vpkg",
+ "initialCount": 1,
+ "hasVolumeGroup": true
+ }]
+ },
+
+ {
+ "modelInfo": {
+ "modelName": "f971106a-248f-4202-9d2e",
+ "modelUuid": "4fbc08a4-35ed-4a59-9e47-79975e4add8d",
+ "modelInvariantUuid": "c669799e-adf1-46ae-8c70-48b326fe89c2",
+ "modelVersion": "1.0",
+ "modelCustomizationUuid": "e776449e-2b10-45c5-9217-2775c88ca1c1",
+ "modelInstanceName": "f971106a-248f-4202-9d2e 0"
+ },
+ "toscaNodeType": "org.openecomp.resource.vf.F971106a248f42029d1f",
+ "nfFunction": null,
+ "resourceType": "VNF",
+ "nfRole": null,
+ "resourceInput": "{\"address\":\"[sdwansiteresource_list,INDEX,sdwansite_address]|default_address\",\"role\":\"[sdwansiteresource_list,INDEX,sdwansite_role]|default_role\",\"wanlist\":\"[sdwansiteresource_list,INDEX,sdwansitewan_list]|default_wanlist\",\"devlist\":\"[sdwansiteresource_list,INDEX,sdwandevice_list]|default_devlist\"}",
+ "nfNamingCode": null,
+ "multiStageDesign": "false",
+ "vfModules": [{
+ "modelInfo": {
+ "modelName": "F971106a248f42029d1f..base_vpkg..module-0",
+ "modelUuid": "47d5273a-7456-4786-9035-b3911944cc35",
+ "modelInvariantUuid": "0ea3e57e-ac7a-425a-928b-b4aee8806c15",
+ "modelVersion": "1",
+ "modelCustomizationUuid": "9ed9fef6-d3f8-4433-9807-7e23393a16bc"
+ },
+ "isBase": true,
+ "vfModuleLabel": "base_vpkg",
+ "initialCount": 1,
+ "hasVolumeGroup": true
+ }]
+ },
+
+ {
+ "modelInfo": {
+ "modelName": "f971106a-248f-4202-9d3e",
+ "modelUuid": "4fbc08a4-35ed-4a59-9e47-79975e4add9d",
+ "modelInvariantUuid": "c669799e-adf1-46ae-8c70-48b326fe89f3",
+ "modelVersion": "1.0",
+ "modelCustomizationUuid": "e776449e-2b10-45c5-9217-2775c88cb1a1",
+ "modelInstanceName": "f971106a-248f-4202-9d3e 0"
+ },
+ "toscaNodeType": "org.openecomp.resource.vfc.F971106a248f42029d1f",
+ "nfFunction": null,
+ "resourceType": "GROUP",
+ "nfRole": null,
+ "resourceInput": "{\"address\":\"sdwansite_address|default_address\", \"postcode\":\"sdwansite_postcode|default_postcode\",\"type\":\"sdwansite_type|default_role\",\"deviceName\":\"[sdwansitewan_list,INDEX,deviceName]|default_deviceName\",\"ipMode\":\"[sdwansitewan_list,INDEX,ipMode]|default_ipMode\"}",
+ "nfNamingCode": null,
+ "multiStageDesign": "false",
+ "vfModules": [{
+ "modelInfo": {
+ "modelName": "F971106a248f42029d1f..base_vpkg..module-0",
+ "modelUuid": "47d5273a-7456-4786-9035-b3911944cc35",
+ "modelInvariantUuid": "0ea3e57e-ac7a-425a-928b-b4aee8806c15",
+ "modelVersion": "1",
+ "modelCustomizationUuid": "9ed9fef6-d3f8-4433-9807-7e23393a16bc"
+ },
+ "isBase": true,
+ "vfModuleLabel": "base_vpkg",
+ "initialCount": 1,
+ "hasVolumeGroup": true
+ }]
+ },
+
+ {
+ "modelInfo": {
+ "modelName": "f971106a-248f-4202-9d5e",
+ "modelUuid": "4fbc08a4-35ed-4a59-9e47-79975e4add3d",
+ "modelInvariantUuid": "c669799e-adf1-46ae-8c70-48b326fe8393",
+ "modelVersion": "1.0",
+ "modelCustomizationUuid": "e776449e-2b10-45c5-9217-2775c88cb1f1",
+ "modelInstanceName": "f971106a-248f-4202-9d5e 0"
+ },
+ "toscaNodeType": "org.openecomp.resource.vfc.F971106a248f42029d3f",
+ "nfFunction": null,
+ "resourceType": "GROUP",
+ "nfRole": null,
+ "resourceInput": "{\"address\":\"sdwansite_address|default_address\", \"postcode\":\"sdwansite_postcode|default_postcode\",\"type\":\"sdwansite_type|default_role\",\"systemip\":\"[sdwandevice_list,INDEX,systemIp]|default_systemip\", \"systemipv6\":\"[sdwandevice_list,INDEX,systemIpv6]|default_ipv6\", \"devclass\":\"[sdwandevice_list,INDEX,class]|default_class\"}",
+ "nfNamingCode": null,
+ "multiStageDesign": "false",
+ "vfModules": [{
+ "modelInfo": {
+ "modelName": "F971106a248f42029d1f..base_vpkg..module-0",
+ "modelUuid": "47d5273a-7456-4786-9035-b3911944cc35",
+ "modelInvariantUuid": "0ea3e57e-ac7a-425a-928b-b4aee8806c15",
+ "modelVersion": "1",
+ "modelCustomizationUuid": "9ed9fef6-d3f8-4433-9807-7e23393a16bc"
+ },
+ "isBase": true,
+ "vfModuleLabel": "base_vpkg",
+ "initialCount": 1,
+ "hasVolumeGroup": true
+ }]
+ },
+
+ {
+ "modelInfo": {
+ "modelName": "f971106a-248f-4202-9d23",
+ "modelUuid": "4fbc08a4-35ed-4a59-9e47-79975e4add83",
+ "modelInvariantUuid": "c669799e-adf1-46ae-8c70-48b326fe89c3",
+ "modelVersion": "1.0",
+ "modelCustomizationUuid": "e776449e-2b10-45c5-9217-2775c88ca1c3",
+ "modelInstanceName": "f971106a-248f-4202-9d23 0"
+ },
+ "toscaNodeType": "org.openecomp.resource.vf.F971106a248f42029d1f",
+ "nfFunction": null,
+ "resourceType": "VNF",
+ "nfRole": null,
+ "resourceInput": "{\"address\":\"[sdwansiteresource_list,INDEX,sdwansite_address]|default_address\",\"role\":\"[sdwansiteresource_list,INDEX,sdwansite_role]|default_role\",\"wanlist\":\"[sdwansiteresource_list,INDEX,sdwansitewan_list]|default_wanlist\",\"devlist\":\"[sdwansiteresource_list,INDEX,sdwandevice_list]|default_devlist\"}",
+ "nfNamingCode": null,
+ "multiStageDesign": "false",
+ "vfModules": [{
+ "modelInfo": {
+ "modelName": "F971106a248f42029d1f..base_vpkg..module-0",
+ "modelUuid": "47d5273a-7456-4786-9035-b3911944cc35",
+ "modelInvariantUuid": "0ea3e57e-ac7a-425a-928b-b4aee8806c15",
+ "modelVersion": "1",
+ "modelCustomizationUuid": "9ed9fef6-d3f8-4433-9807-7e23393a16bc"
+ },
+ "isBase": true,
+ "vfModuleLabel": "base_vpkg",
+ "initialCount": 1,
+ "hasVolumeGroup": true
+ }]
+ },
+
+ {
+ "modelInfo": {
+ "modelName": "f971106a-248f-4202-9d34",
+ "modelUuid": "4fbc08a4-35ed-4a59-9e47-79975e4add94",
+ "modelInvariantUuid": "c669799e-adf1-46ae-8c70-48b326fe89f4",
+ "modelVersion": "1.0",
+ "modelCustomizationUuid": "e776449e-2b10-45c5-9217-2775c88cb1a4",
+ "modelInstanceName": "f971106a-248f-4202-9d34 0"
+ },
+ "toscaNodeType": "org.openecomp.resource.vfc.F971106a248f42029d1f",
+ "nfFunction": null,
+ "resourceType": "GROUP",
+ "nfRole": null,
+ "resourceInput": "{\"address\":\"sdwansite_address|default_address\", \"postcode\":\"sdwansite_postcode|default_postcode\",\"type\":\"sdwansite_type|default_role\",\"deviceName\":\"[sdwansitewan_list,INDEX,deviceName]|default_deviceName\",\"ipMode\":\"[sdwansitewan_list,INDEX,ipMode]|default_ipMode\"}",
+ "nfNamingCode": null,
+ "multiStageDesign": "false",
+ "vfModules": [{
+ "modelInfo": {
+ "modelName": "F971106a248f42029d1f..base_vpkg..module-0",
+ "modelUuid": "47d5273a-7456-4786-9035-b3911944cc35",
+ "modelInvariantUuid": "0ea3e57e-ac7a-425a-928b-b4aee8806c15",
+ "modelVersion": "1",
+ "modelCustomizationUuid": "9ed9fef6-d3f8-4433-9807-7e23393a16bc"
+ },
+ "isBase": true,
+ "vfModuleLabel": "base_vpkg",
+ "initialCount": 1,
+ "hasVolumeGroup": true
+ }]
+ },
+
+ {
+ "modelInfo": {
+ "modelName": "f971106a-248f-4202-9d55",
+ "modelUuid": "4fbc08a4-35ed-4a59-9e47-79975e4add35",
+ "modelInvariantUuid": "c669799e-adf1-46ae-8c70-48b326fe8395",
+ "modelVersion": "1.0",
+ "modelCustomizationUuid": "e776449e-2b10-45c5-9217-2775c88cb1f5",
+ "modelInstanceName": "f971106a-248f-4202-9d55 0"
+ },
+ "toscaNodeType": "org.openecomp.resource.vfc.F971106a248f42029d3f",
+ "nfFunction": null,
+ "resourceType": "GROUP",
+ "nfRole": null,
+ "resourceInput": "{\"address\":\"sdwansite_address|default_address\", \"postcode\":\"sdwansite_postcode|default_postcode\",\"type\":\"sdwansite_type|default_role\",\"systemip\":\"[sdwandevice_list,INDEX,systemIp]|default_systemip\", \"systemipv6\":\"[sdwandevice_list,INDEX,systemIpv6]|default_ipv6\", \"devclass\":\"[sdwandevice_list,INDEX,class]|default_class\"}",
+ "nfNamingCode": null,
+ "multiStageDesign": "false",
+ "vfModules": [{
+ "modelInfo": {
+ "modelName": "F971106a248f42029d1f..base_vpkg..module-0",
+ "modelUuid": "47d5273a-7456-4786-9035-b3911944cc35",
+ "modelInvariantUuid": "0ea3e57e-ac7a-425a-928b-b4aee8806c15",
+ "modelVersion": "1",
+ "modelCustomizationUuid": "9ed9fef6-d3f8-4433-9807-7e23393a16bc"
+ },
+ "isBase": true,
+ "vfModuleLabel": "base_vpkg",
+ "initialCount": 1,
+ "hasVolumeGroup": true
+ }]
+ }
+
+ ],
+ "serviceNetworks": [],
+ "serviceAllottedResources": []
+ }
+} \ No newline at end of file
diff --git a/bpmn/MSOCommonBPMN/src/test/resources/__files/UUI-SO-REQ.json b/bpmn/MSOCommonBPMN/src/test/resources/__files/UUI-SO-REQ.json
new file mode 100644
index 0000000000..e6161862ae
--- /dev/null
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/UUI-SO-REQ.json
@@ -0,0 +1 @@
+{ "sdwanvpnresource_list":[ { "sdwanvpn_topology":"hub_spoke", "sdwanvpn_name":"defaultvpn", "sdwansitelan_list":[ { "role":"Hub", "portType":"GE", "portSwitch":"layer3-port", "vlanId":"", "ipAddress":"192.168.10.1", "deviceName":"vCPE", "portNumer":"0/0/1" }, { "role":"Hub", "portType":"GE", "portSwitch":"layer2-port", "vlanId":"55", "ipAddress":"192.168.11.1", "deviceName":"CPE_Beijing", "portNumer":"0/0/1" } ] } ], "sdwansiteresource_list":[ { "sdwansite_emails":"chenchuanyu@huawei.com", "sdwansite_address":"Huawei Private Cloud", "sdwansite_description":"DC Site", "sdwansite_role":"dsvpn_hub1", "sdwansite_postcode":"20000", "sdwansite_type":"single_gateway", "sdwansite_latitude":"", "sdwansite_controlPoint":"", "sdwansite_longitude":"", "sdwansitewan_list":[ { "providerIpAddress":"", "portType":"GE", "inputBandwidth":"1000", "ipAddress":"", "name":"10000", "transportNetworkName":"internet", "outputBandwidth":"10000", "deviceName":"vCPE", "portNumber":"0/0/0", "ipMode":"DHCP", "publicIP":"119.3.7.113" } ], "sdwandevice_list":[ { "esn":"XXXXXXX", "vendor":"Huawei", "name":"vCPE", "type":"AR1000V", "version":"1.0", "class":"VNF", "systemIp":"20.20.20.1" } ] }, { "sdwansite_emails":"chenchuanyu@huawei.com", "sdwansite_address":"Huawei Public Cloud", "sdwansite_description":"DC Site", "sdwansite_role":"dsvpn_hub", "sdwansite_postcode":"20001", "sdwansite_type":"multiple_gateway", "sdwansite_latitude":"", "sdwansite_controlPoint":"", "sdwansite_longitude":"", "sdwansitewan_list":[ { "providerIpAddress":"", "portType":"GE", "inputBandwidth":"1000", "ipAddress":"172.18.1.2/24", "name":"10000", "transportNetworkName":"internet", "outputBandwidth":"10000", "deviceName":"CPE_Beijing", "portNumber":"0/0/0", "ipMode":"Static", "publicIP":"" } ], "sdwandevice_list":[ { "esn":"XXXXXXX", "vendor":"Huawei", "name":"CPE_Beijing", "type":"AR161", "version":"1.0", "class":"PNF", "systemIp":"20.20.20.2" } ] } ] } \ No newline at end of file