[POLICY-122] Policy GUI Fixes
[policy/engine.git] / ECOMP-PDP-REST / src / main / java / org / openecomp / policy / pdp / rest / api / services / ClosedLoopPMPolicyService.java
index 15a2c3a..3fb8f46 100644 (file)
@@ -36,9 +36,9 @@ import org.openecomp.policy.xacml.std.pap.StdPAPPolicy;
  * @version 0.1
  */
 public class ClosedLoopPMPolicyService{
-       private static Logger LOGGER = FlexLogger.getLogger(ClosedLoopPMPolicyService.class.getName());
-       private static PAPServices papServices = null;
+       private static final Logger LOGGER = FlexLogger.getLogger(ClosedLoopPMPolicyService.class.getName());
        
+       private PAPServices papServices = null;
        private PolicyParameters policyParameters = null;
        private String message = null;
        private String policyName = null;
@@ -68,6 +68,7 @@ public class ClosedLoopPMPolicyService{
                        configBody = PolicyApiUtils.stringToJsonObject(policyParameters.getConfigBody());
                } catch(JsonException| IllegalStateException e){
                        message = XACMLErrorConstants.ERROR_DATA_ISSUE+ " improper JSON object : " + policyParameters.getConfigBody();
+                       LOGGER.error("Error during parsing JSON config body for Closed loop PM policy  " , e);
                        return false;
                }
                return true;
@@ -85,21 +86,31 @@ public class ClosedLoopPMPolicyService{
                } else {
                        operation = "create";
                }
-               boolean levelCheck = PolicyApiUtils.isNumeric(policyParameters.getRiskLevel());
                // get values and attributes from the JsonObject
-               String ecompName = configBody.get("ecompname").toString().replace("\"", "");
-               String serviceType = configBody.get("serviceTypePolicyName").toString().replace("\"", "");
-               String jsonBody = configBody.toString();
-               if (ecompName==null||ecompName.equals("")){
+               if(!configBody.containsKey("ecompname")){
                        message = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Ecomp Name given.";
                        LOGGER.error(message);
                        return message;
                }
+               if(!configBody.containsKey("serviceTypePolicyName")){
+                       message = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Service Type Policy Name given.";
+                       LOGGER.error(message);
+                       return message;
+               }
+               String ecompName = configBody.get("ecompname").toString().trim().replace("\"", "");
+               if (ecompName==null||ecompName.trim().isEmpty()){
+                       message = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Ecomp Name given.";
+                       LOGGER.error(message);
+                       return message;
+               }
+               boolean levelCheck = PolicyApiUtils.isNumeric(policyParameters.getRiskLevel());
                if (!levelCheck){
                        message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Incorrect Risk Level given.";
                        LOGGER.error(message);
                        return message;
                }
+               String jsonBody = configBody.toString();
+               String serviceType = configBody.get("serviceTypePolicyName").toString().replace("\"", "");
                // Create Policy. 
                StdPAPPolicy newPAPPolicy = new StdPAPPolicy("ClosedLoop_PM", policyName, policyParameters.getPolicyDescription(), ecompName, 
                                jsonBody, false, null, serviceType, updateFlag, policyScope, 0, policyParameters.getRiskLevel(),