Added Junits for Policy PAP-REST
[policy/engine.git] / ONAP-PAP-REST / src / main / java / org / onap / policy / pap / xacml / rest / XACMLPapServlet.java
index cf1e6fc..650713c 100644 (file)
@@ -40,7 +40,6 @@ import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Properties;
 import java.util.Scanner;
@@ -65,6 +64,7 @@ import org.onap.policy.common.ia.IntegrityAudit;
 import org.onap.policy.common.im.AdministrativeStateException;
 import org.onap.policy.common.im.ForwardProgressException;
 import org.onap.policy.common.im.IntegrityMonitor;
+import org.onap.policy.common.im.IntegrityMonitorException;
 import org.onap.policy.common.im.IntegrityMonitorProperties;
 import org.onap.policy.common.im.StandbyStatusException;
 import org.onap.policy.common.logging.ONAPLoggingContext;
@@ -89,7 +89,6 @@ import org.onap.policy.xacml.api.pap.ONAPPapEngineFactory;
 import org.onap.policy.xacml.api.pap.OnapPDP;
 import org.onap.policy.xacml.api.pap.OnapPDPGroup;
 import org.onap.policy.xacml.api.pap.PAPPolicyEngine;
-import org.onap.policy.xacml.std.pap.StdPAPPolicy;
 import org.onap.policy.xacml.std.pap.StdPDP;
 import org.onap.policy.xacml.std.pap.StdPDPGroup;
 import org.onap.policy.xacml.std.pap.StdPDPItemSetChangeNotifier.StdItemSetChangeListener;
@@ -559,6 +558,16 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
                        PolicyLogger.audit("Transaction Failed - See Error.log");
                        setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
                        return;
+               } catch (IntegrityMonitorException e) {
+                       String message = "POST interface called for PAP " + papResourceName + " but an exception occurred"
+                                       + "\n Exception Message: " + e.getMessage();
+                       LOGGER.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message, e);
+                       loggingContext.metricEnded();
+                       PolicyLogger.metrics("XACMLPapServlet doPost im startTransaction");
+                       loggingContext.transactionEnded();
+                       PolicyLogger.audit("Transaction Failed - See Error.log");
+                       setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+                       return;
                }
                try {
                        loggingContext.metricStarted();
@@ -827,6 +836,15 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
                                PolicyLogger.audit("Transaction Failed - See Error.log");
                                setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
                                return;
+                       } catch (IntegrityMonitorException e) {
+                               String message = "GET interface called for PAP " + papResourceName + " but an exception occurred"
+                                               + "\n Exception Message: " + e.getMessage();
+                               LOGGER.info(message, e);
+                               PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message);
+                               loggingContext.transactionEnded();
+                               PolicyLogger.audit("Transaction Failed - See Error.log");
+                               setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+                               return;
                        }
                        // Request from the API to get the gitPath
                        String apiflag = request.getParameter("apiflag");
@@ -999,7 +1017,7 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
                        im.startTransaction();
                        loggingContext.metricEnded();
                        PolicyLogger.metrics("XACMLPapServlet doPut im startTransaction");
-               } catch (AdministrativeStateException | StandbyStatusException e) {
+               } catch (IntegrityMonitorException e) {
                        String message = "PUT interface called for PAP " + papResourceName;
                        if (e instanceof AdministrativeStateException) {
                                message += " but it has an Administrative state of "
@@ -1007,6 +1025,8 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
                        } else if (e instanceof StandbyStatusException) {
                                message += " but it has a Standby Status of "
                                        + im.getStateManager().getStandbyStatus();
+                       } else {
+                               message += " but an exception occurred";
 
                        }
                        message += "\n Exception Message: " + e.getMessage();
@@ -1076,55 +1096,6 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
                                return;
                        }
                }
