Push and unpush to support multiple policies 69/83669/4
authorpa834y <pa834y@att.com>
Thu, 28 Mar 2019 23:05:44 +0000 (19:05 -0400)
committerpa834y <pa834y@att.com>
Tue, 2 Apr 2019 18:15:24 +0000 (14:15 -0400)
Change-Id: I95a05898d299a96810abf4f3b7940e8a3a243000
Issue-ID: POLICY-1414
Signed-off-by: pa834y <pa834y@att.com>
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/handler/APIRequestHandler.java
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/handler/DeleteHandler.java
ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/model/RemoveGroupPolicy.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/handler/DeleteHandlerTest.java
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/model/RemoveGroupPolicyTest.java
ONAP-PDP-REST/src/main/java/org/onap/policy/pdp/rest/api/services/DeletePolicyService.java
ONAP-PDP-REST/src/main/java/org/onap/policy/pdp/rest/api/services/PdpApiService.java [new file with mode: 0644]
ONAP-PDP-REST/src/main/java/org/onap/policy/pdp/rest/api/services/PushPolicyService.java
ONAP-PDP-REST/src/test/java/org/onap/policy/pdp/rest/api/test/PolicyEngineServicesTest.java
PolicyEngineAPI/pom.xml
PolicyEngineAPI/src/main/java/org/onap/policy/api/PolicyNameType.java [new file with mode: 0644]

index 40cb8aa..5bea62d 100644 (file)
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP-PAP-REST
  * ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * limitations under the License.
  * ============LICENSE_END=========================================================
  */
+
 package org.onap.policy.pap.xacml.rest.handler;
 
 import java.io.IOException;
-import java.sql.SQLException;
-
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-
 import org.onap.policy.common.logging.ONAPLoggingContext;
 import org.onap.policy.pap.xacml.rest.service.ImportService;
 import org.onap.policy.pap.xacml.rest.service.MetricService;
