Fixed Model Content Validation for API 45/51045/1
authorMichael Mokry <mm117s@att.com>
Fri, 8 Jun 2018 13:53:44 +0000 (08:53 -0500)
committerMichael Mokry <mm117s@att.com>
Fri, 8 Jun 2018 14:02:50 +0000 (09:02 -0500)
This fixes the validation of the content of the model to include
validating parent nodes that are required based on the yaml. Prior to
this we were only validating required child nodes and in some cases this
was causing failures to create a policy.

Change-Id: I2bbef4a671cfc7af8b55b3b3c6454b8cea3a88c9
Issue-ID: POLICY-799
Signed-off-by: Michael Mokry <mm117s@att.com>
ONAP-REST/src/main/java/org/onap/policy/rest/util/PolicyValidation.java

index 2e685d4..50985b1 100644 (file)
@@ -1085,9 +1085,11 @@ public class PolicyValidation {
                        final JsonNode value = field.getValue();
                        
                        if (value.isContainerNode() && !value.isArray()) {
+                               jsonRequestMap.put(key, "containerNode");
                                pullModelJsonKeyPairs(value); // RECURSIVE CALL
                        } else if (value.isArray()) {
                                try {
+                                       jsonRequestMap.put(key, "array");
                                        String stringValue = StringUtils.replaceEach(value.toString(), new String[]{"[", "]"}, new String[]{"",""});
                                        ObjectMapper mapper = new ObjectMapper();
                                        JsonNode newValue = mapper.readTree(stringValue);
@@ -1098,8 +1100,7 @@ public class PolicyValidation {
                        } else {
                                jsonRequestMap.put(key, value.toString().trim());
                        }
-               }
-                               
+               }                               
        }
        
     private JsonObject stringToJsonObject(String value) {