-               //This would occur if we received a notification of a policy rename from AC
-               String oldPolicyName = request.getParameter("oldPolicyName");
-               String newPolicyName = request.getParameter("newPolicyName");
-               if(oldPolicyName != null && newPolicyName != null){
-                       if(LOGGER.isDebugEnabled()){
-                               LOGGER.debug("\nXACMLPapServlet.doPut() - before decoding"
-                                               + "\npolicyToCreateUpdate = " + " ");
-                       }
-                       //decode it
-                       try{
-                               oldPolicyName = URLDecoder.decode(oldPolicyName, "UTF-8");
-                               newPolicyName = URLDecoder.decode(newPolicyName, "UTF-8");
-                               if(LOGGER.isDebugEnabled()){
-                                       LOGGER.debug("\nXACMLPapServlet.doPut() - after decoding"
-                                                       + "\npolicyToCreateUpdate = " + " ");
-                               }
-                       } catch(UnsupportedEncodingException e){
-                               PolicyLogger.error("\nXACMLPapServlet.doPut() - Unsupported URL encoding of policyToCreateUpdate (UTF-8)"
-                                               + "\npolicyToCreateUpdate = " + " ");
-                               setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"policyToCreateUpdate encoding not supported"
-                                               + "\nfailure with the following exception: " + e);
-                               loggingContext.transactionEnded();
-                               PolicyLogger.audit("Transaction Failed - See error.log");
-                               im.endTransaction();
-                               return;
-                       }
-                       //send it to PolicyDBDao
-                       PolicyDBDaoTransaction renameTransaction = policyDBDao.getNewTransaction();
-                       try{
-                               renameTransaction.renamePolicy(oldPolicyName,newPolicyName, "XACMLPapServlet.doPut");
-                       }catch(Exception e){
-                               renameTransaction.rollbackTransaction();
-                               setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"createUpdateTransaction.createPolicy(policyToCreateUpdate, XACMLPapServlet.doPut) "
-                                               + "\nfailure with the following exception: " + e);
-                               loggingContext.transactionEnded();
-                               PolicyLogger.audit("Transaction Failed - See error.log");
-                               im.endTransaction();
-                               return;
-                       }
-                       loggingContext.metricStarted();
-                       renameTransaction.commitTransaction();
-                       loggingContext.metricEnded();
-                       PolicyLogger.metrics("XACMLPapServlet goPut commitTransaction");
-                       response.setStatus(HttpServletResponse.SC_OK);
-                       loggingContext.transactionEnded();
-                       PolicyLogger.audit("Transaction Ended Successfully");
-                       im.endTransaction();
-                       return;
-               }
                //
                // See if this is Admin Console registering itself with us
                //
@@ -1281,6 +1252,15 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
                        PolicyLogger.audit("Transaction Failed - See Error.log");
                        setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
                        return;
+               } catch (IntegrityMonitorException e) {
+                       String message = "PUT interface called for PAP " + papResourceName + " but an exception occurred"
+                                       + "\n Exception Message: " + e.getMessage();
+                       LOGGER.info(message, e);
+                       PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message);
+                       loggingContext.transactionEnded();
+                       PolicyLogger.audit("Transaction Failed - See Error.log");
+                       setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+                       return;
                }
                loggingContext.metricStarted();
                XACMLRest.dumpRequest(request);
@@ -2245,33 +2225,6 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
         * @throws IOException
         */
        private void doACDelete(HttpServletRequest request, HttpServletResponse response, String groupId, ONAPLoggingContext loggingContext) throws IOException {
-               //This code is to allow deletes to propagate to the database since delete is not implemented
-               String isDeleteNotify = request.getParameter("isDeleteNotify");
-               if(isDeleteNotify != null){
-                       String policyToDelete = request.getParameter("policyToDelete");
-                       try{
-                               policyToDelete = URLDecoder.decode(policyToDelete,"UTF-8");
-                       } catch(UnsupportedEncodingException e){
-                               LOGGER.error("Unsupported URL encoding of policyToDelete (UTF-8", e);
-                               setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"policyToDelete encoding not supported");
-                               return;
-                       }
-                       PolicyDBDaoTransaction deleteTransaction = policyDBDao.getNewTransaction();
-                       try{
-                               deleteTransaction.deletePolicy(policyToDelete);
-                       } catch(Exception e){
-                               deleteTransaction.rollbackTransaction();
-                               setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"deleteTransaction.deleteTransaction(policyToDelete) "
-                                               + "\nfailure with the following exception: " + e);
-                               return;
-                       }
-                       loggingContext.metricStarted();
-                       deleteTransaction.commitTransaction();
-                       loggingContext.metricEnded();
-                       PolicyLogger.metrics("XACMLPapServlet doACPut commitTransaction");
-                       response.setStatus(HttpServletResponse.SC_OK);
-                       return;
-               }
                PolicyDBDaoTransaction removePdpOrGroupTransaction = policyDBDao.getNewTransaction();
                try {
                        // for all DELETE operations the group must exist before the operation can be done
@@ -2852,7 +2805,7 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
                                }
                        }
                        // remove any ACs that are no longer connected
-                       if (disconnectedACs.size() > 0) {
+                       if (!disconnectedACs.isEmpty()) {
                                adminConsoleURLStringList.removeAll(disconnectedACs);
                        }
                }