@@ -34,6 +32,14 @@ public class APIRequestHandler {
 
     private OnapPDPGroup newGroup;
 
+    /**
+     * Do get.
+     *
+     * @param request the request
+     * @param response the response
+     * @param apiflag the apiflag
+     * @throws IOException Signals that an I/O exception has occurred.
+     */
     public void doGet(HttpServletRequest request, HttpServletResponse response, String apiflag) throws IOException {
         // Request from the API to get Dictionary Items
         if ("api".equalsIgnoreCase(apiflag)) {
@@ -58,9 +64,17 @@ public class APIRequestHandler {
         }
     }
 
+    /**
+     * Do put.
+     *
+     * @param request the request
+     * @param response the response
+     * @param service the service
+     * @throws IOException Signals that an I/O exception has occurred.
+     */
     public void doPut(HttpServletRequest request, HttpServletResponse response, String service) throws IOException {
-        if ("MICROSERVICE".equalsIgnoreCase(service) || "BRMSPARAM".equalsIgnoreCase(service) ||
-                "OPTIMIZATION".equalsIgnoreCase(service)) {
+        if ("MICROSERVICE".equalsIgnoreCase(service) || "BRMSPARAM".equalsIgnoreCase(service)
+                || "OPTIMIZATION".equalsIgnoreCase(service)) {
             ImportService importService = new ImportService();
             importService.doImportMicroServicePut(request, response);
             return;
@@ -74,13 +88,22 @@ public class APIRequestHandler {
         }
     }
 
+    /**
+     * Do delete.
+     *
+     * @param request the request
+     * @param response the response
+     * @param loggingContext the logging context
+     * @param apiflag the apiflag
+     * @throws IOException Signals that an I/O exception has occurred.
+     */
     public void doDelete(HttpServletRequest request, HttpServletResponse response, ONAPLoggingContext loggingContext,
-                         String apiflag) throws IOException, SQLException {
+            String apiflag) throws IOException {
         DeleteHandler deleteHandler = DeleteHandler.getInstance();
         if ("deletePapApi".equalsIgnoreCase(apiflag)) {
-            deleteHandler.doAPIDeleteFromPAP(request, response);
+            deleteHandler.doApiDeleteFromPap(request, response);
         } else if ("deletePdpApi".equalsIgnoreCase(apiflag)) {
-            deleteHandler.doAPIDeleteFromPDP(request, response, loggingContext);
+            deleteHandler.doApiDeleteFromPdp(request, response, loggingContext);
             setNewGroup(deleteHandler.getDeletedGroup());
         }
     }
index ca0bb77..4e78742 100644 (file)
@@ -17,6 +17,7 @@
  * limitations under the License.
  * ============LICENSE_END=========================================================
  */
+
 package org.onap.policy.pap.xacml.rest.handler;
 
 import com.att.research.xacml.api.pap.PAPException;
@@ -24,11 +25,12 @@ import com.att.research.xacml.api.pap.PDPPolicy;
 import com.att.research.xacml.util.XACMLProperties;
 import java.io.File;
 import java.io.IOException;
-import java.sql.SQLException;
+import java.util.Arrays;
 import java.util.List;
 import javax.script.SimpleBindings;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import org.apache.commons.lang3.StringUtils;
 import org.onap.policy.common.logging.ONAPLoggingContext;
 import org.onap.policy.common.logging.eelf.MessageCodes;
 import org.onap.policy.common.logging.eelf.PolicyLogger;
@@ -66,14 +68,26 @@ public class DeleteHandler {
     }
 
     private OnapPDPGroup newgroup;
-    private static Logger logger = FlexLogger.getLogger(DeleteHandler.class);
-    public static final String POLICY_IN_PDP = "PolicyInPDP";
-    public static final String ERROR = "error";
-    public static final String UNKNOWN = "unknown";
+    private static final Logger LOGGER = FlexLogger.getLogger(DeleteHandler.class);
+    private static final String POLICY_IN_PDP = "PolicyInPDP";
+    private static final String ERROR = "error";
+    private static final String MESSAGE = "message";
+    private static final String UNKNOWN = "unknown";
+    private static final String SUCCESS = "success";
+    private static final String OPERATION = "operation";
+    private static final String CONFIG = "Config_";
     private static final String REGEX = "[0-9a-zA-Z._]*";
+    private static final String DELETE = "delete";
+    private static final String ACTION = "Action_";
 
-    public void doAPIDeleteFromPAP(HttpServletRequest request, HttpServletResponse response)
-            throws IOException, SQLException {
+    /**
+     * Do API delete from PAP.
+     *
+     * @param request the request
+     * @param response the response
+     * @throws IOException Signals that an I/O exception has occurred.
+     */
+    public void doApiDeleteFromPap(HttpServletRequest request, HttpServletResponse response) throws IOException {
         // get the request content into a String
         String json = null;
         java.util.Scanner scanner = new java.util.Scanner(request.getInputStream());
@@ -85,7 +99,7 @@ public class DeleteHandler {
         StdPAPPolicy policy = PolicyUtils.jsonStringToObject(json, StdPAPPolicy.class);
         String policyName = policy.getPolicyName();
         boolean policyVersionDeleted = false;
-        String removeXMLExtension;
+        String removeXmlExtension;
         int currentVersion;
         String removeVersionExtension;
         String splitPolicyName = null;
@@ -97,16 +111,16 @@ public class DeleteHandler {
         try {
             jpaUtils = JPAUtils.getJPAUtilsInstance();
         } catch (Exception e) {
-            PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, "XACMLPapServlet",
+            PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, "doAPIDeleteFromPAP",
                     " Could not create JPAUtils instance on the PAP");
             response.addHeader(ERROR, "jpautils");
-            response.addHeader("operation", "delete");
+            response.addHeader(OPERATION, DELETE);
             response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
             return;
         }
         if (jpaUtils.dbLockdownIgnoreErrors()) {
             PolicyLogger.warn("Policies are locked down");
-            response.addHeader("operation", "delete");
+            response.addHeader(OPERATION, DELETE);
             response.addHeader("lockdown", "true");
             response.setStatus(HttpServletResponse.SC_ACCEPTED);
             return;
@@ -114,15 +128,15 @@ public class DeleteHandler {
         String policyEntityQuery = null;
         try {
             if (policyName.endsWith(".xml")) {
-                removeXMLExtension = policyName.replace(".xml", "");
+                removeXmlExtension = policyName.replace(".xml", "");
                 currentVersion =
-                        Integer.parseInt(removeXMLExtension.substring(removeXMLExtension.lastIndexOf('.') + 1));
-                removeVersionExtension = removeXMLExtension.substring(0, removeXMLExtension.lastIndexOf('.'));
+                        Integer.parseInt(removeXmlExtension.substring(removeXmlExtension.lastIndexOf('.') + 1));
+                removeVersionExtension = removeXmlExtension.substring(0, removeXmlExtension.lastIndexOf('.'));
                 boolean queryCheck = true;
-                if (policy.getDeleteCondition().equalsIgnoreCase("All Versions")) {
-                    if (policyName.contains("Config_")) {
+                if ("All Versions".equalsIgnoreCase(policy.getDeleteCondition())) {
+                    if (policyName.contains(CONFIG)) {
                         splitPolicyName = removeVersionExtension.replace(".Config_", ":Config_");
-                    } else if (policyName.contains("Action_")) {
+                    } else if (policyName.contains(ACTION)) {
                         splitPolicyName = removeVersionExtension.replace(".Action_", ":Action_");
                     } else if (policyName.contains("Decision_")) {
                         splitPolicyName = removeVersionExtension.replace(".Decision_", ":Decision_");
@@ -130,18 +144,18 @@ public class DeleteHandler {
                     if (splitPolicyName != null) {
                         split = splitPolicyName.split(":");
                     } else {
-                        PolicyLogger.error(MessageCodes.ERROR_UNKNOWN +
-                                "Failed to delete the policy. Please, provide the valid policyname.");
+                        PolicyLogger.error(MessageCodes.ERROR_UNKNOWN
+                                "Failed to delete the policy. Please, provide the valid policyname.");
                         response.addHeader(ERROR, UNKNOWN);
                         response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
                         return;
                     }
                     policyEntityQuery =
                             "SELECT p FROM PolicyEntity p WHERE p.policyName LIKE :pName and p.scope=:pScope";
-                } else if (policy.getDeleteCondition().equalsIgnoreCase("Current Version")) {
-                    if (policyName.contains("Config_")) {
+                } else if ("Current Version".equalsIgnoreCase(policy.getDeleteCondition())) {
+                    if (policyName.contains(CONFIG)) {
                         splitPolicyName = policyName.replace(".Config_", ":Config_");
-                    } else if (policyName.contains("Action_")) {
+                    } else if (policyName.contains(ACTION)) {
                         splitPolicyName = policyName.replace(".Action_", ":Action_");
                     } else if (policyName.contains("Decision_")) {
                         splitPolicyName = policyName.replace(".Decision_", ":Decision_");
@@ -164,9 +178,9 @@ public class DeleteHandler {
                     SimpleBindings pvParams = new SimpleBindings();
                     pvParams.put("pname", removeVersionExtension.replace(".", File.separator));
                     List<?> pvResult = commonClassDao.getDataByQuery(getPolicyVersion, pvParams);
-                    PolicyVersion pVersion = (PolicyVersion) pvResult.get(0);
+                    PolicyVersion polVersion = (PolicyVersion) pvResult.get(0);
                     int newVersion = 0;
-                    if (policy.getDeleteCondition().equalsIgnoreCase("All Versions")) {
+                    if ("All Versions".equalsIgnoreCase(policy.getDeleteCondition())) {
                         boolean groupCheck = checkPolicyGroupEntity(peResult);
                         if (!groupCheck) {
                             for (Object peData : peResult) {
@@ -178,28 +192,28 @@ public class DeleteHandler {
                         }
                         switch (status) {
                             case ERROR:
-                                PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE +
-                                        "Exception Occured while deleting the Entity from Database.");
+                                PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE
+                                        "Exception Occured while deleting the Entity from Database.");
                                 response.addHeader(ERROR, UNKNOWN);
                                 response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
                                 return;
                             case POLICY_IN_PDP:
-                                PolicyLogger.error(MessageCodes.GENERAL_WARNING +
-                                        "Policy can't be deleted, it is active in PDP Groups.");
+                                PolicyLogger.error(MessageCodes.GENERAL_WARNING
+                                        "Policy can't be deleted, it is active in PDP Groups.");
                                 response.addHeader(ERROR, POLICY_IN_PDP);
                                 response.setStatus(HttpServletResponse.SC_CONFLICT);
                                 return;
                             default:
                                 try {
                                     policyVersionDeleted = true;
-                                    commonClassDao.delete(pVersion);
+                                    commonClassDao.delete(polVersion);
                                 } catch (Exception e) {
-                                    logger.error(e.getMessage(), e);
+                                    LOGGER.error(e.getMessage(), e);
                                     policyVersionDeleted = false;
                                 }
                                 break;
                         }
-                    } else if (policy.getDeleteCondition().equalsIgnoreCase("Current Version")) {
+                    } else if ("Current Version".equalsIgnoreCase(policy.getDeleteCondition())) {
                         boolean groupCheck = checkPolicyGroupEntity(peResult);
                         if (!groupCheck) {
                             policyEntity = (PolicyEntity) peResult.get(0);
@@ -209,14 +223,14 @@ public class DeleteHandler {
                         }
 
                         if (ERROR.equals(status)) {
-                            PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE +
-                                    "Exception Occured while deleting the Entity from Database.");
+                            PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE
+                                    "Exception Occured while deleting the Entity from Database.");
                             response.addHeader(ERROR, UNKNOWN);
                             response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
                             return;
                         } else if (POLICY_IN_PDP.equals(status)) {
-                            PolicyLogger.error(MessageCodes.GENERAL_WARNING +
-                                    "Policy can't be deleted, it is active in PDP Groups.");
+                            PolicyLogger.error(MessageCodes.GENERAL_WARNING
+                                    "Policy can't be deleted, it is active in PDP Groups.");
                             response.addHeader(ERROR, POLICY_IN_PDP);
                             response.setStatus(HttpServletResponse.SC_CONFLICT);
                             return;
@@ -233,30 +247,30 @@ public class DeleteHandler {
                                         }
                                     }
                                 }
-                                pVersion.setActiveVersion(newVersion);
-                                pVersion.setHigherVersion(newVersion);
+                                polVersion.setActiveVersion(newVersion);
+                                polVersion.setHigherVersion(newVersion);
                                 try {
                                     policyVersionDeleted = true;
-                                    commonClassDao.save(pVersion);
+                                    commonClassDao.save(polVersion);
                                 } catch (Exception e) {
-                                    logger.error(e.getMessage(), e);
+                                    LOGGER.error(e.getMessage(), e);
                                     policyVersionDeleted = false;
                                 }
                             } else {
                                 try {
                                     policyVersionDeleted = true;
-                                    commonClassDao.delete(pVersion);
+                                    commonClassDao.delete(polVersion);
                                 } catch (Exception e) {
-                                    logger.error(e.getMessage(), e);
+                                    LOGGER.error(e.getMessage(), e);
                                     policyVersionDeleted = false;
                                 }
                             }
                         }
                     }
                 } else {
-                    PolicyLogger.error(MessageCodes.ERROR_UNKNOWN +
-                            "Failed to delete the policy for an unknown reason.  Check the file system and other logs" +
-                            " for further information.");
+                    PolicyLogger.error(MessageCodes.ERROR_UNKNOWN
+                            + "Failed to delete the policy for an unknown reason.  Check the file system and other logs"
+                            " for further information.");
                     response.addHeader(ERROR, UNKNOWN);
                     response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
                     return;
@@ -271,25 +285,31 @@ public class DeleteHandler {
 
         if (policyVersionDeleted) {
             response.setStatus(HttpServletResponse.SC_OK);
-            response.addHeader("successMapKey", "success");
-            response.addHeader("operation", "delete");
+            response.addHeader("successMapKey", SUCCESS);
+            response.addHeader(OPERATION, DELETE);
         } else {
-            PolicyLogger.error(MessageCodes.ERROR_UNKNOWN +
-                    "Failed to delete the policy for an unknown reason.  Check the file system and other logs for " +
-                    "further information.");
+            PolicyLogger.error(MessageCodes.ERROR_UNKNOWN
+                    + "Failed to delete the policy for an unknown reason.  Check the file system and other logs for "
+                    "further information.");
             response.addHeader(ERROR, UNKNOWN);
             response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
         }
     }
 
+    /**
+     * Delete policy entity data.
+     *
+     * @param policyEntity the policy entity
+     * @return the string
+     */
     public static String deletePolicyEntityData(PolicyEntity policyEntity) {
         PolicyElasticSearchController controller = new PolicyElasticSearchController();
         PolicyRestAdapter policyData = new PolicyRestAdapter();
         String policyName = policyEntity.getPolicyName();
         try {
-            if (policyName.contains("Config_") || policyName.contains("Decision_MS_")) {
+            if (policyName.contains("CONFIG") || policyName.contains("Decision_MS_")) {
                 commonClassDao.delete(policyEntity.getConfigurationData());
-            } else if (policyName.contains("Action_")) {
+            } else if (policyName.contains(ACTION)) {
                 commonClassDao.delete(policyEntity.getActionBodyEntity());
             }
             String searchPolicyName = policyEntity.getScope() + "." + policyEntity.getPolicyName();
@@ -297,12 +317,18 @@ public class DeleteHandler {
             controller.deleteElk(policyData);
             commonClassDao.delete(policyEntity);
         } catch (Exception e) {
-            logger.error(e.getMessage(), e);
+            LOGGER.error(e.getMessage(), e);
             return ERROR;
         }
-        return "success";
+        return SUCCESS;
     }
 
+    /**
+     * Check policy group entity.
+     *
+     * @param peResult the pe result
+     * @return true, if successful
+     */
     public static boolean checkPolicyGroupEntity(List<?> peResult) {
         String groupEntityquery = "from PolicyGroupEntity where policyid = :policyEntityId";
         for (Object peData : peResult) {
@@ -317,107 +343,112 @@ public class DeleteHandler {
         return false;
     }
 
-    public void doAPIDeleteFromPDP(HttpServletRequest request, HttpServletResponse response,
-                                   ONAPLoggingContext loggingContext) throws IOException {
-
-        String policyName = request.getParameter("policyName");
+    /**
+     * Do API delete from PDP.
+     *
+     * @param request the request
+     * @param response the response
+     * @param loggingContext the logging context
+     * @throws IOException Signals that an I/O exception has occurred.
+     */
+    public void doApiDeleteFromPdp(HttpServletRequest request, HttpServletResponse response,
+            ONAPLoggingContext loggingContext) throws IOException {
         String groupId = request.getParameter("groupId");
-        String responseString = null;
 
         if (groupId != null && !groupId.matches(REGEX)) {
             response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
-            response.addHeader("error", ERROR);
-            response.addHeader("message", "Group Id is not valid");
+            response.addHeader(ERROR, ERROR);
+            response.addHeader(MESSAGE, "Group Id is not valid");
             return;
         }
+        String requestId = request.getHeader("X-ECOMP-RequestID");
+        String polName = request.getParameter("policyName");
+        LOGGER.info("JSON request from API to Delete Policy from the PDP - " + polName + " -RequestId - " + requestId);
 
-        PolicyLogger.info("JSON request from API to Delete Policy from the PDP: " + policyName);
-
-        // for PUT operations the group may or may not need to exist before the operation can be done
+        // for PUT operations the group may or may not need to exist before the operation can be
+        // done
         OnapPDPGroup group = null;
         try {
             group = XACMLPapServlet.getPAPEngine().getGroup(groupId);
         } catch (PAPException e) {
-            PolicyLogger.error("Exception occured While PUT operation is performing for PDP Group" + e);
+            LOGGER.error("Exception occured While PUT operation is performing for PDP Group" + " -  RequestId - "
+                    + requestId + e);
         }
         if (group == null) {
             String message = "Unknown groupId '" + groupId + "'.";
-            PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " " + message);
+            LOGGER.error(MessageCodes.ERROR_DATA_ISSUE + " - RequestId -  " + requestId + " - " + message);
             loggingContext.transactionEnded();
             PolicyLogger.audit("Transaction Failed - See Error.log");
             response.addHeader(ERROR, "UnknownGroup");
-            response.addHeader("message", message);
+            response.addHeader(MESSAGE, message);
             response.setStatus(HttpServletResponse.SC_NOT_FOUND);
             return;
-        } else {
-            loggingContext.setServiceName("API:PAP.deletPolicyFromPDPGroup");
-            if (policyName.contains("xml")) {
-                PolicyLogger
-                        .debug("The full file name including the extension was provided for policyName.. continue.");
-            } else {
+        }
+        loggingContext.setServiceName("API:PAP.deletPolicyFromPDPGroup");
+        RemoveGroupPolicy removePolicy = new RemoveGroupPolicy((StdPDPGroup) group);
+        removePolicy.prepareToRemove();
+        List<String> policyIdList = Arrays.asList(polName.split(","));
+        for (String policyName : policyIdList) {
+            if (!policyName.endsWith("xml")) {
                 String message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Invalid policyName... "
                         + "policyName must be the full name of the file to be deleted including version and extension";
-                PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " Invalid policyName... "
-                        + "policyName must be the full name of the file to be deleted including version and extension");
+                LOGGER.error(message + "   - RequestId - " + requestId);
                 response.addHeader(ERROR, message);
                 response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
                 return;
             }
-            RemoveGroupPolicy removePolicy = new RemoveGroupPolicy((StdPDPGroup) group);
             PDPPolicy policy = group.getPolicy(policyName);
-            if (policy != null) {
-
-                if ((policy.getId().contains("Config_MS_")) || (policy.getId().contains("BRMS_Param"))) {
-                    if (preSafetyCheck(policy)) {
-                        PolicyLogger.debug("Precheck Successful.");
-                    }
-                }
-                PolicyLogger.info("Preparing to remove policy from group: " + group.getId());
-                removePolicy.prepareToRemove(policy);
-                OnapPDPGroup updatedGroup = removePolicy.getUpdatedObject();
-                responseString = deletePolicyFromPDPGroup(updatedGroup, loggingContext);
-            } else {
-                String message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Policy does not exist on the PDP.";
-                PolicyLogger.error(message);
-                PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " Policy does not exist on the PDP.");
+            if (policy == null) {
+                String message =
+                        XACMLErrorConstants.ERROR_DATA_ISSUE + "Policy does not exist on the PDP - " + policyName;
+                LOGGER.error(message + " - RequestId   - " + requestId);
                 response.addHeader(ERROR, message);
                 response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
                 return;
             }
+            if (StringUtils.indexOfAny(policy.getId(), "Config_MS_", "BRMS_Param") >= 0) {
+                preSafetyCheck(policy);
+            }
+            LOGGER.info("Preparing to remove policy from group: " + group.getId() + "- RequestId - " + requestId);
+            removePolicy.removePolicy(policy);
         }
+        OnapPDPGroup updatedGroup = removePolicy.getUpdatedObject();
+        String userId = request.getParameter("userId");
+        String responseString = deletePolicyFromPdpGroup(updatedGroup, loggingContext, userId);
+
         switch (responseString) {
-            case "success":
+            case SUCCESS:
                 loggingContext.transactionEnded();
-                PolicyLogger.info("Policy successfully deleted!");
+                LOGGER.info("Policy successfully removed from PDP - " + polName + " -   RequestId - " + requestId);
                 PolicyLogger.audit("Policy successfully deleted!");
                 response.setStatus(HttpServletResponse.SC_OK);
-                response.addHeader("successMapKey", "success");
-                response.addHeader("operation", "delete");
+                response.addHeader("successMapKey", SUCCESS);
+                response.addHeader(OPERATION, DELETE);
                 break;
             case "No Group":
                 String message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Group update had bad input.";
-                PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " Group update had bad input.");
+                LOGGER.error(message + " - RequestId - " + requestId);
                 response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
                 response.addHeader(ERROR, "groupUpdate");
-                response.addHeader("message", message);
+                response.addHeader(MESSAGE, message);
                 break;
             case "DB Error":
-                PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW + " Error while updating group in the database");
+                LOGGER.error(MessageCodes.ERROR_PROCESS_FLOW + " Error while updating group in the database"
+                        + " - RequestId - " + requestId);
                 response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
                 response.addHeader(ERROR, "deleteDB");
                 break;
             default:
-                PolicyLogger.error(MessageCodes.ERROR_UNKNOWN +
-                        " Failed to delete the policy for an unknown reason.  Check the file system and other logs " +
-                        "for " +
-                        "further information.");
+                LOGGER.error(MessageCodes.ERROR_UNKNOWN
+                        + " Failed to delete the policy for an unknown reason.  Check the file system and other logs "
+                        + "for " + "further information.");
                 response.addHeader(ERROR, UNKNOWN);
                 response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
                 break;
         }
     }
 
-    private String deletePolicyFromPDPGroup(OnapPDPGroup group, ONAPLoggingContext loggingContext) {
+    private String deletePolicyFromPdpGroup(OnapPDPGroup group, ONAPLoggingContext loggingContext, String userId) {
         PolicyDBDaoTransaction acPutTransaction = XACMLPapServlet.getDbDaoTransaction();
         String response = null;
         loggingContext.setServiceName("API:PAP.DeleteHandler");
@@ -427,14 +458,14 @@ public class DeleteHandler {
         } catch (PAPException e1) {
             PolicyLogger.error("Exception occured While Deleting Policy From PDP Group" + e1);
         }
-        if (!(group instanceof StdPDPGroup) || existingGroup == null ||
-                !(group.getId().equals(existingGroup.getId()))) {
-            String existingID = null;
+        if (!(group instanceof StdPDPGroup) || existingGroup == null
+                || !(group.getId().equals(existingGroup.getId()))) {
+            String existingId = null;
             if (existingGroup != null) {
-                existingID = existingGroup.getId();
+                existingId = existingGroup.getId();
             }
-            PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " Group update had bad input. id=" + existingID +
-                    " objectFromJSON=" + group);
+            PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " Group update had bad input. id=" + existingId
+                    " objectFromJSON=" + group);
             loggingContext.transactionEnded();
             PolicyLogger.audit("Transaction Failed - See Error.log");
             response = "No Group";
@@ -445,11 +476,10 @@ public class DeleteHandler {
         // so we need to fill that in before submitting the group for update
         ((StdPDPGroup) group).setDirectory(((StdPDPGroup) existingGroup).getDirectory());
         try {
-            acPutTransaction.updateGroup(group, "XACMLPapServlet.doDelete", null);
+            acPutTransaction.updateGroup(group, "XACMLPapServlet.doDelete", userId);
         } catch (Exception e) {
             PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet",
-                    " Error while updating group in the database: "
-                            + "group=" + existingGroup.getId());
+                    " Error while updating group in the database: " + "group=" + existingGroup.getId());
             response = "DB Error";
             return response;
         }
@@ -469,7 +499,7 @@ public class DeleteHandler {
             response = "error in groupChanged method";
         }
         if (response == null) {
-            response = "success";
+            response = SUCCESS;
             loggingContext.transactionEnded();
             PolicyLogger.audit("Policy successfully deleted!");
         }
@@ -486,13 +516,18 @@ public class DeleteHandler {
         return true;
     }
 
+    /**
+     * Gets the single instance of DeleteHandler.
+     *
+     * @return single instance of DeleteHandler
+     */
     public static DeleteHandler getInstance() {
         try {
-            Class<?> deleteHandler = Class.forName(
-                    XACMLProperties.getProperty("deletePolicy.impl.className", DeleteHandler.class.getName()));
+            Class<?> deleteHandler = Class
+                    .forName(XACMLProperties.getProperty("deletePolicy.impl.className", DeleteHandler.class.getName()));
             return (DeleteHandler) deleteHandler.newInstance();
         } catch (Exception e) {
-            logger.error(e.getMessage(), e);
+            LOGGER.error(e.getMessage(), e);
         }
         return null;
     }
index 2d98b82..42c815a 100644 (file)
@@ -2,14 +2,14 @@
  * ============LICENSE_START=======================================================
  * ONAP-PAP-REST
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
 package org.onap.policy.pap.xacml.rest.model;
 
+import com.att.research.xacml.api.pap.PDPPolicy;
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.Set;
-
 import org.onap.policy.rest.util.PDPPolicyContainer;
 import org.onap.policy.xacml.api.pap.OnapPDPGroup;
 import org.onap.policy.xacml.std.pap.StdPDPGroup;
 
-import com.att.research.xacml.api.pap.PDPPolicy;
-
 public class RemoveGroupPolicy {
 
-
-    //Container from where we are fetching the policies
+    // Container from where we are fetching the policies
     private static PDPPolicyContainer policyContainer;
 
-    private RemoveGroupPolicy self = this;
     private StdPDPGroup updatedObject;
     private final StdPDPGroup group;
     private boolean isSaved = false;
 
+    /**
+     * Instantiates a new removes the group policy.
+     *
+     * @param group the group
+     */
     public RemoveGroupPolicy(StdPDPGroup group) {
 
         this.group = group;
 
     }
 
-    public void prepareToRemove(PDPPolicy policy) {
-
+    /**
+     * Prepare to remove.
+     */
+    public void prepareToRemove() {
         if (this.group == null) {
             return;
         }
         setRemoveGroupPolicy(new PDPPolicyContainer(group));
+    }
 
+    /**
+     * Removes the policy.
+     *
+     * @param policy the policy
+     */
+    public void removePolicy(PDPPolicy policy) {
         RemoveGroupPolicy.policyContainer.removeItem(policy);
-
-        self.doSave();
-
-        self.isSaved = true;
-
+        this.doSave();
+        this.isSaved = true;
     }
 
     private static void setRemoveGroupPolicy(PDPPolicyContainer pdpPolicyContainer) {
@@ -72,14 +79,11 @@ public class RemoveGroupPolicy {
             return;
         }
 
-        StdPDPGroup updatedGroupObject = new StdPDPGroup(
-                group.getId(),
-                group.isDefaultGroup(),
-                group.getName(),
-                group.getDescription(),
-                null);
+        StdPDPGroup updatedGroupObject =
+                new StdPDPGroup(group.getId(), group.isDefaultGroup(), group.getName(), group.getDescription(), null);
 
-        // replace the original set of Policies with the set from the container (possibly modified by the user)
+        // replace the original set of Policies with the set from the container (possibly modified
+        // by the user)
         Set<PDPPolicy> changedPolicies = new HashSet<>();
         changedPolicies.addAll((Collection<PDPPolicy>) RemoveGroupPolicy.policyContainer.getItemIds());
         updatedGroupObject.setPolicies(changedPolicies);
@@ -102,4 +106,13 @@ public class RemoveGroupPolicy {
         return this.updatedObject;
     }
 
+    /**
+     * Gets the group.
+     *
+     * @return the group
+     */
+    public StdPDPGroup getGroup() {
+        return group;
+    }
+
 }
index e7ab36e..7354003 100644 (file)
@@ -96,7 +96,7 @@ public class DeleteHandlerTest {
                // Test deletion from PAP
                MockHttpServletResponse response = new MockHttpServletResponse();
                try {
-                       handler.doAPIDeleteFromPAP(request, response);
+                       handler.doApiDeleteFromPap(request, response);
                } catch (Exception ex) {
                        fail("Not expecting an exception: " + ex);
                }
@@ -104,7 +104,7 @@ public class DeleteHandlerTest {
         // Test deletion from PDP
         ONAPLoggingContext loggingContext = Mockito.mock(ONAPLoggingContext.class);
         try {
-            handler.doAPIDeleteFromPDP(request, response, loggingContext);
+            handler.doApiDeleteFromPdp(request, response, loggingContext);
         }
         catch (Exception ex) {
             fail("Not expecting an exception: " + ex);
index 162f4a9..cd6bf02 100644 (file)
@@ -2,14 +2,14 @@
  * ============LICENSE_START=======================================================
  * ONAP-PDP-REST
  * ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2018-2019 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 package org.onap.policy.pap.xacml.rest.model;
 
 import static org.junit.Assert.assertEquals;
+import com.att.research.xacml.api.pap.PDPPolicy;
 import org.junit.Test;
 import org.onap.policy.xacml.std.pap.StdPDPGroup;
 import org.onap.policy.xacml.std.pap.StdPDPPolicy;
-import com.att.research.xacml.api.pap.PDPPolicy;
 
 public class RemoveGroupPolicyTest {
     @Test
@@ -37,8 +37,8 @@ public class RemoveGroupPolicyTest {
 
         // Test remove
         PDPPolicy policy = new StdPDPPolicy();
-        remove.prepareToRemove(policy);
-        remove.doSave();
+        remove.prepareToRemove();
+        remove.removePolicy(policy);
         assertEquals(remove.isRemoved(), true);
     }
 }
index 52e3bcc..ff0ac82 100644 (file)
@@ -2,15 +2,15 @@
  * ============LICENSE_START=======================================================
  * ONAP-PDP-REST
  * ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
  * Modifications Copyright (C) 2018 Samsung Electronics Co., Ltd.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * limitations under the License.
  * ============LICENSE_END=========================================================
  */
-package org.onap.policy.pdp.rest.api.services;
 
-import java.io.File;
-import java.util.UUID;
+package org.onap.policy.pdp.rest.api.services;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+import org.apache.commons.lang3.StringUtils;
 import org.onap.policy.api.DeletePolicyParameters;
 import org.onap.policy.api.PolicyException;
+import org.onap.policy.api.PolicyNameType;
 import org.onap.policy.common.logging.flexlogger.FlexLogger;
 import org.onap.policy.common.logging.flexlogger.Logger;
 import org.onap.policy.xacml.api.XACMLErrorConstants;
@@ -32,68 +36,70 @@ import org.onap.policy.xacml.std.pap.StdPAPPolicy;
 import org.onap.policy.xacml.std.pap.StdPAPPolicyParams;
 import org.springframework.http.HttpStatus;
 
-public class DeletePolicyService {
-    private static final Logger LOGGER = FlexLogger.getLogger(DeletePolicyService.class.getName());
 
-    private String deleteResult = null;
-    private HttpStatus status = HttpStatus.BAD_REQUEST;
+/**
+ * The Class DeletePolicyService.
+ */
+public class DeletePolicyService extends PdpApiService {
+
+    private static final Logger LOGGER = FlexLogger.getLogger(DeletePolicyService.class.getName());
+    private static final String PRINT_REQUESTID = " - RequestId - ";
     private DeletePolicyParameters deletePolicyParameters = null;
-    private String message = null;
-    private String filePrefix = null;
-    private String clientScope = null;
-    private String policyType = null;
-    private String policyName = null;
-    private String policyScope = null;
+    private String result = null;
+    private List<PolicyNameType> policyList = new ArrayList<>();
 
-    public DeletePolicyService(final DeletePolicyParameters deletePolicyParameters, final String requestID) {
+
+    /**
+     * Instantiates a new delete policy service.
+     *
+     * @param deletePolicyParameters the delete policy parameters
+     * @param reqId the request id
+     */
+    public DeletePolicyService(final DeletePolicyParameters deletePolicyParameters, final String reqId) {
+        super();
         this.deletePolicyParameters = deletePolicyParameters;
-        if (deletePolicyParameters.getRequestID() == null) {
-            UUID requestUUID = null;
-            if (requestID != null && !requestID.isEmpty()) {
-                try {
-                    requestUUID = UUID.fromString(requestID);
-                } catch (final IllegalArgumentException e) {
-                    requestUUID = UUID.randomUUID();
-                    LOGGER.info("Generated Random UUID: " + requestUUID.toString(), e);
-                }
-            } else {
-                requestUUID = UUID.randomUUID();
-                LOGGER.info("Generated Random UUID: " + requestUUID.toString());
-            }
-            this.deletePolicyParameters.setRequestID(requestUUID);
-        }
+        deletePolicyParameters.setRequestID(populateRequestId(deletePolicyParameters.getRequestID(), reqId));
         try {
             run();
             specialCheck();
         } catch (final PolicyException e) {
-            LOGGER.error("Unable to process delete policy request for : " + this.deletePolicyParameters);
-            deleteResult = XACMLErrorConstants.ERROR_DATA_ISSUE + e;
+            LOGGER.error("Unable to process delete policy request for : " + this.deletePolicyParameters
+                    + PRINT_REQUESTID + this.requestId);
+            result = XACMLErrorConstants.ERROR_DATA_ISSUE + e;
             status = HttpStatus.BAD_REQUEST;
         }
     }
 
+    /**
+     * Special check.
+     */
     private void specialCheck() {
-        if (deleteResult == null) {
+        if (result == null) {
             return;
         }
-        if (deleteResult.contains("BAD REQUEST") || deleteResult.contains("PE300") || deleteResult.contains("PE200")
-                || deleteResult.contains("not exist") || deleteResult.contains("Invalid policyName")) {
-            if (deleteResult.contains("groupId")) {
+        if (result.contains("BAD REQUEST") || result.contains("PE300") || result.contains("PE200")
+                || result.contains("not exist") || result.contains("Invalid policyName")) {
+            if (result.contains("groupId")) {
                 status = HttpStatus.NOT_FOUND;
             } else {
                 status = HttpStatus.BAD_REQUEST;
             }
-        } else if (deleteResult.contains("locked down")) {
+        } else if (result.contains("locked down")) {
             status = HttpStatus.ACCEPTED;
-        } else if (deleteResult.contains("not Authorized")) {
+        } else if (result.contains("not Authorized")) {
             status = HttpStatus.FORBIDDEN;
-        } else if (deleteResult.contains("JPAUtils") || deleteResult.contains("database")
-                || deleteResult.contains("policy file") || deleteResult.contains("unknown")
-                || deleteResult.contains("configuration")) {
+        } else if (result.contains("JPAUtils") || result.contains("database")
+                || result.contains("policy file") || result.contains("unknown")
+                || result.contains("configuration")) {
             status = HttpStatus.INTERNAL_SERVER_ERROR;
         }
     }
 
+    /**
+     * Run.
+     *
+     * @throws PolicyException the policy exception
+     */
     private void run() throws PolicyException {
         // Check Validation.
         if (!getValidation()) {
@@ -102,9 +108,10 @@ public class DeletePolicyService {
         }
         // Get Result.
         try {
-            LOGGER.debug("Processing delete request:  " + deletePolicyParameters.toString());
+            LOGGER.debug("Processing delete request:  " + deletePolicyParameters.toString() + PRINT_REQUESTID
+                    + this.requestId);
             status = HttpStatus.OK;
-            deleteResult = processResult();
+            result = processResult();
         } catch (final Exception e) {
             LOGGER.error(XACMLErrorConstants.ERROR_DATA_ISSUE + e);
             status = HttpStatus.BAD_REQUEST;
@@ -112,175 +119,161 @@ public class DeletePolicyService {
         }
     }
 
+    /**
+     * Process result.
+     *
+     * @return the string
+     * @throws PolicyException the policy exception
+     */
     private String processResult() throws PolicyException {
         String response = null;
-        String fullPolicyName = null;
         String pdpGroup = deletePolicyParameters.getPdpGroup();
-        // PDP Group Check.
-        if (pdpGroup == null) {
-            pdpGroup = "NA";
-        }
-        final PAPServices papServices = new PAPServices();
-        if (!deletePolicyParameters.getPolicyName().contains("xml")) {
-
-            final String activeVersion = papServices.getActiveVersion(policyScope, filePrefix, policyName, clientScope,
-                    deletePolicyParameters.getRequestID());
-            LOGGER.debug("The active version of " + policyScope + File.separator + filePrefix + policyName + " is "
-                    + activeVersion);
-            String id = null;
-            if ("pe100".equalsIgnoreCase(activeVersion)) {
-                response = XACMLErrorConstants.ERROR_PERMISSIONS
-                        + "response code of the URL is 403. PEP is not Authorized for making this Request!! "
-                        + "Contact Administrator for this Scope. ";
-                LOGGER.error(response);
-                return response;
-            } else if ("pe300".equalsIgnoreCase(activeVersion)) {
-                response = XACMLErrorConstants.ERROR_DATA_ISSUE + "response code of the URL is 404.  "
-                        + "This indicates a problem with getting the version from the PAP or the policy does not exist.";
-                LOGGER.error(response);
-                return response;
-            }
-            if (!"0".equalsIgnoreCase(activeVersion)) {
-                id = policyScope + "." + filePrefix + policyName + "." + activeVersion + ".xml";
-                LOGGER.debug("The policyId is " + id);
-            } else {
-                response = XACMLErrorConstants.ERROR_DATA_ISSUE
-                        + "could not retrieve the activeVersion for this policy. could not retrieve the activeVersion for this policy.  "
-                        + "This indicates the policy does not exist, please verify the policy exists.";
-                LOGGER.error(response);
-                return response;
-            }
-
-            fullPolicyName = policyScope + "." + filePrefix + policyName + "." + activeVersion + ".xml";
 
-        } else {
-            fullPolicyName = policyName;
+        final PAPServices papServices = new PAPServices();
+        if (!populateFullPolicyName(papServices)) {
+            LOGGER.error(message);
+            return message;
         }
 
         if ("PAP".equalsIgnoreCase(deletePolicyParameters.getPolicyComponent())) {
-            if (deletePolicyParameters.getDeleteCondition() == null
-                    || deletePolicyParameters.getDeleteCondition().toString().trim().isEmpty()) {
-                message = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Delete Condition given.";
-                LOGGER.error(message);
-                return message;
-            }
             // for deleting policies from the API
-            final StdPAPPolicy deletePapPolicy =
-                    new StdPAPPolicy(StdPAPPolicyParams.builder()
-                            .policyName(fullPolicyName)
-                            .deleteCondition(deletePolicyParameters.getDeleteCondition().toString())
-                            .build());
-            // send JSON object to PAP
-            response = (String) papServices.callPAP(deletePapPolicy,
-                    new String[] {"groupId=" + pdpGroup, "apiflag=deletePapApi", "operation=delete"},
-                    deletePolicyParameters.getRequestID(), clientScope);
-        } else if ("PDP".equalsIgnoreCase(deletePolicyParameters.getPolicyComponent())) {
-            if (deletePolicyParameters.getPdpGroup() == null || deletePolicyParameters.getPdpGroup().trim().isEmpty()) {
-                message = XACMLErrorConstants.ERROR_DATA_ISSUE + "No PDP Group given.";
-                LOGGER.error(message);
-                return message;
+            for (PolicyNameType policyData : policyList) {
+                // validation ensures there will be one delete policy at a time
+                final StdPAPPolicy deletePapPolicy =
+                        new StdPAPPolicy(StdPAPPolicyParams.builder().policyName(policyData.getFullPolicyName())
+                                .deleteCondition(deletePolicyParameters.getDeleteCondition().toString()).build());
+                // send JSON object to PAP
+                response = (String) papServices.callPAP(deletePapPolicy,
+                        new String[] {"groupId=" + pdpGroup, "apiflag=deletePapApi", "operation=delete"},
+                        deletePolicyParameters.getRequestID(), policyData.getClientScope());
             }
+        } else if ("PDP".equalsIgnoreCase(deletePolicyParameters.getPolicyComponent())) {
+            String policies =
+                    policyList.stream().map(PolicyNameType::getFullPolicyName).collect(Collectors.joining(","));
             // send JSON object to PAP
             response =
-                    (String) papServices.callPAP(
-                            null, new String[] {"policyName=" + fullPolicyName, "groupId=" + pdpGroup,
-                                "apiflag=deletePdpApi", "operation=delete"},
+                    (String) papServices.callPAP(null,
+                            new String[] {"policyName=" + policies, "groupId=" + pdpGroup, "apiflag=deletePdpApi",
+                                    "operation=delete", "userId=API"},
                             deletePolicyParameters.getRequestID(), clientScope);
         } else {
-            message = XACMLErrorConstants.ERROR_DATA_ISSUE
-                    + "Policy Component does not exist. Please enter either PAP or PDP to delete the policy from a specified Policy Component.";
-            LOGGER.error(message);
+            message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Policy Component does not exist."
+                    + "Please enter either PAP or PDP to delete the policy from a specified Policy Component.";
+            LOGGER.warn(message + PRINT_REQUESTID + requestId);
             response = message;
         }
         return response;
     }
 
+    /**
+     * Populate full policy name.
+     *
+     * @param papServices the pap services
+     * @return true, if successful
+     */
+    private boolean populateFullPolicyName(final PAPServices papServices) {
+        for (PolicyNameType policyData : policyList) {
+            if (policyData.getPolicyName().contains("xml")) {
+                policyData.setFullPolicyName(policyData.getPolicyName());
+                continue;
+            }
+
+            final String activeVersion = papServices.getActiveVersion(policyData.getPolicyScope(),
+                    policyData.getFilePrefix(), policyData.getPolicyName(), policyData.getClientScope(),
+                    deletePolicyParameters.getRequestID());
+
+            if ("pe100".equalsIgnoreCase(activeVersion)) {
+                message = XACMLErrorConstants.ERROR_PERMISSIONS
+                        + "response code of the URL is 403. PEP is not Authorized for making this Request!! "
+                        + "Contact Administrator for this Scope. ";
+                LOGGER.warn(message + PRINT_REQUESTID + this.requestId);
+                return false;
+            } else if ("pe300".equalsIgnoreCase(activeVersion)) {
+                message = XACMLErrorConstants.ERROR_DATA_ISSUE + "response code of the URL is 404.  "
+                        + "This indicates a problem with getting the version"
+                        + "from the PAP or the policy does not exist.";
+                LOGGER.warn(message + PRINT_REQUESTID + this.requestId);
+                return false;
+            }
+            if ("0".equalsIgnoreCase(activeVersion)) {
+                message = XACMLErrorConstants.ERROR_DATA_ISSUE + "could not retrieve the activeVersion for this policy."
+                        + "This indicates the policy does not exist, please verify the policy exists.";
+                LOGGER.warn(message + PRINT_REQUESTID + this.requestId);
+                return false;
+            }
+
+            policyData.setFullPolicyName(policyData.getPolicyScope() + "." + policyData.getFilePrefix()
+                    + policyData.getPolicyName() + "." + activeVersion + ".xml");
+        }
+        return true;
+    }
+
+    /**
+     * Gets the validation.
+     *
+     * @return the validation
+     */
     private boolean getValidation() {
-        // While Validating, extract the required values.
-        if (deletePolicyParameters.getPolicyName() == null || deletePolicyParameters.getPolicyName().trim().isEmpty()) {
+        if (StringUtils.isBlank(deletePolicyParameters.getPolicyName())) {
             message = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Name given.";
             return false;
         }
-        if (!deletePolicyParameters.getPolicyName().contains("xml")) {
-            if (deletePolicyParameters.getPolicyName() != null
-                    && deletePolicyParameters.getPolicyName().contains(".")) {
-                policyName = deletePolicyParameters.getPolicyName().substring(
-                        deletePolicyParameters.getPolicyName().lastIndexOf('.') + 1,
-                        deletePolicyParameters.getPolicyName().length());
-                policyScope = deletePolicyParameters.getPolicyName().substring(0,
-                        deletePolicyParameters.getPolicyName().lastIndexOf('.'));
-                LOGGER.info("Name is " + policyName + "   scope is " + policyScope);
-            } else {
-                message = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Scope given.";
-                return false;
-            }
-        } else {
-            policyName = deletePolicyParameters.getPolicyName();
-        }
-        policyType = deletePolicyParameters.getPolicyType();
-        if (policyType == null || policyType.trim().isEmpty()) {
+
+        String policyType = deletePolicyParameters.getPolicyType();
+        if (StringUtils.isBlank(policyType)) {
             message = XACMLErrorConstants.ERROR_DATA_ISSUE + "No PolicyType given.";
             return false;
         }
-        setClientScope();
-        if (clientScope == null || clientScope.trim().isEmpty()) {
-            message = XACMLErrorConstants.ERROR_DATA_ISSUE + deletePolicyParameters.getPolicyType()
-                    + " is not a valid Policy Type.";
-            LOGGER.error(message);
+
+        if (StringUtils.isBlank(deletePolicyParameters.getPolicyComponent())) {
+            message = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Component given.";
             return false;
         }
-        LOGGER.debug("clientScope is " + clientScope);
-        LOGGER.debug("filePrefix is " + filePrefix);
-        if (deletePolicyParameters.getPolicyComponent() == null) {
-            message = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Component given.";
+
+        List<String> policyNames = Arrays.asList(deletePolicyParameters.getPolicyName().split(","));
+        List<String> policyTypes = Arrays.asList(deletePolicyParameters.getPolicyType().split(","));
+
+        if (policyTypes.size() > 1 && (policyNames.size() != policyTypes.size())) {
+            message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Invalid number of PolicyTypes";
             return false;
         }
-        return true;
-    }
 
-    private void setClientScope() {
-        if ("Firewall".equalsIgnoreCase(policyType)) {
-            clientScope = "ConfigFirewall";
-            filePrefix = "Config_FW_";
-        } else if ("Action".equalsIgnoreCase(policyType)) {
-            clientScope = "Action";
-            filePrefix = "Action_";
-        } else if ("Decision".equalsIgnoreCase(policyType)) {
-            clientScope = "Decision";
-            filePrefix = "Decision_";
-        } else if ("Base".equalsIgnoreCase(policyType)) {
-            clientScope = "Config";
-            filePrefix = "Config_";
-        } else if ("ClosedLoop_Fault".equalsIgnoreCase(policyType)) {
-            clientScope = "ConfigClosedLoop";
-            filePrefix = "Config_Fault_";
-        } else if ("ClosedLoop_PM".equalsIgnoreCase(policyType)) {
-            clientScope = "ConfigClosedLoop";
-            filePrefix = "Config_PM_";
-        } else if ("MicroService".equalsIgnoreCase(policyType)) {
-            clientScope = "ConfigMS";
-            filePrefix = "Config_MS_";
-        } else if ("Optimization".equalsIgnoreCase(policyType)) {
-            clientScope = "ConfigOptimization";
-            filePrefix = "Config_OOF_";
-        } else if ("BRMS_RAW".equalsIgnoreCase(policyType)) {
-            clientScope = "ConfigBrmsRaw";
-            filePrefix = "Config_BRMS_Raw_";
-        } else if ("BRMS_PARAM".equalsIgnoreCase(policyType)) {
-            clientScope = "ConfigBrmsParam";
-            filePrefix = "Config_BRMS_Param_";
-        } else {
-            clientScope = null;
-            message = XACMLErrorConstants.ERROR_DATA_ISSUE + policyType + " is not a valid Policy Type.";
+        if ((policyNames.stream().anyMatch(StringUtils::isBlank))
+                || (policyTypes.stream().anyMatch(StringUtils::isBlank))) {
+            message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Invalid PolicyName or PolicyType";
+            return false;
         }
-    }
 
-    public String getResult() {
-        return deleteResult;
-    }
+        if ("PAP".equalsIgnoreCase(deletePolicyParameters.getPolicyComponent()) && policyNames.size() > 1) {
+            message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Only one policy can be deleted from PAP at a time";
+            return false;
+        }
+
+        if ("PAP".equalsIgnoreCase(deletePolicyParameters.getPolicyComponent())
+                && (deletePolicyParameters.getDeleteCondition() == null
+                        || deletePolicyParameters.getDeleteCondition().toString().trim().isEmpty())) {
+            message = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Delete Condition given.";
+            LOGGER.warn(message + PRINT_REQUESTID + requestId);
+            return false;
+        }
+
+        if ("PDP".equalsIgnoreCase(deletePolicyParameters.getPolicyComponent())
+                && StringUtils.isBlank(deletePolicyParameters.getPdpGroup())) {
+            message = XACMLErrorConstants.ERROR_DATA_ISSUE + "No PDP Group given.";
+            LOGGER.warn(message + PRINT_REQUESTID + requestId);
+            return false;
+        }
+
+        if (!validatePolicyNameAndScope(policyNames, policyTypes, policyList)) {
+            LOGGER.warn(XACMLErrorConstants.ERROR_DATA_ISSUE + "Failed validation in validatePolicyNameAndScope - "
+                    + message + PRINT_REQUESTID + requestId);
+            return false;
+        }
 
-    public HttpStatus getResponseCode() {
-        return status;
+        return true;
     }
 
+    public String getResult() {
+        return result;
+    }
 }
diff --git a/ONAP-PDP-REST/src/main/java/org/onap/policy/pdp/rest/api/services/PdpApiService.java b/ONAP-PDP-REST/src/main/java/org/onap/policy/pdp/rest/api/services/PdpApiService.java
new file mode 100644 (file)
index 0000000..4d38753
--- /dev/null
@@ -0,0 +1,162 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP-PDP-REST
+ * ================================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.pdp.rest.api.services;
+
+import java.util.List;
+import java.util.UUID;
+import org.apache.commons.lang3.StringUtils;
+import org.onap.policy.api.PolicyNameType;
+import org.onap.policy.common.logging.flexlogger.FlexLogger;
+import org.onap.policy.common.logging.flexlogger.Logger;
+import org.onap.policy.xacml.api.XACMLErrorConstants;
+import org.springframework.http.HttpStatus;
+
+public abstract class PdpApiService {
+    private static final Logger LOGGER = FlexLogger.getLogger(PdpApiService.class.getName());
+    protected String requestId = null;
+    protected String filePrefix = null;
+    protected String clientScope = null;
+    protected String message = null;
+    protected HttpStatus status = HttpStatus.BAD_REQUEST;
+
+    protected UUID populateRequestId(UUID paramReqId, String reqId) {
+        UUID requestUuid = paramReqId;
+        if (paramReqId == null) {
+            if (!StringUtils.isBlank(reqId)) {
+                try {
+                    requestUuid = UUID.fromString(reqId);
+                } catch (IllegalArgumentException e) {
+                    requestUuid = UUID.randomUUID();
+                    LOGGER.info("Generated Random UUID: " + requestUuid.toString(), e);
+                }
+            } else {
+                requestUuid = UUID.randomUUID();
+                LOGGER.info("Generated Random UUID: " + requestUuid.toString());
+            }
+        }
+        this.requestId = requestUuid.toString();
+        return requestUuid;
+    }
+
+    /**
+     * Sets the client scope.
+     */
+    protected void setClientScope(String policyType) {
+        if ("Firewall".equalsIgnoreCase(policyType)) {
+            clientScope = "ConfigFirewall";
+            filePrefix = "Config_FW_";
+        } else if ("Action".equalsIgnoreCase(policyType)) {
+            clientScope = "Action";
+            filePrefix = "Action_";
+        } else if ("Decision".equalsIgnoreCase(policyType)) {
+            clientScope = "Decision";
+            filePrefix = "Decision_";
+        } else if ("Base".equalsIgnoreCase(policyType)) {
+            clientScope = "Config";
+            filePrefix = "Config_";
+        } else if ("ClosedLoop_Fault".equalsIgnoreCase(policyType)) {
+            clientScope = "ConfigClosedLoop";
+            filePrefix = "Config_Fault_";
+        } else if ("ClosedLoop_PM".equalsIgnoreCase(policyType)) {
+            clientScope = "ConfigClosedLoop";
+            filePrefix = "Config_PM_";
+        } else if ("MicroService".equalsIgnoreCase(policyType)) {
+            clientScope = "ConfigMS";
+            filePrefix = "Config_MS_";
+        } else if ("Optimization".equalsIgnoreCase(policyType)) {
+            clientScope = "ConfigOptimization";
+            filePrefix = "Config_OOF_";
+        } else if ("BRMS_RAW".equalsIgnoreCase(policyType)) {
+            clientScope = "ConfigBrmsRaw";
+            filePrefix = "Config_BRMS_Raw_";
+        } else if ("BRMS_PARAM".equalsIgnoreCase(policyType)) {
+            clientScope = "ConfigBrmsParam";
+            filePrefix = "Config_BRMS_Param_";
+        } else {
+            extendedClientScope(policyType);
+        }
+    }
+
+    protected void extendedClientScope(String policyType) {
+        clientScope = null;
+        message = XACMLErrorConstants.ERROR_DATA_ISSUE + policyType + " is not a valid Policy Type.";
+    }
+
+    protected boolean validatePolicyNameAndScope(List<String> policyNames, List<String> policyTypes,
+            List<PolicyNameType> policyList) {
+        String policyName = null;
+        String policyScope = null;
+        String polType = null;
+
+        if (policyTypes.size() == 1) {
+            polType = policyTypes.get(0).trim();
+        }
+
+        try {
+            for (int i = 0; i < policyNames.size(); i++) {
+                String polName = policyNames.get(i);
+                if (policyTypes.size() > 1) {
+                    polType = policyTypes.get(i).trim();
+                }
+                if (polName.contains(".")) {
+                    policyName = polName.substring(polName.lastIndexOf('.') + 1);
+                    policyScope = polName.substring(0, polName.lastIndexOf('.'));
+                } else {
+                    message = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Scope given.";
+                    return false;
+                }
+                if (StringUtils.isBlank(policyName) || StringUtils.isBlank(policyScope)) {
+                    message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Invalid Policy Name.";
+                    return false;
+                }
+
+                clientScope = null;
+                filePrefix = null;
+                setClientScope(polType);
+                if (StringUtils.isBlank(clientScope) || StringUtils.isBlank(filePrefix)) {
+                    message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Invalid Policy Name.";
+                    return false;
+                }
+                PolicyNameType policyData = new PolicyNameType(policyName.trim(), policyScope.trim(), polType,
+                        filePrefix, clientScope, null);
+                policyList.add(policyData);
+                LOGGER.info("RequestId - " + requestId + " , Policy - " + policyData);
+
+            }
+        } catch (Exception e) {
+            message = XACMLErrorConstants.ERROR_DATA_ISSUE
+                    + "validatePolicies - Failed Validation. Please check the input parameters.";
+            return false;
+        }
+        return true;
+    }
+
+
+    /**
+     * Gets the response code.
+     *
+     * @return the response code
+     */
+    public HttpStatus getResponseCode() {
+        return status;
+    }
+
+}
index 7ab17e0..8704961 100644 (file)
@@ -2,14 +2,14 @@
  * ============LICENSE_START=======================================================
  * ONAP-PDP-REST
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * limitations under the License.
  * ============LICENSE_END=========================================================
  */
-package org.onap.policy.pdp.rest.api.services;
 
-import java.util.UUID;
+package org.onap.policy.pdp.rest.api.services;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import org.apache.commons.lang3.StringUtils;
 import org.onap.policy.api.PolicyException;
+import org.onap.policy.api.PolicyNameType;
 import org.onap.policy.api.PushPolicyParameters;
 import org.onap.policy.common.logging.flexlogger.FlexLogger;
 import org.onap.policy.common.logging.flexlogger.Logger;
@@ -29,175 +33,142 @@ import org.onap.policy.xacml.api.XACMLErrorConstants;
 import org.onap.policy.xacml.std.pap.StdPDPPolicy;
 import org.springframework.http.HttpStatus;
 
-import com.att.research.xacml.api.pap.PAPException;
-
-public class PushPolicyService {
+public class PushPolicyService extends PdpApiService {
     private static final Logger LOGGER = FlexLogger.getLogger(PushPolicyService.class.getName());
-    
-    private String pushResult = null;
-    private HttpStatus status = HttpStatus.BAD_REQUEST;
+
     private PushPolicyParameters pushPolicyParameters = null;
-    private String message = null;
-    private String policyName = null;
-    private String policyScope = null;
+    private List<PolicyNameType> policyList = new ArrayList<>();
     private String pdpGroup = null;
-    private String policyType = null;
-    private String filePrefix = null;
-    private String clientScope = null; 
+    private String result = null;
 
-    public PushPolicyService(PushPolicyParameters pushPolicyParameters,
-            String requestID) {
+    /**
+     * Instantiates a new push policy service.
+     *
+     * @param pushPolicyParameters the push policy parameters
+     * @param reqId the request ID
+     */
+    public PushPolicyService(final PushPolicyParameters pushPolicyParameters, final String reqId) {
         this.pushPolicyParameters = pushPolicyParameters;
-        if(pushPolicyParameters.getRequestID()==null){
-            UUID requestUUID = null;
-            if (requestID != null && !requestID.isEmpty()) {
-                try {
-                    requestUUID = UUID.fromString(requestID);
-                } catch (IllegalArgumentException e) {
-                    requestUUID = UUID.randomUUID();
-                    LOGGER.info("Generated Random UUID: " + requestUUID.toString(), e);
-                }
-            }else{
-                requestUUID = UUID.randomUUID();
-                LOGGER.info("Generated Random UUID: " + requestUUID.toString());
-            }
-            this.pushPolicyParameters.setRequestID(requestUUID);
-        }
-        try{
+        pushPolicyParameters.setRequestID(populateRequestId(pushPolicyParameters.getRequestID(), reqId));
+        LOGGER.info("Operation: pushPolicy - Request - " + pushPolicyParameters + ", RequestId - " + requestId);
+        try {
             run();
             specialCheck();
-        }catch(PolicyException e){
-            pushResult = XACMLErrorConstants.ERROR_DATA_ISSUE + e;
+        } catch (PolicyException e) {
+            result = XACMLErrorConstants.ERROR_DATA_ISSUE + e;
             status = HttpStatus.BAD_REQUEST;
         }
+        LOGGER.info(
+                "PushPolicyService - RequestId - " + requestId + " , Response - " + result + ", Status - " + status);
     }
 
-    private void specialCheck() {
-        if(pushResult.contains("BAD REQUEST") || pushResult.contains("PE300")){
-            status = HttpStatus.BAD_REQUEST;
-        }
-    }
-
-    private void run() throws PolicyException{
-        // Check Validation. 
-        if(!getValidation()){
+    private void run() throws PolicyException {
+        // Check Validation.
+        if (!getValidation()) {
             LOGGER.error(message);
             throw new PolicyException(message);
         }
-        // Process Results. 
-        try{
+        // Process Results.
+        try {
             status = HttpStatus.OK;
-            pushResult = processResult();
-        }catch(Exception e){
+            result = processResult();
+        } catch (Exception e) {
             LOGGER.error(XACMLErrorConstants.ERROR_DATA_ISSUE + e);
             status = HttpStatus.BAD_REQUEST;
             throw new PolicyException(e);
         }
     }
 
-    private String processResult() throws PolicyException{
+    private String processResult() throws PolicyException {
         PAPServices papServices = new PAPServices();
         String response = null;
-        StdPDPPolicy selectedPolicy = papServices.pushPolicy(policyScope, filePrefix, policyName, clientScope, pdpGroup, pushPolicyParameters.getRequestID());
-        if(selectedPolicy==null){
-                response = XACMLErrorConstants.ERROR_DATA_ISSUE + "response code of the URL is 404.  "
-                     + "This indicates a problem with getting the version from the PAP or the policy does not exist.";
-             LOGGER.error(response);
-             return response;
-        }
+
         try {
-            LOGGER.debug("StdPDPPolicy object contains: " + selectedPolicy.getId() + ", " + selectedPolicy.getName() + ", " + selectedPolicy.getLocation().toString());
-            response = (String) papServices.callPAP(selectedPolicy, new String[]{"groupId=" + pdpGroup, "policyId="+selectedPolicy.getId(), "apiflag=api", "operation=POST"}, pushPolicyParameters.getRequestID(), clientScope);
-        } catch (PAPException e) {
-            LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW+e.getMessage());
+            // for each policy to be pushed, we need to call pap to get the active version
+            // and construct the full policy name. Then the list of policy names are sent to pap
+            // to do the actual push.
+            String policyId = constructPolicyNames(papServices);
+            response =
+                    (String) papServices
+                            .callPAP(null,
+                                    new String[] {"groupId=" + pdpGroup, "policyId=" + policyId, "apiflag=api",
+                                            "operation=POST", "userId=API"},
+                                    pushPolicyParameters.getRequestID(), clientScope);
+        } catch (Exception e) {
+            LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e.getMessage());
             throw new PolicyException(e);
         }
         LOGGER.debug("Final API response: " + response);
         return response;
     }
 
+    private void specialCheck() {
+        if (result.contains("BAD REQUEST") || result.contains("PE300")) {
+            status = HttpStatus.BAD_REQUEST;
+        }
+    }
+
+
+    private String constructPolicyNames(PAPServices papServices) throws PolicyException {
+        List<String> pushPolicyList = new ArrayList<>(policyList.size());
+        for (PolicyNameType policyData : policyList) {
+            LOGGER.info("PushPolicyService - constructPolicyNames - Policy Name is " + policyData.getPolicyName()
+                    + "   scope is " + policyData.getPolicyScope());
+            // for each policy we need to get the active version to construct policyId
+            StdPDPPolicy selectedPolicy = papServices.pushPolicy(policyData.getPolicyScope(),
+                    policyData.getFilePrefix(), policyData.getPolicyName(), policyData.getClientScope(),
+                    pdpGroup.trim(), pushPolicyParameters.getRequestID());
+            if (selectedPolicy != null) {
+                pushPolicyList.add(selectedPolicy.getId());
+            } else {
+                throw new PolicyException(XACMLErrorConstants.ERROR_DATA_ISSUE + "response code of the URL is 404.  "
+                        + "This indicates a problem with getting the version "
+                        + "from the PAP or the policy does not exist - " + policyData);
+            }
+        }
+        return String.join(",", pushPolicyList);
+    }
+
     private boolean getValidation() {
         // While Validating, extract the required values.
-        if (pushPolicyParameters.getPolicyName() != null
-                && pushPolicyParameters.getPolicyName().contains(".")) {
-            policyName = pushPolicyParameters.getPolicyName().substring(pushPolicyParameters.getPolicyName().lastIndexOf('.') + 1,
-                    pushPolicyParameters.getPolicyName().length());
-            policyScope = pushPolicyParameters.getPolicyName().substring(0,pushPolicyParameters.getPolicyName().lastIndexOf('.'));
-            LOGGER.info("Name is " + policyName + "   scope is " + policyScope);
-        } else {
-            message = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Scope given.";
-            return false;
-        }
-        if (policyName==null||policyName.trim().isEmpty()){
+        if (StringUtils.isBlank(pushPolicyParameters.getPolicyName())) {
             message = XACMLErrorConstants.ERROR_DATA_ISSUE + "No Policy Name given.";
             return false;
         }
-        policyType = pushPolicyParameters.getPolicyType();
-        if(policyType== null || policyType.trim().isEmpty()){
+
+        if (StringUtils.isBlank(pushPolicyParameters.getPolicyType())) {
             message = XACMLErrorConstants.ERROR_DATA_ISSUE + "No PolicyType given.";
             return false;
         }
 
-        setClientScope();
-        if(clientScope==null){
+        List<String> policyNames = Arrays.asList(pushPolicyParameters.getPolicyName().split(","));
+        List<String> policyTypes = Arrays.asList(pushPolicyParameters.getPolicyType().split(","));
+
+        if (policyTypes.size() != 1 && (policyNames.size() != policyTypes.size())) {
+            message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Invalid number of PolicyTypes";
             return false;
         }
-        
-        pdpGroup = pushPolicyParameters.getPdpGroup();
-        if(pdpGroup==null || pdpGroup.trim().isEmpty()){
-               pdpGroup = "default";
+
+        if ((policyNames.stream().anyMatch(StringUtils::isBlank))
+                || (policyTypes.stream().anyMatch(StringUtils::isBlank))) {
+            message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Invalid PolicyName or PolicyType";
+            return false;
         }
-        
-        LOGGER.debug("clientScope is " + clientScope);
-        LOGGER.debug("filePrefix is " + filePrefix);
 
-        return true;
-    }
+        if (!validatePolicyNameAndScope(policyNames, policyTypes, policyList)) {
+            LOGGER.warn("PushPolicyService - Failed validation in validatePolicyNameAndScope - " + message);
+            return false;
+        }
 
-    private void setClientScope() {
-        if ("Firewall".equalsIgnoreCase(policyType)) {
-            clientScope = "ConfigFirewall";
-            filePrefix = "Config_FW_";
-        } else if ("Action".equalsIgnoreCase(policyType)) {
-            clientScope = "Action";
-            filePrefix = "Action_";
-        } else if ("Decision".equalsIgnoreCase(policyType)) {
-            clientScope = "Decision";
-            filePrefix = "Decision_";
-        } else if ("Base".equalsIgnoreCase(policyType)) {
-            clientScope = "Config";
-            filePrefix = "Config_";
-        } else if ("ClosedLoop_Fault".equalsIgnoreCase(policyType)) {
-            clientScope = "ConfigClosedLoop";
-            filePrefix = "Config_Fault_";
-        } else if ("ClosedLoop_PM".equalsIgnoreCase(policyType)) {
-            clientScope = "ConfigClosedLoop";
-            filePrefix = "Config_PM_";
-        } else if ("MicroService".equalsIgnoreCase(policyType)) {
-            clientScope = "ConfigMS";
-            filePrefix = "Config_MS_";
-        } else if ("Optimization".equalsIgnoreCase(policyType)) {
-               clientScope = "ConfigOptimization";
-               filePrefix = "Config_OOF_";
-        } else if ("BRMS_RAW".equalsIgnoreCase(policyType)) {
-            clientScope = "ConfigBrmsRaw";
-            filePrefix = "Config_BRMS_Raw_";
-        } else if ("BRMS_PARAM".equalsIgnoreCase(policyType)) {
-            clientScope = "ConfigBrmsParam";
-            filePrefix = "Config_BRMS_Param_";
-        } else {
-            clientScope = null;
-            message = XACMLErrorConstants.ERROR_DATA_ISSUE + policyType
-                    + " is not a valid Policy Type.";
+        pdpGroup = pushPolicyParameters.getPdpGroup();
+        if (StringUtils.isBlank(pdpGroup)) {
+            pdpGroup = "default";
         }
-    }
 
-    public String getResult() {
-        return pushResult;
+        return true;
     }
 
-    public HttpStatus getResponseCode() {
-        return status;
+    public String getResult() {
+        return result;
     }
-
 }
index e7c01b1..f08ef03 100644 (file)
@@ -19,6 +19,7 @@
  * limitations under the License.
  * ============LICENSE_END=========================================================
  */
+
 package org.onap.policy.pdp.rest.api.test;
 
 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete;
@@ -89,8 +90,7 @@ public class PolicyEngineServicesTest {
         headers = new HttpHeaders();
         headers.add(CLIENTAUTHHEADER, CLIENTAUTHVALUE);
         XACMLProperties.reloadProperties();
-        System.setProperty(XACMLProperties.XACML_PROPERTIES_NAME,
-                "src/test/resources/pass.xacml.pdp.properties");
+        System.setProperty(XACMLProperties.XACML_PROPERTIES_NAME, "src/test/resources/pass.xacml.pdp.properties");
         XACMLProperties.getProperties();
         this.mockMvc = webAppContextSetup(webApplicationContext).build();
     }
@@ -99,8 +99,9 @@ public class PolicyEngineServicesTest {
     public void getConfigAPIFailureTest() throws Exception {
         ConfigRequestParameters pep = new ConfigRequestParameters();
         pep.setPolicyName(".*");
-        mockMvc.perform(post("/getConfig").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON)).andExpect(status().is(400));
+        mockMvc.perform(
+                post("/getConfig").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON))
+                .andExpect(status().is(400));
         // Authorization tests.
         mockMvc.perform(post("/getConfig").content(PolicyUtils.objectToJsonString(pep))
                 .contentType(MediaType.APPLICATION_JSON).header(CLIENTAUTHHEADER, ""))
@@ -114,48 +115,46 @@ public class PolicyEngineServicesTest {
         // Set wrong request.
         pep.setPolicyName(null);
         pep.setConfigName("test");
-        mockMvc.perform(post("/getConfig").content(PolicyUtils.objectToJsonString(pep))
-                .headers(headers).header(UUIDHEADER, "123").contentType(MediaType.APPLICATION_JSON))
-                .andExpect(status().isBadRequest());
+        mockMvc.perform(post("/getConfig").content(PolicyUtils.objectToJsonString(pep)).headers(headers)
+                .header(UUIDHEADER, "123").contentType(MediaType.APPLICATION_JSON)).andExpect(status().isBadRequest());
     }
 
     @Test
     public void getConfigServiceTest() throws Exception {
         ConfigRequestParameters pep = new ConfigRequestParameters();
         pep.setPolicyName(".*");
-        mockMvc.perform(post("/getConfig").content(PolicyUtils.objectToJsonString(pep))
-                .headers(headers).header(UUIDHEADER, UUID.randomUUID())
-                .contentType(MediaType.APPLICATION_JSON)).andExpect(status().isOk());
+        mockMvc.perform(post("/getConfig").content(PolicyUtils.objectToJsonString(pep)).headers(headers)
+                .header(UUIDHEADER, UUID.randomUUID()).contentType(MediaType.APPLICATION_JSON))
+                .andExpect(status().isOk());
         // Without policyName and using onapName and other fields.
         pep.setPolicyName(null);
         pep.setOnapName("test");
         pep.setConfigName("test");
-        mockMvc.perform(post("/getConfig").content(PolicyUtils.objectToJsonString(pep))
-                .headers(headers).contentType(MediaType.APPLICATION_JSON))
-                .andExpect(status().isOk());
+        mockMvc.perform(post("/getConfig").content(PolicyUtils.objectToJsonString(pep)).headers(headers)
+                .contentType(MediaType.APPLICATION_JSON)).andExpect(status().isOk());
         // with config attributes.
         Map<String, String> configAttributes = new HashMap<>();
         configAttributes.put("test", "test");
         pep.setConfigAttributes(configAttributes);
         pep.makeUnique(true);
-        mockMvc.perform(post("/getConfig").content(PolicyUtils.objectToJsonString(pep))
-                .headers(headers).contentType(MediaType.APPLICATION_JSON))
-                .andExpect(status().isOk());
+        mockMvc.perform(post("/getConfig").content(PolicyUtils.objectToJsonString(pep)).headers(headers)
+                .contentType(MediaType.APPLICATION_JSON)).andExpect(status().isOk());
     }
 
     @Test
     public void getConfigByPolicyNameTest() throws Exception {
         ConfigNameRequest pep = new ConfigNameRequest();
         pep.setPolicyName(".*");
-        mockMvc.perform(post("/getConfig").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON)).andExpect(status().is(400));
+        mockMvc.perform(
+                post("/getConfig").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON))
+                .andExpect(status().is(400));
         // Authorization tests.
         mockMvc.perform(post("/getConfig").content(PolicyUtils.objectToJsonString(pep))
                 .contentType(MediaType.APPLICATION_JSON).header(CLIENTAUTHHEADER, ""))
                 .andExpect(status().isUnauthorized());
-        mockMvc.perform(post("/getConfigByPolicyName").content(PolicyUtils.objectToJsonString(pep))
-                .headers(headers).header(UUIDHEADER, UUID.randomUUID())
-                .contentType(MediaType.APPLICATION_JSON)).andExpect(status().isOk());
+        mockMvc.perform(post("/getConfigByPolicyName").content(PolicyUtils.objectToJsonString(pep)).headers(headers)
+                .header(UUIDHEADER, UUID.randomUUID()).contentType(MediaType.APPLICATION_JSON))
+                .andExpect(status().isOk());
     }
 
     @Test
@@ -168,30 +167,25 @@ public class PolicyEngineServicesTest {
         mockMvc.perform(post("/listConfig").content(PolicyUtils.objectToJsonString(pep))
                 .contentType(MediaType.APPLICATION_JSON).header(CLIENTAUTHHEADER, ""))
                 .andExpect(status().isUnauthorized());
-        mockMvc.perform(post("/listConfig").content(PolicyUtils.objectToJsonString(pep))
-                .headers(headers).header(UUIDHEADER, UUID.randomUUID())
-                .contentType(MediaType.APPLICATION_JSON)).andExpect(status().isOk());
+        mockMvc.perform(post("/listConfig").content(PolicyUtils.objectToJsonString(pep)).headers(headers)
+                .header(UUIDHEADER, UUID.randomUUID()).contentType(MediaType.APPLICATION_JSON))
+                .andExpect(status().isOk());
     }
 
     @Test
     public void listPolicyTest() throws Exception {
         ConfigNameRequest pep = new ConfigNameRequest();
         pep.setPolicyName(".*");
-        mockMvc.perform(post("/listPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .headers(headers).header(UUIDHEADER, UUID.randomUUID())
-                .contentType(MediaType.APPLICATION_JSON)).andExpect(status().isOk());
-        pep.setPolicyName("*");
-        mockMvc.perform(post("/listPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .headers(headers).header(UUIDHEADER, UUID.randomUUID())
-                .contentType(MediaType.APPLICATION_JSON)).andExpect(status().is4xxClientError());
+        mockMvc.perform(post("/listPolicy").content(PolicyUtils.objectToJsonString(pep)).headers(headers)
+                .header(UUIDHEADER, UUID.randomUUID()).contentType(MediaType.APPLICATION_JSON))
+                .andExpect(status().isOk());
     }
 
     @Test
     public void getMetricsTest() throws Exception {
         // Failure Tests.
         mockMvc.perform(get("/getMetrics")).andExpect(status().isBadRequest());
-        mockMvc.perform(get("/getMetrics").header(CLIENTAUTHHEADER, "Basic 123"))
-                .andExpect(status().isUnauthorized());
+        mockMvc.perform(get("/getMetrics").header(CLIENTAUTHHEADER, "Basic 123")).andExpect(status().isUnauthorized());
         // Service Tests.
         mockMvc.perform(get("/getMetrics").headers(headers).header(UUIDHEADER, "123"))
                 .andExpect(status().isBadRequest());
@@ -204,30 +198,24 @@ public class PolicyEngineServicesTest {
     public void getNotificationAuthFailureTest() throws Exception {
         mockMvc.perform(post("/getNotification").header(CLIENTAUTHHEADER, "").content("test"))
                 .andExpect(status().isUnauthorized());
-        mockMvc.perform(
-                post("/getNotification").header(CLIENTAUTHHEADER, "Basic test123").content("test"))
+        mockMvc.perform(post("/getNotification").header(CLIENTAUTHHEADER, "Basic test123").content("test"))
                 .andExpect(status().isUnauthorized());
-        mockMvc.perform(
-                post("/getNotification").header(CLIENTAUTHHEADER, ERRORCLIENTVALUE).content(" "))
+        mockMvc.perform(post("/getNotification").header(CLIENTAUTHHEADER, ERRORCLIENTVALUE).content(" "))
                 .andExpect(status().isUnauthorized());
     }
 
     @Test
     public void getNotificationTopicFailureTest() throws Exception {
         mockMvc.perform(post("/getNotification")).andExpect(status().isBadRequest());
-        mockMvc.perform(post("/getNotification").headers(headers).content(""))
-                .andExpect(status().isBadRequest());
+        mockMvc.perform(post("/getNotification").headers(headers).content("")).andExpect(status().isBadRequest());
     }
 
     @Test
     public void getNotificationTopicValidFailTest() throws Exception {
         // Check failures.
-        mockMvc.perform(post("/getNotification").headers(headers).content(" "))
-                .andExpect(status().isBadRequest());
-        mockMvc.perform(post("/stopNotification").headers(headers).content(" "))
-                .andExpect(status().isBadRequest());
-        mockMvc.perform(post("/sendHeartbeat").headers(headers).content(" "))
-                .andExpect(status().isBadRequest());
+        mockMvc.perform(post("/getNotification").headers(headers).content(" ")).andExpect(status().isBadRequest());
+        mockMvc.perform(post("/stopNotification").headers(headers).content(" ")).andExpect(status().isBadRequest());
+        mockMvc.perform(post("/sendHeartbeat").headers(headers).content(" ")).andExpect(status().isBadRequest());
     }
 
     @Test
@@ -239,22 +227,17 @@ public class PolicyEngineServicesTest {
         XACMLProperties.getProperties();
         NotificationService.reloadProps();
         // Add a Topic.
-        mockMvc.perform(
-                post("/getNotification").headers(headers).header(UUIDHEADER, "123").content("test"))
+        mockMvc.perform(post("/getNotification").headers(headers).header(UUIDHEADER, "123").content("test"))
                 .andExpect(status().isOk());
         // Try to add same topic should fail.
-        mockMvc.perform(post("/getNotification").headers(headers)
-                .header(UUIDHEADER, UUID.randomUUID()).content("test"))
+        mockMvc.perform(post("/getNotification").headers(headers).header(UUIDHEADER, UUID.randomUUID()).content("test"))
                 .andExpect(status().isBadRequest());
         // do a heart beat.
-        mockMvc.perform(post("/sendHeartbeat").headers(headers).content("test"))
-                .andExpect(status().isOk());
+        mockMvc.perform(post("/sendHeartbeat").headers(headers).content("test")).andExpect(status().isOk());
         // remove the added Topic.
-        mockMvc.perform(post("/stopNotification").headers(headers).content("test"))
-                .andExpect(status().isOk());
+        mockMvc.perform(post("/stopNotification").headers(headers).content("test")).andExpect(status().isOk());
         // try to remove again should fail.
-        mockMvc.perform(post("/sendHeartbeat").headers(headers).content("test"))
-                .andExpect(status().isBadRequest());
+        mockMvc.perform(post("/sendHeartbeat").headers(headers).content("test")).andExpect(status().isBadRequest());
     }
 
     @Test
@@ -274,17 +257,15 @@ public class PolicyEngineServicesTest {
                 .andExpect(status().isOk());
         pep.setEventAttributes(null);
         mockMvc.perform(post("/sendEvent").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers)
-                .header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
+                .andExpect(status().isBadRequest());
         pep.setEventAttributes(eventAttributes);
         mockMvc.perform(post("/sendEvent").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isOk());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isOk());
         pep.setEventAttributes(eventAttributes);
         pep.setRequestID(UUID.randomUUID());
         mockMvc.perform(post("/sendEvent").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isOk());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isOk());
     }
 
     @Test
@@ -306,17 +287,15 @@ public class PolicyEngineServicesTest {
         pep.setDecisionAttributes(null);
         pep.setOnapName(null);
         mockMvc.perform(post("/getDecision").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers)
-                .header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
+                .andExpect(status().isBadRequest());
         pep.setOnapName("testing");
         mockMvc.perform(post("/getDecision").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setDecisionAttributes(eventAttributes);
         pep.setRequestID(UUID.randomUUID());
         mockMvc.perform(post("/getDecision").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isOk());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isOk());
     }
 
     @Test
@@ -329,61 +308,67 @@ public class PolicyEngineServicesTest {
                 .andExpect(status().isUnauthorized());
         // Service Tests.
         mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers)
-                .header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
+                .andExpect(status().isBadRequest());
+        pep.setPolicyName("com.");
+        mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep))
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
+        pep.setPolicyName("com.test");
+        pep.setPolicyType("");
+        mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep))
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setPolicyName("scopeless");
         mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setPolicyName("testing.test");
         pep.setPolicyType("wrong");
         mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setPolicyType("BRMS_PARAM");
         mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setPolicyType("BRMS_RAW");
         mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setPolicyType("MicroService");
         mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setPolicyType("ClosedLoop_PM");
         mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setPolicyType("ClosedLoop_Fault");
         mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setPolicyType("Base");
         mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setPolicyType("Decision");
         mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setPolicyType("Action");
         mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setPolicyType("Firewall");
         mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
+        pep.setPolicyType("Optimization");
+        mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep))
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setPdpGroup("default");
         mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep))
                 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "123"))
                 .andExpect(status().isBadRequest());
         pep.setRequestID(UUID.randomUUID());
         mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
+        pep.setPolicyType("Base,Base");
+        pep.setPolicyName("com.test1,com.test2");
+        mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep))
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
+        pep.setPolicyType("Base,Base,  ");
+        pep.setPolicyName("com.test1,com.test2,com.test3");
+        mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep))
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
     }
 
     @Test
@@ -396,93 +381,135 @@ public class PolicyEngineServicesTest {
                 .andExpect(status().isUnauthorized());
         // Service Tests.
         mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers)
-                .header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
+                .andExpect(status().isBadRequest());
+
         pep.setPolicyName("testing");
+        pep.setPolicyType("Base");
+        pep.setPolicyComponent("PDP");
         mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers)
-                .header(UUIDHEADER, "test123")).andExpect(status().isBadRequest());
-        pep.setPolicyName("testscope.name");
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "test123"))
+                .andExpect(status().isBadRequest());
+        pep.setPdpGroup("default");
         mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "test123"))
+                .andExpect(status().isBadRequest());
+        pep.setPolicyName("com.Config_test.1.xml");
+        mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "test123"))
+                .andExpect(status().isBadRequest());
+        pep.setPolicyName("testing. ");
+        mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "test123"))
                 .andExpect(status().isBadRequest());
         pep.setPolicyName("testscope.name");
+        mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setPolicyType("wrong");
         pep.setRequestID(UUID.randomUUID());
         mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setPolicyType("BRMS_PARAM");
         pep.setPolicyComponent("wrong");
         pep.setRequestID(null);
         mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
+        pep.setPolicyType("BRMS_PARAM");
+        pep.setPolicyComponent("PDP");
+        mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setPolicyType("BRMS_RAW");
         pep.setPolicyComponent("PDP");
+        pep.setPolicyName("testscope.name");
         mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers)
-                .header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
+                .andExpect(status().isBadRequest());
         pep.setPolicyType("MicroService");
-        pep.setPolicyComponent("PAP");
         mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers)
-                .header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
+                .andExpect(status().isBadRequest());
+        pep.setPolicyType("Optimization");
+        mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
+                .andExpect(status().isBadRequest());
         pep.setPolicyType("ClosedLoop_PM");
         pep.setPolicyComponent("PDP");
         pep.setDeleteCondition(DeletePolicyCondition.ALL);
         mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers)
-                .header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
+                .andExpect(status().isBadRequest());
         pep.setPolicyType("ClosedLoop_Fault");
         pep.setDeleteCondition(DeletePolicyCondition.ONE);
+        pep.setPolicyName("test.test");
         mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers)
-                .header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
+                .andExpect(status().isBadRequest());
         pep.setPolicyType("Base");
         pep.setPolicyComponent("PAP");
         mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers)
-                .header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
+                .andExpect(status().isBadRequest());
         pep.setPolicyType("Decision");
         pep.setPolicyComponent("PDP");
-        pep.setPolicyName("test.xml");
+        pep.setPolicyName("test.test");
         mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers)
-                .header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
+                .andExpect(status().isBadRequest());
         pep.setPolicyType("Action");
-        pep.setPolicyName("scope.Config_test.xml");
+        pep.setPolicyName("scope.test");
         mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers)
-                .header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
+                .andExpect(status().isBadRequest());
         pep.setPdpGroup("default");
         mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers)
-                .header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
+                .andExpect(status().isBadRequest());
         pep.setPolicyComponent("PAP");
         pep.setPolicyType("Firewall");
         pep.setDeleteCondition(null);
         mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers)
-                .header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
+                .andExpect(status().isBadRequest());
         pep.setPolicyComponent("PAP");
         pep.setDeleteCondition(DeletePolicyCondition.ONE);
         mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers)
-                .header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
+                .andExpect(status().isBadRequest());
         pep.setPolicyComponent("fail");
         mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers)
-                .header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
+                .andExpect(status().isBadRequest());
         pep.setPolicyComponent("PDP");
         pep.setPolicyName("testscope.policyName");
         mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers)
-                .header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
+                .andExpect(status().isBadRequest());
         pep.setPolicyComponent(null);
         mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers)
-                .header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
+                .andExpect(status().isBadRequest());
+        pep.setPolicyComponent("PDP");
+        pep.setPolicyName("com.test1,com.test2");
+        pep.setPolicyType("Base,Base");
+        mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
+                .andExpect(status().isBadRequest());
+        pep.setPolicyName("com.test1,com.test2");
+        pep.setPolicyType("Base,Base,  ");
+        mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
+                .andExpect(status().isBadRequest());
+        pep.setPolicyName("com.test1,com.test2,  ");
+        pep.setPolicyType("Base,Base,  ");
+        mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
+                .andExpect(status().isBadRequest());
+        pep.setPolicyComponent("PAP");
+        pep.setPolicyName("com.test1,com.test2");
+        pep.setPolicyType("Base,Base");
+        mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
+                .andExpect(status().isBadRequest());
     }
 
     @Test
@@ -499,40 +526,38 @@ public class PolicyEngineServicesTest {
         // Service Tests.
         setCreateUpdateImpl();
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers)
-                .header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
+                .andExpect(status().isBadRequest());
         pep.setPolicyName("failName");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers)
-                .header(UUIDHEADER, "test 123")).andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "test 123"))
+                .andExpect(status().isBadRequest());
         pep.setPolicyName("test. name");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setPolicyName("   ");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers)
-                .header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
+                .andExpect(status().isBadRequest());
         pep.setPolicyName("test. ");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers)
-                .header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
+                .andExpect(status().isBadRequest());
         pep.setPolicyName("te st.name");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers)
-                .header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
+                .andExpect(status().isBadRequest());
         pep.setPolicyName("test.name");
         pep.setPolicyDescription("testá");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers)
-                .header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
+                .andExpect(status().isBadRequest());
         pep.setPolicyName("test.name");
         pep.setPolicyDescription("good");
         pep.setTtlDate(new Date());
         pep.setRequestID(UUID.randomUUID());
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
     }
 
     @Test
@@ -546,12 +571,10 @@ public class PolicyEngineServicesTest {
         // Checks for BRMS Param Policy.
         pep.setPolicyConfigType(PolicyConfigType.BRMS_PARAM);
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setRiskLevel("test");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         Map<AttributeType, Map<String, String>> attributes = new HashMap<>();
         Map<String, String> matching = new HashMap<>();
         matching.put("key", "value");
@@ -559,38 +582,30 @@ public class PolicyEngineServicesTest {
         pep.setAttributes(attributes);
         pep.setRiskLevel("5");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         mockMvc.perform(put("/updatePolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         // Checks for BRMS Raw Policy
         pep.setPolicyConfigType(PolicyConfigType.BRMS_RAW);
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setConfigBody("test");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setRiskLevel(null);
-        pep.setConfigBody(
-                "package droolsexample\n\n import com.sample.ItemCity;\nimport java.math.BigDecimal;\n"
-                        + "rule \"Nagpur Medicine Item\"\n\n   when\n"
-                        + "      item : ItemCity(purchaseCity == ItemCity.City.NAGPUR,\n"
-                        + "         typeofItem == ItemCity.Type.MEDICINES)\n   then\n"
-                        + "      BigDecimal tax = new BigDecimal(0.0);\n"
-                        + "      item.setLocalTax(tax.multiply(item.getSellPrice()));\nend");
-        mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+        pep.setConfigBody("package droolsexample\n\n import com.sample.ItemCity;\nimport java.math.BigDecimal;\n"
+                + "rule \"Nagpur Medicine Item\"\n\n   when\n"
+                + "      item : ItemCity(purchaseCity == ItemCity.City.NAGPUR,\n"
+                + "         typeofItem == ItemCity.Type.MEDICINES)\n   then\n"
+                + "      BigDecimal tax = new BigDecimal(0.0);\n"
+                + "      item.setLocalTax(tax.multiply(item.getSellPrice()));\nend");
+        mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setRiskLevel("5");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         mockMvc.perform(put("/updatePolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
     }
 
     @Test
@@ -604,39 +619,31 @@ public class PolicyEngineServicesTest {
         // Checks for Base config Policy.
         pep.setPolicyConfigType(PolicyConfigType.Base);
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setConfigBody("testbody");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setConfigBodyType(PolicyType.OTHER);
         pep.setRiskLevel("test");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setRiskLevel("4");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setOnapName("ec nam-e");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setOnapName("onapName");
         pep.setConfigName("tes config");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setConfigName("configName");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setConfigBody("{'test':'test}");
         pep.setConfigBodyType(PolicyType.JSON);
         mockMvc.perform(put("/updatePolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         Map<AttributeType, Map<String, String>> attributes = new HashMap<>();
         Map<String, String> matching = new HashMap<>();
         matching.put("key", "value");
@@ -644,8 +651,7 @@ public class PolicyEngineServicesTest {
         pep.setAttributes(attributes);
         pep.setConfigBody("testBody");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
     }
 
     @Test
@@ -659,39 +665,30 @@ public class PolicyEngineServicesTest {
         // Checks for Closed loop Policy.
         pep.setPolicyConfigType(PolicyConfigType.ClosedLoop_Fault);
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setConfigBody("te stá");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setConfigBody("testBody");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setConfigBody("{\"key\":\"value\"}");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setConfigBody("{\"onapname\":\"\"}");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setConfigBody("{\"onapname\":\"test\"}");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setRiskLevel("test");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setRiskLevel("4");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         mockMvc.perform(put("/updatePolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
     }
 
     @Test
@@ -705,46 +702,35 @@ public class PolicyEngineServicesTest {
         // Checks for Closed loop Policy.
         pep.setPolicyConfigType(PolicyConfigType.ClosedLoop_PM);
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setConfigBody("te stá");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setConfigBody("testBody");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setConfigBody("{\"key\":\"value\"}");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setConfigBody("{\"onapname\":\"\"}");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setConfigBody("{\"onapname\":\"test\"}");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setConfigBody("{\"onapname\":\"test\", \"serviceTypePolicyName\":\"value\"}");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setRiskLevel("test");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setRiskLevel("4");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         mockMvc.perform(put("/updatePolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
     }
 
     @Test
@@ -758,32 +744,25 @@ public class PolicyEngineServicesTest {
         // Checks for Closed loop Policy.
         pep.setPolicyConfigType(PolicyConfigType.Firewall);
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setConfigBody("te st");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setConfigBody("{}");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setConfigBody("{\"test\":\"test\"}");
         pep.setRiskLevel("test");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setRiskLevel("4");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setConfigBody("{\"configName\":\"test\"}");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         mockMvc.perform(put("/updatePolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
     }
 
     @Test
@@ -797,36 +776,28 @@ public class PolicyEngineServicesTest {
         // Checks for Closed loop Policy.
         pep.setPolicyConfigType(PolicyConfigType.MicroService);
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setConfigBody("te st");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setConfigBody("{}");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setConfigBody("{\"test\":\"test\"}");
         pep.setOnapName("   ");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setOnapName("testonap");
         pep.setRiskLevel("fail");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setRiskLevel("4");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
-        pep.setConfigBody(
-                "{\"service\":\"test\",\"uuid\":\"test\",\"location\":\"test\",\"configName\":\"test\","
-                        + "\"description\":\"test\",\"priority\":\"test\",\"version\":\"test\"}");
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
+        pep.setConfigBody("{\"service\":\"test\",\"uuid\":\"test\",\"location\":\"test\",\"configName\":\"test\","
+                + "\"description\":\"test\",\"priority\":\"test\",\"version\":\"test\"}");
         mockMvc.perform(put("/updatePolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
     }
 
     @Test
@@ -840,63 +811,50 @@ public class PolicyEngineServicesTest {
         // Checks for action Policy.
         pep.setPolicyClass(PolicyClass.Action);
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         Map<AttributeType, Map<String, String>> attributes = new HashMap<>();
         pep.setAttributes(attributes);
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         attributes.put(AttributeType.MATCHING, new HashMap<>());
         pep.setAttributes(attributes);
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         Map<String, String> matching = new HashMap<>();
         matching.put("key", "value");
         attributes.put(AttributeType.MATCHING, matching);
         pep.setAttributes(attributes);
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setActionAttribute("A1");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setActionPerformer("PEX");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setActionPerformer("PEP");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         mockMvc.perform(put("/updatePolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         // Checks for Decision Policy.
         pep.setPolicyClass(PolicyClass.Decision);
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setOnapName("xyz");
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         attributes.remove(AttributeType.MATCHING);
         attributes.put(AttributeType.SETTINGS, matching);
         pep.setAttributes(attributes);
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         attributes.put(AttributeType.MATCHING, matching);
         pep.setAttributes(attributes);
         mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         mockMvc.perform(put("/updatePolicy").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
     }
 
     @Test
@@ -912,32 +870,29 @@ public class PolicyEngineServicesTest {
                 .andExpect(status().isUnauthorized());
         // Service Tests.
         mockMvc.perform(put("/createDictionaryItem").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers)
-                .header(UUIDHEADER, "tes123")).andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "tes123"))
+                .andExpect(status().isBadRequest());
         pep.setDictionaryType(DictionaryType.MicroService);
         mockMvc.perform(put("/createDictionaryItem").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         mockMvc.perform(put("/createDictionaryItem").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers)
-                .header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
+                .andExpect(status().isBadRequest());
         pep.setDictionary("test dict");
         pep.setRequestID(UUID.randomUUID());
         mockMvc.perform(put("/createDictionaryItem").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setDictionaryJson("{\"test\":\"value\"}");
         mockMvc.perform(put("/createDictionaryItem").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers)
-                .header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
+                .andExpect(status().isBadRequest());
         pep.setDictionaryJson("test123");
         mockMvc.perform(put("/updateDictionaryItem").content(PolicyUtils.objectToJsonString(pep))
                 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "123"))
                 .andExpect(status().isBadRequest());
         pep.setDictionary("MicroServiceDictionary");
         mockMvc.perform(put("/createDictionaryItem").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
     }
 
     @Test
@@ -950,21 +905,18 @@ public class PolicyEngineServicesTest {
                 .andExpect(status().isUnauthorized());
         // Service Tests.
         mockMvc.perform(post("/getDictionaryItems").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers)
-                .header(UUIDHEADER, "tes123")).andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "tes123"))
+                .andExpect(status().isBadRequest());
         pep.setDictionaryType(DictionaryType.Common);
         mockMvc.perform(post("/getDictionaryItems").content(PolicyUtils.objectToJsonString(pep))
                 .contentType(MediaType.APPLICATION_JSON).headers(headers)
-                .header(UUIDHEADER, UUID.randomUUID().toString()))
-                .andExpect(status().isBadRequest());
+                .header(UUIDHEADER, UUID.randomUUID().toString())).andExpect(status().isBadRequest());
         pep.setDictionary("OnapName");
         mockMvc.perform(post("/getDictionaryItems").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
         pep.setRequestID(UUID.randomUUID());
         mockMvc.perform(post("/getDictionaryItems").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers))
-                .andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
     }
 
     @Test
@@ -986,24 +938,24 @@ public class PolicyEngineServicesTest {
                 .andExpect(status().isUnauthorized());
         // Service Tests.
         mockMvc.perform(put("/createConfig").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers)
-                .header(UUIDHEADER, "tes123")).andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "tes123"))
+                .andExpect(status().isBadRequest());
         pep.setPolicyScope("test");
         mockMvc.perform(put("/createConfig").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers)
-                .header(UUIDHEADER, "tes123")).andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "tes123"))
+                .andExpect(status().isBadRequest());
         pep.setPolicyName("name");
         mockMvc.perform(put("/createConfig").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers)
-                .header(UUIDHEADER, "tes123")).andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "tes123"))
+                .andExpect(status().isBadRequest());
         pep.setConfigType("OTHER");
         mockMvc.perform(put("/createConfig").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers)
-                .header(UUIDHEADER, "tes123")).andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "tes123"))
+                .andExpect(status().isBadRequest());
         pep.setTtlDate(new Date().toString());
         mockMvc.perform(put("/updateConfig").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers)
-                .header(UUIDHEADER, "tes123")).andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "tes123"))
+                .andExpect(status().isBadRequest());
     }
 
     @Test
@@ -1019,26 +971,25 @@ public class PolicyEngineServicesTest {
                 .andExpect(status().isUnauthorized());
         // Service Tests.
         mockMvc.perform(put("/createFirewallConfig").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers)
-                .header(UUIDHEADER, "tes123")).andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "tes123"))
+                .andExpect(status().isBadRequest());
         pep.setPolicyScope("test");
         mockMvc.perform(put("/createFirewallConfig").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers)
