Fix additional NS parameter handling 55/46755/1
authorDenes Nemeth <denes.nemeth@nokia.com>
Wed, 9 May 2018 09:48:42 +0000 (11:48 +0200)
committerDenes Nemeth <denes.nemeth@nokia.com>
Wed, 9 May 2018 09:48:42 +0000 (11:48 +0200)
Change-Id: I9709e388d23ddb7b9a7e15f5eab55576713f4721
Signed-off-by: Denes Nemeth <denes.nemeth@nokia.com>
Issue-ID: VFC-898

nokiav2/deployment/.gitignore [new file with mode: 0644]
nokiav2/docs/.gitignore
nokiav2/docs/sampleVnfs/simple/vfc.ns.instantiation.request.json
nokiav2/docs/sampleVnfs/simpleDual/vfc.ns.instantiation.request.json
nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/LifecycleManager.java
nokiav2/driver/src/test/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/TestLifecycleManager.java

diff --git a/nokiav2/deployment/.gitignore b/nokiav2/deployment/.gitignore
new file mode 100644 (file)
index 0000000..9fd62b5
--- /dev/null
@@ -0,0 +1 @@
+driver.war
index 589cdd0..a96ddfc 100644 (file)
@@ -1,3 +1,3 @@
 _build
 .DS_Store
-
+internal.rst
index 30efc96..34d16a4 100644 (file)
@@ -1,41 +1,7 @@
 {
-  "nsInstanceId": "e7d79bd8-8e97-48fa-bbb8-fe2e8166b61c",
+  "nsInstanceId": "69c095e8-e24f-4e0b-821e-f6f8d342a929",
   "additionalParamForNs": {
     "location": "Nokia_RegionOne",
-    "vnfs": {
-      "669e8f94-b3a4-47ff-9245-c023c9fd5657": {
-        "computeResourceFlavours": [
-          {
-            "vnfdVirtualComputeDescId": "server_compute",
-            "resourceId": "m1.small"
-          }
-        ],
-        "extVirtualLinks": [
-          {
-            "extCps": [
-              {
-                "cpdId": "comuniversal_ecp"
-              }
-            ],
-            "resourceId": "external"
-          }
-        ],
-        "zones": [
-          {
-            "resourceId": "nova",
-            "id": "zoneInfoId"
-          }
-        ],
-        "flavourId": "scalable",
-        "vimType": "OPENSTACK_V2_INFO",
-        "instantiationLevel": "default",
-        "softwareImages": [
-          {
-            "resourceId": "ubuntu-16.04",
-            "vnfdSoftwareImageId": "server_image"
-          }
-        ]
-      }
-    }
+    "61fbe643-8c92-4b95-a90a-d65f1ba359a9": "{ \"computeResourceFlavours\": [ { \"vnfdVirtualComputeDescId\": \"server_compute\", \"resourceId\": \"m1.small\" } ], \"extVirtualLinks\": [ { \"extCps\": [ { \"cpdId\": \"universal_ecp\" } ], \"resourceId\": \"pub_net\" } ], \"zones\": [ { \"resourceId\": \"compute-a\", \"id\": \"zoneInfoId\" } ], \"flavourId\": \"scalable\", \"vimType\": \"OPENSTACK_V3_INFO\", \"instantiationLevel\": \"default\", \"softwareImages\": [ { \"resourceId\": \"ubuntu.16.04\", \"vnfdSoftwareImageId\": \"server_image\" } ] }"
   }
 }
\ No newline at end of file
index 4b0ce8f..2e4a325 100644 (file)
@@ -2,40 +2,6 @@
   "nsInstanceId": "b65572a1-4f2e-4787-950d-bb489e970623",
   "additionalParamForNs": {
     "location": "Nokia_RegionOne",
-    "vnfs": {
-      "f85f054f-0928-4fab-ac76-b47b8fba0d6d": {
-        "computeResourceFlavours": [
-          {
-            "vnfdVirtualComputeDescId": "server_compute",
-            "resourceId": "m1.small"
-          }
-        ],
-        "extVirtualLinks": [
-          {
-            "extCps": [
-              {
-                "cpdId": "commisioning_ecp"
-              }
-            ],
-            "resourceId": "pub_net"
-          }
-        ],
-        "zones": [
-          {
-            "resourceId": "compute-a",
-            "id": "zoneInfoId"
-          }
-        ],
-        "flavourId": "scalable",
-        "vimType": "OPENSTACK_V2_INFO",
-        "instantiationLevel": "default",
-        "softwareImages": [
-          {
-            "resourceId": "ubuntu.16.04",
-            "vnfdSoftwareImageId": "server_image"
-          }
-        ]
-      }
-    }
+    "f85f054f-0928-4fab-ac76-b47b8fba0d6d": "{ \"computeResourceFlavours\": [ { \"vnfdVirtualComputeDescId\": \"server_compute\", \"resourceId\": \"m1.small\" } ], \"extVirtualLinks\": [ { \"extCps\": [ { \"cpdId\": \"commisioning_ecp\" } ], \"resourceId\": \"pub_net\" } ], \"zones\": [ { \"resourceId\": \"compute-a\", \"id\": \"zoneInfoId\" } ], \"flavourId\": \"scalable\", \"vimType\": \"OPENSTACK_V2_INFO\", \"instantiationLevel\": \"default\", \"softwareImages\": [ { \"resourceId\": \"ubuntu.16.04\", \"vnfdSoftwareImageId\": \"server_image\" } ] }"
   }
 }
