[POLICY-122] Policy GUI Fixes
[policy/engine.git] / POLICY-SDK-APP / src / main / java / org / openecomp / policy / controller / PolicyValidationController.java
index bb138d4..0f8b379 100644 (file)
@@ -22,7 +22,6 @@ package org.openecomp.policy.controller;
 
 
 import java.io.ByteArrayInputStream;
-import java.io.IOException;
 import java.io.InputStream;
 import java.io.PrintWriter;
 import java.io.StringReader;
@@ -42,7 +41,6 @@ import javax.json.Json;
 import javax.json.JsonReader;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.parsers.SAXParser;
 import javax.xml.parsers.SAXParserFactory;
 
@@ -65,7 +63,6 @@ import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.servlet.ModelAndView;
 import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
 import org.xml.sax.XMLReader;
 
 import com.fasterxml.jackson.databind.DeserializationFeature;
@@ -404,10 +401,8 @@ public class PolicyValidationController extends RestrictedBaseController {
                                                                        int endNum = Integer.parseInt(tempString[1]);
                                                                        String returnString = "Invalid Range:" + rMap.getKey() + " must be between " 
                                                                                        + startNum + " - "  + endNum + ",";
-                                                                       if (isInteger(value.replace("\"", ""))){
+                                                                       if (PolicyUtils.isInteger(value.replace("\"", ""))){
                                                                                int result = Integer.parseInt(value.replace("\"", ""));
-
-
                                                                                if (result < startNum || result > endNum){
                                                                                        responseString.append(returnString);                                                                    
                                                                                        valid = false;
@@ -419,12 +414,6 @@ public class PolicyValidationController extends RestrictedBaseController {
                                                                }
                                                        }
                                                }
-                                               //for continue testing for Dkat, just blocked this validation until fixing it. gw1218 on 3/30/17
-                                               //if (!checkAttributeValues()){
-                                               //responseString.append("<b>Micro Service</b>:<i>  Attribute Values Missing" + "</i><br>");
-                                               //valid = false;
-                                               //} 
-
                                        }else{
                                                responseString.append("<b>Micro Service</b>:<i> Micro Service is required" + "</i><br>");
                                                valid = false;
@@ -447,6 +436,35 @@ public class PolicyValidationController extends RestrictedBaseController {
                                        responseString.append("Ecomp Name: Ecomp Name Should not be empty" + "<br>");
                                        valid = false;
                                }
+                               
+                               if("Rainy_Day".equals(policyData.getRuleProvider())){
+                                       if(policyData.getRainyday()==null){
+                                               responseString.append("<b> Rainy Day Parameters are Required </b><br>");
+                                               valid = false;
+                                       }else{
+                                               if(policyData.getRainyday().getServiceType()==null){
+                                                       responseString.append("Rainy Day <b>Service Type</b> is Required<br>");
+                                                       valid = false;
+                                               }
+                                               if(policyData.getRainyday().getVnfType()==null){
+                                                       responseString.append("Rainy Day <b>VNF Type</b> is Required<br>");
+                                                       valid = false;
+                                               }                                               
+                                               if(policyData.getRainyday().getBbid()==null){
+                                                       responseString.append("Rainy Day <b>Building Block ID</b> is Required<br>");
+                                                       valid = false;
+                                               }
+                                               if(policyData.getRainyday().getWorkstep()==null){
+                                                       responseString.append("Rainy Day <b>Work Step</b> is Required<br>");
+                                                       valid = false;
+                                               }
+                                               if(policyData.getRainyday().getServiceType()==null){
+                                                       responseString.append("Rainy Day <b>Error Code</b> is Required<br>");
+                                                       valid = false;
+                                               }
+                                       }
+                               }
+                               
                                if("GUARD_YAML".equals(policyData.getRuleProvider()) || "GUARD_BL_YAML".equals(policyData.getRuleProvider())){
                                        if(policyData.getYamlparams()==null){
                                                responseString.append("<b> Guard Params are Required </b>" + "<br>");
@@ -472,13 +490,20 @@ public class PolicyValidationController extends RestrictedBaseController {
                                                        if(policyData.getYamlparams().getLimit()==null){
                                                                responseString.append(" Guard Params <b>Limit</b> is Required " + "<br>");
                                                                valid = false;
-                                                       }else if(!isInteger(policyData.getYamlparams().getLimit())){
+                                                       }else if(!PolicyUtils.isInteger(policyData.getYamlparams().getLimit())){
                                                                responseString.append(" Guard Params <b>Limit</b> Should be Integer " + "<br>");
                                                                valid = false;
                                                        }
                                                        if(policyData.getYamlparams().getTimeWindow()==null){
                                                                responseString.append("Guard Params <b>Time Window</b> is Required" + "<br>");
                                                                valid = false;
+                                                       }else if(!PolicyUtils.isInteger(policyData.getYamlparams().getTimeWindow())){
+                                                               responseString.append(" Guard Params <b>Time Window</b> Should be Integer " + "<br>");
+                                                               valid = false;
+                                                       }
+                                                       if(policyData.getYamlparams().getTimeUnits()==null){
+                                                               responseString.append("Guard Params <b>Time Units</b> is Required" + "<br>");
+                                                               valid = false;
                                                        }
                                                }else if("GUARD_BL_YAML".equals(policyData.getRuleProvider())){
                                                        if(policyData.getYamlparams().getBlackList()==null || policyData.getYamlparams().getBlackList().isEmpty()){
@@ -576,7 +601,7 @@ public class PolicyValidationController extends RestrictedBaseController {
                                        if (!spData.isEmpty()){
                                                SafePolicyWarning safePolicyWarningData  = (SafePolicyWarning) spData.get(0);
                                                safePolicyWarningData.getMessage();
-                                               value = "Messaage:" +  safePolicyWarningData.getMessage();
+                                               value = "Message:" +  safePolicyWarningData.getMessage();
                                        }
                                        responseString.append("success" + "@#"+ value);
                                }
@@ -603,15 +628,6 @@ public class PolicyValidationController extends RestrictedBaseController {
                return null;
        }
 
-       protected boolean isInteger(String number) {
-               try{
-                       Integer.parseInt(number);
-               }catch(NumberFormatException e){
-                       return false;
-               }
-               return true;
-       }
-
        protected String  emptyValidator(String field){
                String error;
                if ("".equals(field) || field.contains(" ") || !field.matches("^[a-zA-Z0-9_]*$")) {
@@ -698,14 +714,19 @@ public class PolicyValidationController extends RestrictedBaseController {
 
        // Validation for json.
        protected static boolean isJSONValid(String data) {
+               JsonReader jsonReader = null;
                try {
                        new JSONObject(data);
                        InputStream stream = new ByteArrayInputStream(data.getBytes(StandardCharsets.UTF_8));
-                       JsonReader jsonReader = Json.createReader(stream);
-                       System.out.println("Json Value is: " + jsonReader.read().toString() );
+                       jsonReader = Json.createReader(stream);
+                       LOGGER.info("Json Value is: " + jsonReader.read().toString() );
                } catch (Exception e) {
-                       e.printStackTrace();
+                       LOGGER.error("Exception Occured While Validating"+e);
                        return false;
+               }finally{
+                       if(jsonReader != null){
+                               jsonReader.close();
+                       }
                }
                return true;
        }
@@ -720,11 +741,8 @@ public class PolicyValidationController extends RestrictedBaseController {
                        XMLReader reader = parser.getXMLReader();
                        reader.setErrorHandler(new XMLErrorHandler());
                        reader.parse(new InputSource(new StringReader(data)));
-               } catch (ParserConfigurationException e) {
-                       return false;
-               } catch (SAXException e) {
-                       return false;
-               } catch (IOException e) {
+               } catch (Exception e) {
+                       LOGGER.error("Exception Occured While Validating"+e);
                        return false;
                }
                return true;