-                .header(UUIDHEADER, "tes123")).andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "tes123"))
+                .andExpect(status().isBadRequest());
         pep.setPolicyName("name");
         mockMvc.perform(put("/createFirewallConfig").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers)
-                .header(UUIDHEADER, "tes123")).andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "tes123"))
+                .andExpect(status().isBadRequest());
         pep.setTtlDate(new Date().toString());
         mockMvc.perform(put("/updateFirewallConfig").content(PolicyUtils.objectToJsonString(pep))
-                .contentType(MediaType.APPLICATION_JSON).headers(headers)
-                .header(UUIDHEADER, "tes123")).andExpect(status().isBadRequest());
+                .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "tes123"))
+                .andExpect(status().isBadRequest());
     }
 
-    private void setCreateUpdateImpl() throws NoSuchMethodException, SecurityException,
-            IllegalAccessException, IllegalArgumentException, InvocationTargetException {
-        Method setter = XACMLPdpServlet.class.getDeclaredMethod("setCreateUpdatePolicyConstructor",
-                String.class);
+    private void setCreateUpdateImpl() throws NoSuchMethodException, SecurityException, IllegalAccessException,
+            IllegalArgumentException, InvocationTargetException {
+        Method setter = XACMLPdpServlet.class.getDeclaredMethod("setCreateUpdatePolicyConstructor", String.class);
         setter.setAccessible(true);
         setter.invoke(new XACMLPdpServlet(), CreateUpdatePolicyServiceImpl.class.getName());
     }
index da13a9a..159d831 100644 (file)
                 </exclusion>
             </exclusions>
         </dependency>
+        <dependency>
+             <groupId>org.projectlombok</groupId>
+             <artifactId>lombok</artifactId>
+             <version>1.18.6</version>
+             <scope>provided</scope>
+        </dependency>
         <dependency>
             <groupId>org.onap.policy.engine</groupId>
             <artifactId>ONAP-XACML</artifactId>
diff --git a/PolicyEngineAPI/src/main/java/org/onap/policy/api/PolicyNameType.java b/PolicyEngineAPI/src/main/java/org/onap/policy/api/PolicyNameType.java
new file mode 100644 (file)
index 0000000..d1056c8
--- /dev/null
@@ -0,0 +1,44 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * PolicyEngineAPI
+ * ================================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.api;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.ToString;
+
+/**
+ * The Class PolicyNameType.
+ */
+@Getter
+@Setter
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+public class PolicyNameType {
+    private String policyName;
+    private String policyScope;
+    private String policyType;
+    private String filePrefix;
+    private String clientScope;
+    private String fullPolicyName;
+}