update DR logging to log under one system
[dmaap/datarouter.git] / datarouter-prov / src / main / java / org / onap / dmaap / datarouter / provisioning / GroupServlet.java
index 8537ff4..188dce6 100644 (file)
@@ -26,18 +26,15 @@ package org.onap.dmaap.datarouter.provisioning;
 
 import java.io.IOException;
 import java.io.InvalidObjectException;
-import java.util.Collection;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import org.json.JSONObject;
-import org.onap.dmaap.datarouter.authz.AuthorizationResponse;
-import org.onap.dmaap.datarouter.provisioning.BaseServlet.ContentHeader;
 import org.onap.dmaap.datarouter.provisioning.beans.EventLogRecord;
 import org.onap.dmaap.datarouter.provisioning.beans.Group;
-import org.onap.dmaap.datarouter.provisioning.beans.Subscription;
-import org.onap.dmaap.datarouter.provisioning.utils.JSONUtilities;
+
+import static org.onap.dmaap.datarouter.provisioning.utils.HttpServletUtils.sendResponseError;
 
 /**
  * This servlet handles provisioning for the <groups> which is generated by the provisioning
@@ -53,13 +50,13 @@ public class GroupServlet extends ProxyServlet {
      * DELETE on the <GRUPS> -- not supported.
      */
     @Override
-    public void doDelete(HttpServletRequest req, HttpServletResponse resp) throws IOException {
+    public void doDelete(HttpServletRequest req, HttpServletResponse resp) {
         String message = "DELETE not allowed for the GROUPS.";
         EventLogRecord elr = new EventLogRecord(req);
         elr.setMessage(message);
         elr.setResult(HttpServletResponse.SC_METHOD_NOT_ALLOWED);
-        eventlogger.info(elr);
-        resp.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, message);
+        eventlogger.error(elr.toString());
+        sendResponseError(resp, HttpServletResponse.SC_METHOD_NOT_ALLOWED, message, eventlogger);
     }
     /**
      * GET on the the list of groups to a feed/sub.
@@ -67,14 +64,14 @@ public class GroupServlet extends ProxyServlet {
      * document for details on how this method should be invoked.
      */
     @Override
