Test aai_get_service_instance_topology with vf-module placement data
Issue-ID: VID-603
Change-Id: I2ce89cac91417ef4b60a3943da80f0ff03f865ad
Signed-off-by: Ittay Stern <ittay.stern@att.com>
diff --git a/vid-automation/src/main/java/org/onap/simulator/presetGenerator/presets/aai/Placement.java b/vid-automation/src/main/java/org/onap/simulator/presetGenerator/presets/aai/Placement.java
index b665fc3..3018f5f 100644
--- a/vid-automation/src/main/java/org/onap/simulator/presetGenerator/presets/aai/Placement.java
+++ b/vid-automation/src/main/java/org/onap/simulator/presetGenerator/presets/aai/Placement.java
@@ -10,5 +10,51 @@
this.lcpRegionId = lcpRegionId;
this.tenantId = tenantId;
}
+
+ public static class Util {
+ static String placementRelationship(String relatedTo, Placement placement) {
+ return "" +
+ "{" +
+ " \"related-to\": \"" + relatedTo + "\"," +
+ " \"relationship-label\": \"org.onap.relationships.inventory.Uses\"," +
+ " \"related-link\": " + relatedLink(placement) + "," +
+ " \"relationship-data\": [" +
+ " {" +
+ " \"relationship-key\": \"cloud-region.cloud-owner\"," +
+ " \"relationship-value\": \"" + placement.cloudOwner + "\"" +
+ " }," +
+ " {" +
+ " \"relationship-key\": \"cloud-region.cloud-region-id\"," +
+ " \"relationship-value\": \"" + placement.lcpRegionId + "\"" +
+ " }," +
+ " {" +
+ " \"relationship-key\": \"tenant.tenant-id\"," +
+ " \"relationship-value\": \"" + placement.tenantId + "\"" +
+ " }," +
+ " {" +
+ " \"relationship-key\": \"vserver.vserver-id\"," +
+ " \"relationship-value\": \"5eef9f6d-9933-4bc6-9a1a-862d61309437\"" +
+ " }" +
+ " ]," +
+ " \"related-to-property\": [" +
+ " {" +
+ " \"property-key\": \"vserver.vserver-name\"," +
+ " \"property-value\": \"zolson5bfapn01dns002\"" +
+ " }" +
+ " ]" +
+ "}";
+ }
+
+ private static String relatedLink(Placement placement) {
+ return ""
+ + "\""
+ + "/aai/v12/cloud-infrastructure/cloud-regions/cloud-region/irma-aic/"
+ + placement.lcpRegionId
+ + "/tenants/tenant/"
+ + placement.tenantId
+ + "/vservers/vserver/5eef9f6d-9933-4bc6-9a1a-862d61309437"
+ + "\"";
+ }
+ }
}
diff --git a/vid-automation/src/main/java/org/onap/simulator/presetGenerator/presets/aai/PresetAAIGetVfModulesByVnf.java b/vid-automation/src/main/java/org/onap/simulator/presetGenerator/presets/aai/PresetAAIGetVfModulesByVnf.java
index 798a026..7a35abc 100644
--- a/vid-automation/src/main/java/org/onap/simulator/presetGenerator/presets/aai/PresetAAIGetVfModulesByVnf.java
+++ b/vid-automation/src/main/java/org/onap/simulator/presetGenerator/presets/aai/PresetAAIGetVfModulesByVnf.java
@@ -5,9 +5,16 @@
public class PresetAAIGetVfModulesByVnf extends BaseAAIPreset {
private final String vnfInstanceId;
+ private final Placement vfModule1Placement;
public PresetAAIGetVfModulesByVnf(String vnfInstanceId) {
this.vnfInstanceId = vnfInstanceId;
+ vfModule1Placement = null;
+ }
+
+ public PresetAAIGetVfModulesByVnf(String vnfInstanceId, Placement vfModule2Placement) {
+ this.vnfInstanceId = vnfInstanceId;
+ this.vfModule1Placement = vfModule2Placement;
}
@Override
@@ -20,6 +27,14 @@
return getRootPath() + "/network/generic-vnfs/generic-vnf/" + this.vnfInstanceId + "/vf-modules";
}
+ private String placementRelationship(Placement placement) {
+ if (placement != null) {
+ return "," + Placement.Util.placementRelationship("vserver", placement);
+ } else {
+ return "";
+ }
+ }
+
@Override
public Object getResponseBody() {
return "" +
@@ -72,6 +87,7 @@
" }" +
" ]" +
" }" +
+ placementRelationship(vfModule1Placement) +
" ]" +
" }" +
" }" +
diff --git a/vid-automation/src/main/java/org/onap/simulator/presetGenerator/presets/aai/PresetAAIStandardQueryGet.java b/vid-automation/src/main/java/org/onap/simulator/presetGenerator/presets/aai/PresetAAIStandardQueryGet.java
index 642f941..7709a0a 100644
--- a/vid-automation/src/main/java/org/onap/simulator/presetGenerator/presets/aai/PresetAAIStandardQueryGet.java
+++ b/vid-automation/src/main/java/org/onap/simulator/presetGenerator/presets/aai/PresetAAIStandardQueryGet.java
@@ -1,23 +1,22 @@
package org.onap.simulator.presetGenerator.presets.aai;
+import static org.apache.commons.lang3.ObjectUtils.defaultIfNull;
+import static org.apache.commons.text.StringEscapeUtils.escapeJson;
+import static org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetCloudOwnersByCloudRegionId.ATT_AIC;
+import static org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetCloudOwnersByCloudRegionId.hvf6;
+
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableMultimap;
import com.google.common.collect.Multimap;
+import java.util.UUID;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.text.StrSubstitutor;
import org.onap.simulator.presetGenerator.presets.BasePresets.BaseAAIPreset;
import org.springframework.http.HttpMethod;
-import java.util.UUID;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
-import static org.apache.commons.lang3.ObjectUtils.defaultIfNull;
-import static org.apache.commons.text.StringEscapeUtils.escapeJson;
-import static org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetCloudOwnersByCloudRegionId.ATT_AIC;
-import static org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetCloudOwnersByCloudRegionId.hvf6;
-
public class PresetAAIStandardQueryGet extends BaseAAIPreset {
private final String instanceId;
private final String instanceName;
@@ -289,36 +288,7 @@
private String buildPlacementRelationship() {
String relatedTo = StringUtils.equals(instanceType,"vf-module")? "vserver": "tenant";
- return "" +
- " {" +
- " \"related-to\": \"" + relatedTo + "\"," +
- " \"relationship-label\": \"org.onap.relationships.inventory.Uses\"," +
- " \"related-link\": \"/aai/v12/cloud-infrastructure/cloud-regions/cloud-region/irma-aic/" + this.placement.lcpRegionId + "/tenants/tenant/" + this.placement.tenantId+ "/vservers/vserver/5eef9f6d-9933-4bc6-9a1a-862d61309437\"," +
- " \"relationship-data\": [" +
- " {" +
- " \"relationship-key\": \"cloud-region.cloud-owner\"," +
- " \"relationship-value\": \""+ this.placement.cloudOwner+"\"" +
- " }," +
- " {" +
- " \"relationship-key\": \"cloud-region.cloud-region-id\"," +
- " \"relationship-value\": \"" + this.placement.lcpRegionId + "\"" +
- " }," +
- " {" +
- " \"relationship-key\": \"tenant.tenant-id\"," +
- " \"relationship-value\": \"" + this.placement.tenantId + "\"" +
- " }," +
- " {" +
- " \"relationship-key\": \"vserver.vserver-id\"," +
- " \"relationship-value\": \"5eef9f6d-9933-4bc6-9a1a-862d61309437\"" +
- " }" +
- " ]," +
- " \"related-to-property\": [" +
- " {" +
- " \"property-key\": \"vserver.vserver-name\"," +
- " \"property-value\": \"zolson5bfapn01dns002\"" +
- " }" +
- " ]" +
- " }" ;
+ return Placement.Util.placementRelationship(relatedTo, placement);
}
@Override
diff --git a/vid-automation/src/test/java/org/onap/vid/api/ServiceTreeApiTest.java b/vid-automation/src/test/java/org/onap/vid/api/ServiceTreeApiTest.java
index a563bd7..e5a2a73 100644
--- a/vid-automation/src/test/java/org/onap/vid/api/ServiceTreeApiTest.java
+++ b/vid-automation/src/test/java/org/onap/vid/api/ServiceTreeApiTest.java
@@ -9,6 +9,7 @@
import static org.hamcrest.Matchers.containsString;
import static org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetCloudOwnersByCloudRegionId.ATT_AIC;
import static org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetCloudOwnersByCloudRegionId.ATT_NC;
+import static org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetCloudOwnersByCloudRegionId.AUK51A;
import static org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetCloudOwnersByCloudRegionId.hvf6;
import static org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetCloudOwnersByCloudRegionId.olson3;
import static org.onap.simulator.presetGenerator.presets.aai.PresetAAIStandardQueryGet.defaultPlacement;
@@ -240,7 +241,12 @@
"\"in-maint\": true,", ImmutableMultimap.of("volume-group", volumeGroup1.getReqPath()),
new Placement(ATT_AIC, hvf6, "88a6ca3ee0394ade9403f075db23167e"));
- PresetAAIGetVfModulesByVnf vfModules2 = new PresetAAIGetVfModulesByVnf(vnfPreset2.getInstanceId());
+
+ Placement vfModule2Placement
+ = new Placement(ATT_NC, AUK51A, "73bb4c548dc048d78eccecd445ac06fc");
+
+ PresetAAIGetVfModulesByVnf twoVfModulesPreset =
+ new PresetAAIGetVfModulesByVnf(vnfPreset2.getInstanceId(), vfModule2Placement);
final PresetAAIStandardQueryGet serviceInstance =
PresetAAIStandardQueryGet.ofServiceInstance("service-instance-id", "6e59c5de-f052-46fa-aa7e-2fca9d674c44", "d27e42cf-087e-4d31-88ac-6c4b7585f800", "global-customer-id", "service-instance-type",
@@ -255,7 +261,7 @@
serviceInstance,
l3NetworkPreset3, l3NetworkPreset4, vnfPreset1, vnfPreset2, collection1,
volumeGroup1, l3NetworkPreset1, l3NetworkPreset2, instanceGroup1,
- vlanTag1, vfModules2,
+ vlanTag1, twoVfModulesPreset,
new PresetAAIModelsByInvariantIdGet(ImmutableList.of("d27e42cf-087e-4d31-88ac-6c4b7585f800")),
new PresetGetSessionSlotCheckIntervalGet(),
new PresetAAIGetSubscribersGet(),
diff --git a/vid-automation/src/test/resources/aaiGetInstanceTopology/ServiceTreeWithMultipleChildren_serviceInstance.json b/vid-automation/src/test/resources/aaiGetInstanceTopology/ServiceTreeWithMultipleChildren_serviceInstance.json
index 50786d3..d20760b 100644
--- a/vid-automation/src/test/resources/aaiGetInstanceTopology/ServiceTreeWithMultipleChildren_serviceInstance.json
+++ b/vid-automation/src/test/resources/aaiGetInstanceTopology/ServiceTreeWithMultipleChildren_serviceInstance.json
@@ -160,9 +160,10 @@
},
"uuid": "dc229cd8-c132-4455-8517-5c1787c18b14",
"productFamilyId": null,
- "lcpCloudRegionId": null,
+ "cloudOwner": "att-nc",
+ "lcpCloudRegionId": "auk51a",
"legacyRegion": null,
- "tenantId": null,
+ "tenantId": "73bb4c548dc048d78eccecd445ac06fc",
"lineOfBusiness": null,
"platformName": null,
"isBase": true,