Add SO Message instead of Exception when vmIds are empty 33/92933/2
authorBonkur, Venkat (vb8416) <vb8416@att.com>
Wed, 7 Aug 2019 17:47:54 +0000 (13:47 -0400)
committerBonkur, Venkat (vb8416) <vb8416@att.com>
Wed, 7 Aug 2019 19:11:15 +0000 (15:11 -0400)
Add the conditions to log messages instead of null pointer exception
when vmIds or vserverIds are not present.
Issue-ID: SO-2186
Signed-off-by: Bonkur, Venkat (vb8416) <vb8416@att.com>
Change-Id: I27dd8a5480cf5e2d8588cc71ca3bfefaf0e138cc

bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/appc/ApplicationControllerAction.java
bpmn/MSOCommonBPMN/src/test/java/org/onap/so/client/appc/ApplicationControllerActionTest.java

index 9828d11..c05557a 100644 (file)
@@ -78,8 +78,24 @@ public class ApplicationControllerAction {
                     appCStatus = healthCheckAction(msoRequestId, vnfId, vnfName, vnfHostIpAddress, controllerType);
                     break;
                 case Snapshot:
+                    if (vmIdList.isEmpty()) {
+                        logger.warn("vmIdList is Empty in AppCClient");
+                        break;
+                    }
                     String vmIds = JsonUtils.getJsonValue(vmIdList, "vmIds");
+                    if (vmIds == null) {
+                        logger.warn("vmIds null in AppCClient");
+                        break;
+                    }
+                    if (vserverIdList.isEmpty()) {
+                        logger.warn("vserverIdList is empty in AppCClient");
+                        break;
+                    }
                     String vserverIds = JsonUtils.getJsonValue(vserverIdList, "vserverIds");
+                    if (vserverIds == null) {
+                        logger.warn("vserverIds  null in AppCClient");
+                        break;
+                    }
                     String vmId = "";
                     String vserverId = "";
                     ObjectMapper mapper = new ObjectMapper();
index 32db3a7..48c6995 100644 (file)
@@ -481,4 +481,100 @@ public class ApplicationControllerActionTest extends BaseTest {
         assertEquals(expectedErrorCode, appCAction.getErrorCode());
     }
 
+    @Test
+    public void runAppCCommand_Snapshot_vmIdList_Empty_Test()
+            throws ApplicationControllerOrchestratorException, JsonProcessingException {
+        Action action = Action.Snapshot;
+        String msoRequestId = "testMsoRequestId";
+        String vnfId = "testVnfId";
+        Optional<String> payload = Optional.empty();
+        HashMap<String, String> payloadInfo = new HashMap<String, String>();
+        payloadInfo.put("identityUrl", "testIdentityUrl");
+        String controllerType = "testControllerType";
+
+        Status status = new Status();
+        Optional<String> otherPayloadVm = PayloadClient.snapshotFormat("", "identityUrl");
+        doReturn(status).when(client).vnfCommand(action, msoRequestId, vnfId, null, otherPayloadVm, controllerType);
+
+        appCAction.runAppCCommand(action, msoRequestId, vnfId, payload, payloadInfo, controllerType);
+
+        verify(client, times(0)).vnfCommand(action, msoRequestId, vnfId, null, otherPayloadVm, controllerType);
+    }
+
+    @Test
+    public void runAppCCommand_Snapshot_vmId_null_Test()
+            throws ApplicationControllerOrchestratorException, JsonProcessingException {
+        Action action = Action.Snapshot;
+        String msoRequestId = "testMsoRequestId";
+        String vnfId = "testVnfId";
+        Optional<String> payload = Optional.empty();
+        HashMap<String, String> payloadInfo = new HashMap<String, String>();
+        payloadInfo.put("identityUrl", "testIdentityUrl");
+
+        JSONObject vmIdListJson = new JSONObject();
+        payloadInfo.put("vmIdList", vmIdListJson.toString());
+        String controllerType = "testControllerType";
+
+        Status status = new Status();
+        Optional<String> otherPayloadVm = PayloadClient.snapshotFormat("", payloadInfo.get("identityUrl"));
+        doReturn(status).when(client).vnfCommand(action, msoRequestId, vnfId, null, otherPayloadVm, controllerType);
+
+        appCAction.runAppCCommand(action, msoRequestId, vnfId, payload, payloadInfo, controllerType);
+
+        verify(client, times(0)).vnfCommand(action, msoRequestId, vnfId, null, otherPayloadVm, controllerType);
+    }
+
+    @Test
+    public void runAppCCommand_Snapshot_vserverIdList_Empty_Test()
+            throws ApplicationControllerOrchestratorException, JsonProcessingException {
+        Action action = Action.Snapshot;
+        String msoRequestId = "testMsoRequestId";
+        String vnfId = "testVnfId";
+        Optional<String> payload = Optional.empty();
+        HashMap<String, String> payloadInfo = new HashMap<String, String>();
+        payloadInfo.put("identityUrl", "testIdentityUrl");
+        ArrayList<String> vmIdList = new ArrayList<String>();
+        String vmId = "testlink:testVmId";
+        vmIdList.add(vmId);
+        JSONObject vmIdListJson = new JSONObject();
+        vmIdListJson.put("vmIds", vmIdList);
+        payloadInfo.put("vmIdList", vmIdListJson.toString());
+        String controllerType = "testControllerType";
+
+        Status status = new Status();
+        Optional<String> otherPayloadVm = PayloadClient.snapshotFormat(vmId, payloadInfo.get("identityUrl"));
+        doReturn(status).when(client).vnfCommand(action, msoRequestId, vnfId, null, otherPayloadVm, controllerType);
+
+        appCAction.runAppCCommand(action, msoRequestId, vnfId, payload, payloadInfo, controllerType);
+
+        verify(client, times(0)).vnfCommand(action, msoRequestId, vnfId, null, otherPayloadVm, controllerType);
+    }
+
+    @Test
+    public void runAppCCommand_Snapshot_vserverId_null_Test()
+            throws ApplicationControllerOrchestratorException, JsonProcessingException {
+        Action action = Action.Snapshot;
+        String msoRequestId = "testMsoRequestId";
+        String vnfId = "testVnfId";
+        Optional<String> payload = Optional.empty();
+        HashMap<String, String> payloadInfo = new HashMap<String, String>();
+        payloadInfo.put("identityUrl", "testIdentityUrl");
+        ArrayList<String> vmIdList = new ArrayList<String>();
+        String vmId = "testlink:testVmId1";
+        vmIdList.add(vmId);
+        JSONObject vmIdListJson = new JSONObject();
+        vmIdListJson.put("vmIds", vmIdList);
+        payloadInfo.put("vmIdList", vmIdListJson.toString());
+        JSONObject vserverIdListJson = new JSONObject();
+        payloadInfo.put("vserverIdList", vserverIdListJson.toString());
+        String controllerType = "testControllerType";
+
+        Status status = new Status();
+        Optional<String> otherPayloadVm = PayloadClient.snapshotFormat(vmId, payloadInfo.get("identityUrl"));
+        doReturn(status).when(client).vnfCommand(action, msoRequestId, vnfId, null, otherPayloadVm, controllerType);
+
+        appCAction.runAppCCommand(action, msoRequestId, vnfId, payload, payloadInfo, controllerType);
+
+        verify(client, times(0)).vnfCommand(action, msoRequestId, vnfId, null, otherPayloadVm, controllerType);
+    }
 }