Drop Resource Input Field if not valid JSON 74/100074/1
authorSmokowski, Steven <steve.smokowski@att.com>
Wed, 8 Jan 2020 02:19:21 +0000 (21:19 -0500)
committerBenjamin, Max (mb388a) <mb388a@att.com>
Wed, 8 Jan 2020 02:19:21 +0000 (21:19 -0500)
Drop Resource Input Field if not valid JSON
Drop Resource Input Field if not valid JSON

Issue-ID: SO-2587
Signed-off-by: Benjamin, Max (mb388a) <mb388a@att.com>
Change-Id: I704981c6b3413872975b9e94a4b79cc0a1790795

adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/catalogrest/CatalogQuery.java
adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/catalogrest/QueryAllottedResourceCustomization.java
adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/catalogrest/QueryServiceNetworks.java
adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/catalogrest/QueryServiceVnfs.java
adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/catalogrest/QueryVnfcs.java
adapters/mso-catalog-db-adapter/src/test/java/org/onap/so/adapters/catalogdb/catalogrest/QueryServiceVnfTest.java [new file with mode: 0644]

index edec48d..a98778b 100644 (file)
@@ -21,6 +21,7 @@
 
 package org.onap.so.adapters.catalogdb.catalogrest;
 
+import java.io.IOException;
 import java.util.Map;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -95,4 +96,17 @@ public abstract class CatalogQuery {
         return smartToJSON();
 
     }
+
+    protected boolean isJSONValid(String jsonInString) {
+        try {
+            if (jsonInString == null) {
+                return false;
+            }
+            ObjectMapper mapper = new ObjectMapper();
+            mapper.readValue(jsonInString, String.class);
+            return true;
+        } catch (IOException e) {
+            return false;
+        }
+    }
 }
