Fix multiple instantations via serviceOrder 84/128384/1
authornellix93 <aniellopaolo.malinconico@guest.telecomitalia.it>
Fri, 8 Apr 2022 07:36:28 +0000 (09:36 +0200)
committernellix93 <aniellopaolo.malinconico@guest.telecomitalia.it>
Fri, 8 Apr 2022 07:36:36 +0000 (09:36 +0200)
Change-Id: Ic591a263c69d38151fad0921f57cf168fda9a875
Signed-off-by: nellix93 <aniellopaolo.malinconico@guest.telecomitalia.it>
Issue-ID: EXTAPI-602

src/main/java/org/onap/nbi/apis/serviceorder/workflow/PostSoProcessor.java

index 0cafcde..83e3785 100644 (file)
@@ -22,6 +22,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.stream.Collectors;
+import java.util.Random;
 
 import org.onap.nbi.apis.servicecatalog.ServiceSpecificationService;
 import org.onap.nbi.apis.serviceorder.SoClient;
@@ -321,13 +322,22 @@ public class PostSoProcessor {
                Map<String, String> lob = new HashMap<>();
                lob.put("lineOfBusinessName", "LOB-Demonstration");
 
+               //Create a random variable that will be concatanate to the instanceName
+               Random rand = new Random();
+               int upperbound = 100000;
+               //generate random values from 0-upperbound
+               int int_random = rand.nextInt(upperbound); 
+               
+               String vnfInstanceNameTmp = (String) resSpecMap.get("resourceInstanceName");
+               String vnfInstanceName = vnfInstanceNameTmp + int_random;
+               
                Map<String, Object> vnfModel = new HashMap<>();
                vnfModel.put("modelInfo", vnfInfoObject);
                vnfModel.put("cloudConfiguration", cloudConfiguration);
                vnfModel.put("platform", platformName);
                vnfModel.put("lineOfBusiness", lob);
                vnfModel.put("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");
-               vnfModel.put("instanceName", (String) resSpecMap.get("resourceInstanceName"));
+               vnfModel.put("instanceName", vnfInstanceName);
                vnfModel.put("instanceParams", vnfInstanceParam);
 
                List<Object> vfModulesObjects = new ArrayList<>();
@@ -348,13 +358,19 @@ public class PostSoProcessor {
                        Map<String, Object> vfModuleObject = new HashMap<>();
                        Map<String, String> vfModuleInfo = new HashMap<>();
 
+                       //generate random values from 0-upperbound
+                       int_random = rand.nextInt(upperbound); 
+               
+                       String vfmoduleInstanceNameTmp = (String) crsObject.getModelName();
+                       String vfmoduleInstanceName = vfmoduleInstanceNameTmp + int_random;     
+               
                        vfModuleInfo.put("modelName", crsObject.getModelName());
                        vfModuleInfo.put("modelVersionId", crsObject.getModelUuid());
                        vfModuleInfo.put("modelInvariantUuid", crsObject.getModelInvariantUuid());
                        vfModuleInfo.put("modelVersion", crsObject.getModelVersion());
                        vfModuleInfo.put("modelCustomizationId", crsObject.getModelCustomizationUuid());
                        vfModuleObject.put("modelInfo", vfModuleInfo);
-                       vfModuleObject.put("instanceName", crsObject.getModelName());
+                       vfModuleObject.put("instanceName", vfmoduleInstanceName);
                        vfModuleObject.put("instanceParams", vfInstanceParam);
 
                        vfModulesObjects.add(vfModuleObject);