Consolidate PolicyRestAdapter setup
[policy/engine.git] / ONAP-PAP-REST / src / main / java / org / onap / policy / pap / xacml / rest / ConsoleAndApiService.java
index a9ef7ee..6e79774 100644 (file)
@@ -22,6 +22,7 @@ package org.onap.policy.pap.xacml.rest;
 
 import com.att.research.xacml.api.pap.PAPException;
 import com.fasterxml.jackson.databind.ObjectMapper;
+
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
@@ -32,10 +33,12 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Scanner;
 import java.util.Set;
+
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import org.onap.policy.common.logging.ONAPLoggingContext;
+
+import org.onap.policy.common.logging.OnapLoggingContext;
 import org.onap.policy.common.logging.eelf.MessageCodes;
 import org.onap.policy.common.logging.eelf.PolicyLogger;
 import org.onap.policy.common.logging.flexlogger.FlexLogger;
@@ -79,7 +82,7 @@ public class ConsoleAndApiService {
      * @throws IOException Signals that an I/O exception has occurred.
      */
     public void doAcPost(HttpServletRequest request, HttpServletResponse response, String groupId,
-            ONAPLoggingContext loggingContext, PAPPolicyEngine papEngine) throws IOException {
+            OnapLoggingContext loggingContext, PAPPolicyEngine papEngine) throws IOException {
         PolicyDBDaoTransaction doAcPostTransaction = null;
         try {
             String groupName = request.getParameter("groupName");
@@ -98,7 +101,7 @@ public class ConsoleAndApiService {
                 } catch (UnsupportedEncodingException e) {
                     LOGGER.error(e);
                 }
-                PolicyDBDaoTransaction newGroupTransaction = XACMLPapServlet.policyDBDao.getNewTransaction();
+                PolicyDBDaoTransaction newGroupTransaction = XACMLPapServlet.getPolicyDbDao().getNewTransaction();
                 try {
                     newGroupTransaction.createGroup(PolicyDBDao.createNewPDPGroupId(unescapedName), unescapedName,
                             unescapedDescription, PAPSERVLETDOACPOST);
@@ -169,7 +172,7 @@ public class ConsoleAndApiService {
                 StdPDPPolicy policyForSafetyCheck = new StdPDPPolicy();
                 for (String policyId : policyIdList) {
                     PolicyDBDaoTransaction addPolicyToGroupTransaction =
-                            XACMLPapServlet.policyDBDao.getNewTransaction();
+                            XACMLPapServlet.getPolicyDbDao().getNewTransaction();
                     try {
                         // Copying the policy to the file system and updating groups
                         // in database
@@ -185,7 +188,8 @@ public class ConsoleAndApiService {
                         if (policyId.contains("Config_MS_") || policyId.contains("BRMS_Param")) {
                             PushPolicyHandler pushPolicyHandler = PushPolicyHandler.getInstance();
                             policyForSafetyCheck.setId(policyId);
-                            if (pushPolicyHandler.preSafetyCheck(policyForSafetyCheck, XACMLPapServlet.getConfigHome())) {
+                            if (pushPolicyHandler.preSafetyCheck(policyForSafetyCheck,
+                                    XACMLPapServlet.getConfigHome())) {
                                 LOGGER.debug("Precheck Successful.");
                             }
                         }
@@ -218,12 +222,12 @@ public class ConsoleAndApiService {
                 }
 
                 /*
-                 * If request comes from the API we need to run the PolicyDBDao updateGroup() to
-                 * notify other paps of the change. The GUI does this from the POLICY-SDK-APP code.
+                 * If request comes from the API we need to run the PolicyDBDao updateGroup() to notify other paps of
+                 * the change. The GUI does this from the POLICY-SDK-APP code.
                  */
 
                 // Get new transaction to perform updateGroup()
-                PolicyDBDaoTransaction acPutTransaction = XACMLPapServlet.policyDBDao.getNewTransaction();
+                PolicyDBDaoTransaction acPutTransaction = XACMLPapServlet.getPolicyDbDao().getNewTransaction();
                 try {
                     // Assume that this is an update of an existing PDP
                     // Group
@@ -288,7 +292,8 @@ public class ConsoleAndApiService {
                 // It should never be the case that multiple groups are
                 // currently marked as the default, but protect against that
                 // anyway.
-                PolicyDBDaoTransaction setDefaultGroupTransaction = XACMLPapServlet.policyDBDao.getNewTransaction();
+                PolicyDBDaoTransaction setDefaultGroupTransaction =
+                        XACMLPapServlet.getPolicyDbDao().getNewTransaction();
                 try {
                     setDefaultGroupTransaction.changeDefaultGroup(group, PAPSERVLETDOACPOST);
                     papEngine.setDefaultGroup(group);
@@ -313,7 +318,7 @@ public class ConsoleAndApiService {
                 LOGGER.info(TRANSENDED);
                 return;
             } else if (request.getParameter("pdpId") != null) {
-                doAcPostTransaction = XACMLPapServlet.policyDBDao.getNewTransaction();
+                doAcPostTransaction = XACMLPapServlet.getPolicyDbDao().getNewTransaction();
                 // Args: group=<groupId> pdpId=<pdpId> <= move PDP to group
                 loggingContext.setServiceName("AC:PAP.movePDP");
                 String pdpId = request.getParameter("pdpId");
@@ -368,7 +373,7 @@ public class ConsoleAndApiService {
      * @throws IOException Signals that an I/O exception has occurred.
      */
     public void doAcGet(HttpServletRequest request, HttpServletResponse response, String groupId,
-            ONAPLoggingContext loggingContext, PAPPolicyEngine papEngine) throws IOException {
+            OnapLoggingContext loggingContext, PAPPolicyEngine papEngine) throws IOException {
         try {
             String parameterDefault = request.getParameter("default");
             String pdpId = request.getParameter("pdpId");
@@ -570,8 +575,8 @@ public class ConsoleAndApiService {
      * @throws IOException Signals that an I/O exception has occurred.
      */
     public void doAcPut(HttpServletRequest request, HttpServletResponse response, String groupId,
-            ONAPLoggingContext loggingContext, PAPPolicyEngine papEngine) throws IOException {
-        PolicyDBDaoTransaction acPutTransaction = XACMLPapServlet.policyDBDao.getNewTransaction();
+            OnapLoggingContext loggingContext, PAPPolicyEngine papEngine) throws IOException {
+        PolicyDBDaoTransaction acPutTransaction = XACMLPapServlet.getPolicyDbDao().getNewTransaction();
         try {
             String userId = request.getParameter("userId");
             // for PUT operations the group may or may not need to exist before
@@ -587,6 +592,7 @@ public class ConsoleAndApiService {
                 loggingContext.transactionEnded();
                 PolicyLogger.audit(TRANSACTIONFAILED);
                 setResponseError(response, HttpServletResponse.SC_NOT_FOUND, message);
+                acPutTransaction.rollbackTransaction();
                 return;
             }
             if (request.getParameter("policy") != null) {
@@ -601,6 +607,7 @@ public class ConsoleAndApiService {
                 PolicyLogger.audit(TRANSACTIONFAILED);
                 auditLogger.info(SUCCESS);
                 PolicyLogger.audit(TRANSENDED);
+                acPutTransaction.rollbackTransaction();
                 return;
             } else if (request.getParameter("pdpId") != null) {
                 // ARGS: group=<groupId> pdpId=<pdpId/URL> <= create a new PDP
@@ -708,6 +715,7 @@ public class ConsoleAndApiService {
                 loggingContext.transactionEnded();
                 PolicyLogger.audit(TRANSACTIONFAILED);
                 setResponseError(response, HttpServletResponse.SC_BAD_REQUEST, "UNIMPLEMENTED");
+                acPutTransaction.rollbackTransaction();
                 return;
             } else {
                 // Assume that this is an update of an existing PDP Group
@@ -811,8 +819,8 @@ public class ConsoleAndApiService {
      * @throws IOException Signals that an I/O exception has occurred.
      */
     public void doAcDelete(HttpServletRequest request, HttpServletResponse response, String groupId,
-            ONAPLoggingContext loggingContext, PAPPolicyEngine papEngine) throws IOException {
-        PolicyDBDaoTransaction removePdpOrGroupTransaction = XACMLPapServlet.policyDBDao.getNewTransaction();
+            OnapLoggingContext loggingContext, PAPPolicyEngine papEngine) throws IOException {
+        PolicyDBDaoTransaction removePdpOrGroupTransaction = XACMLPapServlet.getPolicyDbDao().getNewTransaction();
         try {
             // for all DELETE operations the group must exist before the
             // operation can be done
@@ -824,6 +832,7 @@ public class ConsoleAndApiService {
                 loggingContext.transactionEnded();
                 PolicyLogger.audit(TRANSACTIONFAILED);
                 setResponseError(response, HttpServletResponse.SC_NOT_FOUND, "Unknown groupId '" + groupId + "'");
+                removePdpOrGroupTransaction.rollbackTransaction();
                 return;
             }
             // determine the operation needed based on the parameters in the
@@ -836,6 +845,7 @@ public class ConsoleAndApiService {
                 loggingContext.transactionEnded();
                 PolicyLogger.audit(TRANSACTIONFAILED);
                 setResponseError(response, HttpServletResponse.SC_BAD_REQUEST, "UNIMPLEMENTED");
+                removePdpOrGroupTransaction.rollbackTransaction();
                 return;
             } else if (request.getParameter("pdpId") != null) {
                 // ARGS: group=<groupId> pdpId=<pdpId> <= delete PDP
@@ -865,6 +875,7 @@ public class ConsoleAndApiService {
                 loggingContext.transactionEnded();
                 PolicyLogger.audit(TRANSACTIONFAILED);
                 setResponseError(response, HttpServletResponse.SC_BAD_REQUEST, "UNIMPLEMENTED");
+                removePdpOrGroupTransaction.rollbackTransaction();
                 return;
             } else {
                 // ARGS: group=<groupId> movePDPsToGroupId=<movePDPsToGroupId>