index c1acc31..afcb2d5 100644 (file)
@@ -123,7 +123,10 @@ public class QueryAllottedResourceCustomization extends CatalogQuery {
                 put(valueMap, "PROVIDING_SERVICE_MODEL_INVARIANT_UUID", o.getProvidingServiceModelInvariantUUID());
                 put(valueMap, "PROVIDING_SERVICE_MODEL_UUID", o.getProvidingServiceModelUUID());
                 put(valueMap, "PROVIDING_SERVICE_MODEL_NAME", o.getProvidingServiceModelName());
-                put(valueMap, "RESOURCE_INPUT", o.getResourceInput());
+
+                if (isJSONValid(o.getResourceInput())) {
+                    put(valueMap, "RESOURCE_INPUT", o.getResourceInput());
+                }
 
                 sb.append(sep).append(this.setTemplate(TEMPLATE, valueMap));
                 sep = ",\n";
index 5573b23..1297182 100644 (file)
@@ -116,7 +116,10 @@ public class QueryServiceNetworks extends CatalogQuery {
             put(valueMap, "NETWORK_ROLE", o.getNetworkRole());
             put(valueMap, "NETWORK_SCOPE", o.getNetworkScope());
             put(valueMap, "NETWORK_TECHNOLOGY", o.getNetworkTechnology());
-            put(valueMap, "RESOURCE_INPUT", o.getResourceInput());
+
+            if (isJSONValid(o.getResourceInput())) {
+                put(valueMap, "RESOURCE_INPUT", o.getResourceInput());
+            }
 
             sb.append(sep).append(this.setTemplate(TEMPLATE, valueMap));
             sep = ",\n";
index 0b8de60..d6e7415 100644 (file)
@@ -23,6 +23,7 @@
 package org.onap.so.adapters.catalogdb.catalogrest;
 /* should be called QueryVnfResource.java */
 
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -32,6 +33,7 @@ import org.onap.so.db.catalog.beans.VnfResourceCustomization;
 import org.onap.so.db.catalog.beans.VnfcInstanceGroupCustomization;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import com.fasterxml.jackson.databind.ObjectMapper;
 
 @XmlRootElement(name = "serviceVnfs")
 public class QueryServiceVnfs extends CatalogQuery {
@@ -120,7 +122,9 @@ public class QueryServiceVnfs extends CatalogQuery {
             put(valueMap, "NF_NAMING_CODE", o.getNfNamingCode());
             put(valueMap, "VNFC_INSTANCE_GROUP_ORDER", o.getVnfcInstanceGroupOrder());
             put(valueMap, "MULTI_STEP_DESIGN", o.getMultiStageDesign());
-            put(valueMap, "RESOURCE_INPUT", o.getResourceInput());
+            if (isJSONValid(o.getResourceInput())) {
+                put(valueMap, "RESOURCE_INPUT", o.getResourceInput());
+            }
 
             String subitem = new QueryVfModule(vrNull ? null : o.getVfModuleCustomizations()).JSON2(true, true);
             valueMap.put("_VFMODULES_", subitem.replaceAll("(?m)^", "\t\t"));
@@ -142,4 +146,5 @@ public class QueryServiceVnfs extends CatalogQuery {
             sb.append("}");
         return sb.toString();
     }
+
 }
index dc73fe9..24c07d6 100644 (file)
 
 package org.onap.so.adapters.catalogdb.catalogrest;
 
-import org.onap.so.db.catalog.beans.VnfcCustomization;
-import javax.xml.bind.annotation.XmlRootElement;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import javax.xml.bind.annotation.XmlRootElement;
+import org.onap.so.db.catalog.beans.VnfcCustomization;
 
 @XmlRootElement(name = "vnfcs")
 public class QueryVnfcs extends CatalogQuery {
@@ -105,8 +105,10 @@ public class QueryVnfcs extends CatalogQuery {
             put(valueMap, "MODEL_INVARIANT_ID", o.getModelInvariantUUID());
             put(valueMap, "MODEL_VERSION", o.getModelVersion());
             put(valueMap, "MODEL_CUSTOMIZATION_UUID", o.getModelCustomizationUUID());
-            put(valueMap, "RESOURCE_INPUT", o.getResourceInput());
 
+            if (isJSONValid(o.getResourceInput())) {
+                put(valueMap, "RESOURCE_INPUT", o.getResourceInput());
+            }
             sb.append(sep).append(this.setTemplate(TEMPLATE, valueMap));
             sep = ",\n";
         }
diff --git a/adapters/mso-catalog-db-adapter/src/test/java/org/onap/so/adapters/catalogdb/catalogrest/QueryServiceVnfTest.java b/adapters/mso-catalog-db-adapter/src/test/java/org/onap/so/adapters/catalogdb/catalogrest/QueryServiceVnfTest.java
new file mode 100644 (file)
index 0000000..b71808b
--- /dev/null
@@ -0,0 +1,36 @@
+package org.onap.so.adapters.catalogdb.catalogrest;
+
+import static org.junit.Assert.assertEquals;
+import org.json.JSONException;
+import org.junit.Test;
+
+
+public class QueryServiceVnfTest extends QueryServiceVnfs {
+
+    private QueryServiceVnfs queryServiceVnf = new QueryServiceVnfs();
+
+    private final String invalidJSON =
+            "\"{\\\\\\\"nf_function\\\\\\\":\\\\\\\"DO_STUFF\\\\\\\",\\\"_image_name\\\\\\\":\\\\\\\"test_image\\\"";
+
+    private final String validJSON = "\"{\"nf_function\":\"DO_STUFF\",\"image_name\":\"test_image\"}";
+
+    @Test
+    public void test_IsValidJsonTrue() throws JSONException {
+        boolean isValidJson = queryServiceVnf.isJSONValid(validJSON);
+        assertEquals(true, isValidJson);
+    }
+
+    @Test
+    public void test_IsValidJsonFalse() throws JSONException {
+        boolean isValidJson = queryServiceVnf.isJSONValid(invalidJSON);
+        assertEquals(false, isValidJson);
+    }
+
+    @Test
+    public void test_IsValidJsonNull() throws JSONException {
+        boolean isValidJson = queryServiceVnf.isJSONValid(null);
+        assertEquals(false, isValidJson);
+    }
+
+
+}