-    public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
+    public void doGet(HttpServletRequest req, HttpServletResponse resp) {
         EventLogRecord elr = new EventLogRecord(req);
         String message = isAuthorizedForProvisioning(req);
         if (message != null) {
             elr.setMessage(message);
             elr.setResult(HttpServletResponse.SC_FORBIDDEN);
-            eventlogger.info(elr);
-            resp.sendError(HttpServletResponse.SC_FORBIDDEN, message);
+            eventlogger.error(elr.toString());
+            sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);
             return;
         }
         if (isProxyServer()) {
@@ -86,8 +83,8 @@ public class GroupServlet extends ProxyServlet {
             message = "Missing "+BEHALF_HEADER+" header.";
             elr.setMessage(message);
             elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
-            eventlogger.info(elr);
-            resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+            eventlogger.error(elr.toString());
+            sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
             return;
         }
 
@@ -97,7 +94,7 @@ public class GroupServlet extends ProxyServlet {
             message = "Policy Engine disallows access.";
             elr.setMessage(message);
             elr.setResult(HttpServletResponse.SC_FORBIDDEN);
-            eventlogger.info(elr);
+            eventlogger.error(elr.toString());
             resp.sendError(HttpServletResponse.SC_FORBIDDEN, message);
             return;
         }*/
@@ -110,7 +107,7 @@ public class GroupServlet extends ProxyServlet {
             message = "Incorrect content-type";
             elr.setMessage(message);
             elr.setResult(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE);
-            eventlogger.info(elr);
+            eventlogger.error(elr.toString());
             resp.sendError(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE, message);
             return;
         }*/
@@ -121,18 +118,22 @@ public class GroupServlet extends ProxyServlet {
             message = "Missing or bad group number.";
             elr.setMessage(message);
             elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
-            eventlogger.info(elr);
-            resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+            eventlogger.error(elr.toString());
+            sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
             return;
         }
 
         Group gup = Group.getGroupById(groupid);
         // send response
         elr.setResult(HttpServletResponse.SC_OK);
-        eventlogger.info(elr);
+        eventlogger.info(elr.toString());
         resp.setStatus(HttpServletResponse.SC_OK);
         resp.setContentType(GROUPFULL_CONTENT_TYPE);
-        resp.getOutputStream().print(gup.asJSONObject().toString());
+        try {
+            resp.getOutputStream().print(gup.asJSONObject().toString());
+        } catch (IOException ioe) {
+            eventlogger.error("IOException" + ioe.getMessage());
+        }
 
         // Display a list of Groups
         /*Collection<Group> list = Group.getGroupById(groupid);
@@ -140,7 +141,7 @@ public class GroupServlet extends ProxyServlet {
 
         // send response
         elr.setResult(HttpServletResponse.SC_OK);
-        eventlogger.info(elr);
+        eventlogger.info(elr.toString());
         resp.setStatus(HttpServletResponse.SC_OK);
         resp.setContentType(GROUPLIST_CONTENT_TYPE);
         resp.getOutputStream().print(t);*/
@@ -149,14 +150,14 @@ public class GroupServlet extends ProxyServlet {
      * PUT on the &lt;GROUPS&gt; -- not supported.
      */
     @Override
-    public void doPut(HttpServletRequest req, HttpServletResponse resp) throws IOException {
+    public void doPut(HttpServletRequest req, HttpServletResponse resp) {
         EventLogRecord elr = new EventLogRecord(req);
         String message = isAuthorizedForProvisioning(req);
         if (message != null) {
             elr.setMessage(message);
             elr.setResult(HttpServletResponse.SC_FORBIDDEN);
-            eventlogger.info(elr);
-            resp.sendError(HttpServletResponse.SC_FORBIDDEN, message);
+            eventlogger.error(elr.toString());
+            sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);
             return;
         }
         if (isProxyServer()) {
@@ -168,8 +169,8 @@ public class GroupServlet extends ProxyServlet {
             message = "Missing "+BEHALF_HEADER+" header.";
             elr.setMessage(message);
             elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
-            eventlogger.info(elr);
-            resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+            eventlogger.error(elr.toString());
+            sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
             return;
         }
         int groupid = getIdFromPath(req);
@@ -177,8 +178,8 @@ public class GroupServlet extends ProxyServlet {
             message = "Missing or bad groupid.";
             elr.setMessage(message);
             elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
-            eventlogger.info(elr);
-            resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+            eventlogger.error(elr.toString());
+            sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
             return;
         }
         Group oldgup = Group.getGroupById(groupid);
@@ -186,8 +187,8 @@ public class GroupServlet extends ProxyServlet {
             message = "Missing or bad group number.";
             elr.setMessage(message);
             elr.setResult(HttpServletResponse.SC_NOT_FOUND);
-            eventlogger.info(elr);
-            resp.sendError(HttpServletResponse.SC_NOT_FOUND, message);
+            eventlogger.error(elr.toString());
+            sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, message, eventlogger);
             return;
         }
         // Check with the Authorizer
@@ -196,7 +197,7 @@ public class GroupServlet extends ProxyServlet {
             message = "Policy Engine disallows access.";
             elr.setMessage(message);
             elr.setResult(HttpServletResponse.SC_FORBIDDEN);
-            eventlogger.info(elr);
+            eventlogger.error(elr.toString());
             resp.sendError(HttpServletResponse.SC_FORBIDDEN, message);
             return;
         }*/
@@ -207,8 +208,8 @@ public class GroupServlet extends ProxyServlet {
             message = "Incorrect content-type";
             elr.setMessage(message);
             elr.setResult(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE);
-            eventlogger.info(elr);
-            resp.sendError(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE, message);
+            eventlogger.error(elr.toString());
+            sendResponseError(resp, HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE, message, eventlogger);
             return;
         }
         JSONObject jo = getJSONfromInput(req);
@@ -216,31 +217,29 @@ public class GroupServlet extends ProxyServlet {
             message = "Badly formed JSON";
             elr.setMessage(message);
             elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
-            eventlogger.info(elr);
-            resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+            eventlogger.error(elr.toString());
+            sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
             return;
         }
         if (intlogger.isDebugEnabled())
             intlogger.debug(jo.toString());
-        Group gup = null;
+        Group gup;
         try {
             gup = new Group(jo);
         } catch (InvalidObjectException e) {
             message = e.getMessage();
             elr.setMessage(message);
             elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
-            eventlogger.info(elr);
-            resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+            eventlogger.error(elr.toString());
+            sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
             return;
         }
         gup.setGroupid(oldgup.getGroupid());
-
-
         Group gb2 = Group.getGroupMatching(gup, oldgup.getGroupid());
         if (gb2 != null) {
             eventlogger.warn("PROV0011 Creating a duplicate Group: "+gup.getName());
             elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
-            resp.sendError(HttpServletResponse.SC_BAD_REQUEST, "Duplicate Group:"+gup.getName());
+            sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, "Duplicate Group:"+gup.getName(), eventlogger);
             return;
         }
 
@@ -248,16 +247,20 @@ public class GroupServlet extends ProxyServlet {
         if (doUpdate(gup)) {
             // send response
             elr.setResult(HttpServletResponse.SC_OK);
-            eventlogger.info(elr);
+            eventlogger.info(elr.toString());
             resp.setStatus(HttpServletResponse.SC_OK);
             resp.setContentType(GROUPFULL_CONTENT_TYPE);
-            resp.getOutputStream().print(gup.asJSONObject().toString());
+            try {
+                resp.getOutputStream().print(gup.asJSONObject().toString());
+            } catch (IOException ioe) {
+                eventlogger.error("IOException" + ioe.getMessage());
+            }
             provisioningDataChanged();
         } else {
             // Something went wrong with the UPDATE
             elr.setResult(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
-            eventlogger.info(elr);
-            resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, DB_PROBLEM_MSG);
+            eventlogger.error(elr.toString());
+            sendResponseError(resp, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, DB_PROBLEM_MSG, eventlogger);
         }
     }
     /**
@@ -266,14 +269,14 @@ public class GroupServlet extends ProxyServlet {
      * document for details on how this method should be invoked.
      */
     @Override
-    public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
+    public void doPost(HttpServletRequest req, HttpServletResponse resp) {
         EventLogRecord elr = new EventLogRecord(req);
         String message = isAuthorizedForProvisioning(req);
         if (message != null) {
             elr.setMessage(message);
             elr.setResult(HttpServletResponse.SC_FORBIDDEN);
-            eventlogger.info(elr);
-            resp.sendError(HttpServletResponse.SC_FORBIDDEN, message);
+            eventlogger.error(elr.toString());
+            sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);
             return;
         }
         if (isProxyServer()) {
@@ -285,8 +288,8 @@ public class GroupServlet extends ProxyServlet {
             message = "Missing "+BEHALF_HEADER+" header.";
             elr.setMessage(message);
             elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
-            eventlogger.info(elr);
-            resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+            eventlogger.error(elr.toString());
+            sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
             return;
         }
         /*int feedid = getIdFromPath(req);
@@ -294,7 +297,7 @@ public class GroupServlet extends ProxyServlet {
             message = "Missing or bad feed number.";
             elr.setMessage(message);
             elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
-            eventlogger.info(elr);
+            eventlogger.info(elr.toString());
             resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
             return;
         }
@@ -303,7 +306,7 @@ public class GroupServlet extends ProxyServlet {
             message = "Missing or bad feed number.";
             elr.setMessage(message);
             elr.setResult(HttpServletResponse.SC_NOT_FOUND);
-            eventlogger.info(elr);
+            eventlogger.info(elr.toString());
             resp.sendError(HttpServletResponse.SC_NOT_FOUND, message);
             return;
         }*/
@@ -313,7 +316,7 @@ public class GroupServlet extends ProxyServlet {
             message = "Policy Engine disallows access.";
             elr.setMessage(message);
             elr.setResult(HttpServletResponse.SC_FORBIDDEN);
-            eventlogger.info(elr);
+            eventlogger.info(elr.toString());
             resp.sendError(HttpServletResponse.SC_FORBIDDEN, message);
             return;
         }*/
@@ -326,8 +329,8 @@ public class GroupServlet extends ProxyServlet {
             message = "Incorrect content-type";
             elr.setMessage(message);
             elr.setResult(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE);
-            eventlogger.info(elr);
-            resp.sendError(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE, message);
+            eventlogger.error(elr.toString());
+            sendResponseError(resp, HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE, message, eventlogger);
             return;
         }
         JSONObject jo = getJSONfromInput(req);
@@ -335,33 +338,33 @@ public class GroupServlet extends ProxyServlet {
             message = "Badly formed JSON";
             elr.setMessage(message);
             elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
-            eventlogger.info(elr);
-            resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+            eventlogger.error(elr.toString());
+            sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
             return;
         }
         if (intlogger.isDebugEnabled())
             intlogger.debug(jo.toString());
 
-        Group gup = null;
+        Group gup;
         try {
             gup = new Group(jo);
         } catch (InvalidObjectException e) {
             message = e.getMessage();
             elr.setMessage(message);
             elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
-            eventlogger.info(elr);
-            resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+            eventlogger.error(elr.toString());
+            sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
             return;
         }
         //gup.setFeedid(feedid);
-        //sub.setSubscriber(bhdr);    // set from X-ATT-DR-ON-BEHALF-OF header
+        //sub.setSubscriber(bhdr);    // set from X-DMAAP-DR-ON-BEHALF-OF header
 
         // Check if this group already exists; not an error (yet), just warn
         Group gb2 = Group.getGroupMatching(gup);
         if (gb2 != null) {
             eventlogger.warn("PROV0011 Creating a duplicate Group: "+gup.getName());
             elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
-            resp.sendError(HttpServletResponse.SC_BAD_REQUEST, "Duplicate Group:"+gup.getName());
+            sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, "Duplicate Group:"+gup.getName(), eventlogger);
             return;
         }
 
@@ -370,16 +373,20 @@ public class GroupServlet extends ProxyServlet {
         if (doInsert(gup)) {
             // send response
             elr.setResult(HttpServletResponse.SC_CREATED);
-            eventlogger.info(elr);
+            eventlogger.info(elr.toString());
             resp.setStatus(HttpServletResponse.SC_CREATED);
             resp.setContentType(GROUPFULL_CONTENT_TYPE);
-            resp.getOutputStream().print(gup.asJSONObject().toString());
+            try {
+                resp.getOutputStream().print(gup.asJSONObject().toString());
+            } catch (IOException ioe) {
+                eventlogger.error("IOException" + ioe.getMessage());
+            }
             provisioningDataChanged();
         } else {
             // Something went wrong with the INSERT
             elr.setResult(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
-            eventlogger.info(elr);
-            resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, DB_PROBLEM_MSG);
+            eventlogger.error(elr.toString());
+            sendResponseError(resp, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, DB_PROBLEM_MSG, eventlogger);
         }
     }
 }