\ No newline at end of file
index 1312b9d..b826931 100644 (file)
@@ -20,6 +20,7 @@ package org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.vnfm;
 import com.google.gson.Gson;
 import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
+import com.google.gson.JsonParser;
 import com.nokia.cbam.catalog.v1.model.CatalogAdapterVnfpackage;
 import com.nokia.cbam.lcm.v32.model.*;
 import com.nokia.cbam.lcm.v32.model.ScaleDirection;
@@ -290,11 +291,11 @@ public class LifecycleManager {
     }
 
     private AdditionalParameters convertInstantiationAdditionalParams(String csarId, Object additionalParams) {
-        JsonObject vnfParameters = child(child(new Gson().toJsonTree(additionalParams).getAsJsonObject(), "inputs"), "vnfs");
-        if (!vnfParameters.has(csarId)) {
+        JsonObject inputs = child(new Gson().toJsonTree(additionalParams).getAsJsonObject(), "inputs");
+        if (!inputs.has(csarId)) {
             throw buildFatalFailure(logger, "The additional parameter section does not contain setting for VNF with " + csarId + " CSAR id");
         }
-        JsonElement additionalParamsForVnf = vnfParameters.get(csarId);
+        JsonElement additionalParamsForVnf = new JsonParser().parse(inputs.get(csarId).getAsString());
         return new Gson().fromJson(additionalParamsForVnf, AdditionalParameters.class);
     }
 
index ae58af9..026e65d 100644 (file)
  */
 package org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.vnfm;
 
-import com.google.gson.Gson;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-import com.google.gson.JsonParser;
+import com.google.gson.*;
+import com.google.gson.annotations.SerializedName;
 import com.nokia.cbam.catalog.v1.model.CatalogAdapterVnfpackage;
 import com.nokia.cbam.lcm.v32.model.*;
 import com.nokia.cbam.lcm.v32.model.OperationType;
@@ -53,6 +51,7 @@ import static java.util.Optional.empty;
 import static junit.framework.TestCase.*;
 import static org.mockito.Mockito.*;
 import static org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.util.CbamUtils.child;
+import static org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.util.CbamUtils.childElement;
 import static org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.util.SystemFunctions.systemFunctions;
 import static org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.vnfm.CbamRestApiProvider.NOKIA_LCM_API_VERSION;
 import static org.springframework.test.util.ReflectionTestUtils.setField;
@@ -310,8 +309,9 @@ public class TestLifecycleManager extends TestBase {
         ArgumentCaptor<InstantiateVnfRequest> actualInstantiationRequest = ArgumentCaptor.forClass(InstantiateVnfRequest.class);
         when(vnfApi.vnfsVnfInstanceIdInstantiatePost(eq(VNF_ID), actualInstantiationRequest.capture(), eq(NOKIA_LCM_API_VERSION))).thenReturn(buildObservable(instantiationOperationExecution));
         JsonObject inputs = child((JsonObject) instantiationRequest.getAdditionalParam(), "inputs");
-        JsonObject vnfs = child(child(inputs, "vnfs"), ONAP_CSAR_ID);
-        vnfs.remove("additionalParams");
+        JsonObject vnf = new JsonParser().parse(childElement(inputs, ONAP_CSAR_ID).getAsString()).getAsJsonObject();
+        vnf.remove("additionalParams");
+        inputs.add(ONAP_CSAR_ID, new JsonPrimitive(new Gson().toJson(vnf)));
         //when
         VnfInstantiateResponse response = lifecycleManager.createAndInstantiate(VNFM_ID, instantiationRequest, restResponse);
         waitForJobToFinishInJobManager(finished);
@@ -1652,6 +1652,21 @@ public class TestLifecycleManager extends TestBase {
         }
     }
 
+    public static class X{
+        public Map<String, String> getInputs() {
+            return inputs;
+        }
+
+        public void setInputs(Map<String, String> inputs) {
+            this.inputs = inputs;
+        }
+
+        @SerializedName("inputs")
+        public Map<String,String> inputs = new HashMap<String,String>();
+
+        public String vimId;
+    }
+
     private VnfInstantiateRequest prepareInstantiationRequest(VimInfo.VimInfoTypeEnum cloudType) {
         VnfInstantiateRequest instantiationRequest = new VnfInstantiateRequest();
         instantiationRequest.setVnfPackageId(ONAP_CSAR_ID);
@@ -1717,8 +1732,11 @@ public class TestLifecycleManager extends TestBase {
         additionalParam.getSoftwareImages().add(image);
         additionalParam.setAdditionalParams(new JsonParser().parse("{ \"a\" : \"b\" }"));
         String params = new Gson().toJson(additionalParam);
-        String src = "{ \"inputs\" : { \"vnfs\" : { \"" + ONAP_CSAR_ID + "\" : " + params + "}}, \"vimId\" : \"" + VIM_ID + "\"}";
-        instantiationRequest.setAdditionalParam(new JsonParser().parse(src));
+        X x = new X();
+        x.inputs.put(ONAP_CSAR_ID, params);
+        x.vimId = VIM_ID;
+        JsonElement additionalParam = new Gson().toJsonTree(x);
+        instantiationRequest.setAdditionalParam(additionalParam);
         return instantiationRequest;
     }