X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=datarouter-prov%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fdmaap%2Fdatarouter%2Fprovisioning%2FInternalServlet.java;h=efa1c1028b55fd01f5e94cb32a8f8f8884038f93;hb=0ad65c47b4fbddd5d1b653c5e38dcdf84884de9f;hp=8ae9fa2018dc67d96cf79a87e7f94cdde8199019;hpb=52c5c5ab9ba33755e26f06f41de608f825866a53;p=dmaap%2Fdatarouter.git diff --git a/datarouter-prov/src/main/java/org/onap/dmaap/datarouter/provisioning/InternalServlet.java b/datarouter-prov/src/main/java/org/onap/dmaap/datarouter/provisioning/InternalServlet.java index 8ae9fa20..efa1c102 100644 --- a/datarouter-prov/src/main/java/org/onap/dmaap/datarouter/provisioning/InternalServlet.java +++ b/datarouter-prov/src/main/java/org/onap/dmaap/datarouter/provisioning/InternalServlet.java @@ -24,6 +24,10 @@ package org.onap.dmaap.datarouter.provisioning; +import static org.onap.dmaap.datarouter.provisioning.utils.HttpServletUtils.sendResponseError; + +import com.att.eelf.configuration.EELFLogger; +import com.att.eelf.configuration.EELFManager; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; @@ -35,23 +39,19 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.StandardCopyOption; import java.util.Properties; - import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; - import org.json.JSONArray; import org.onap.dmaap.datarouter.provisioning.beans.EventLogRecord; import org.onap.dmaap.datarouter.provisioning.beans.LogRecord; import org.onap.dmaap.datarouter.provisioning.beans.Parameters; import org.onap.dmaap.datarouter.provisioning.eelf.EelfMsgs; -import org.onap.dmaap.datarouter.provisioning.utils.DB; import org.onap.dmaap.datarouter.provisioning.utils.LogfileLoader; +import org.onap.dmaap.datarouter.provisioning.utils.Poker; import org.onap.dmaap.datarouter.provisioning.utils.RLEBitSet; +import org.onap.dmaap.datarouter.provisioning.utils.SynchronizerTask; -import com.att.eelf.configuration.EELFLogger; -import com.att.eelf.configuration.EELFManager; -import static org.onap.dmaap.datarouter.provisioning.utils.HttpServletUtils.sendResponseError; /** *

@@ -128,7 +128,8 @@ import static org.onap.dmaap.datarouter.provisioning.utils.HttpServletUtils.send * * /internal/route/* * * - * URLs under this path are handled via the {@link org.onap.dmaap.datarouter.provisioning.RouteServlet} + * URLs under this path are handled via the + * {@link RouteServlet} * * * @@ -153,6 +154,7 @@ import static org.onap.dmaap.datarouter.provisioning.utils.HttpServletUtils.send * @author Robert Eby * @version $Id: InternalServlet.java,v 1.23 2014/03/24 18:47:10 eby Exp $ */ + @SuppressWarnings("serial") public class InternalServlet extends ProxyServlet { @@ -172,7 +174,8 @@ public class InternalServlet extends ProxyServlet { setIpFqdnRequestIDandInvocationIDForEelf("doDelete", req); eelfLogger.info(EelfMsgs.ENTRY); try { - eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + ""); + eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID, + req.getHeader(BEHALF_HEADER), getIdFromPath(req) + ""); EventLogRecord elr = new EventLogRecord(req); if (!isAuthorizedForInternal(req)) { elr.setMessage(UNAUTHORIZED); @@ -202,7 +205,8 @@ public class InternalServlet extends ProxyServlet { // Something went wrong with the DELETE elr.setResult(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); eventlogger.error(elr.toString()); - sendResponseError(resp, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, DB_PROBLEM_MSG, eventlogger); + sendResponseError(resp, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, + DB_PROBLEM_MSG, eventlogger); } return; } @@ -223,16 +227,17 @@ public class InternalServlet extends ProxyServlet { setIpFqdnRequestIDandInvocationIDForEelf("doGet",req); eelfLogger.info(EelfMsgs.ENTRY); try { - eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + ""); + eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID, + req.getHeader(BEHALF_HEADER), getIdFromPath(req) + ""); String path = req.getPathInfo(); - Properties props = (new DB()).getProperties(); + Properties props = ProvRunner.getProvProperties(); if ("/halt".equals(path) && !req.isSecure()) { // request to halt the server - can ONLY come from localhost String remote = req.getRemoteAddr(); if (remote.equals(props.getProperty("org.onap.dmaap.datarouter.provserver.localhost"))) { intlogger.info("PROV0009 Request to HALT received."); resp.setStatus(HttpServletResponse.SC_OK); - Main.shutdown(); + ProvRunner.shutdown(); } else { intlogger.info("PROV0010 Disallowed request to HALT received from " + remote); resp.setStatus(HttpServletResponse.SC_FORBIDDEN); @@ -250,8 +255,8 @@ public class InternalServlet extends ProxyServlet { } if ("/fetchProv".equals(path) && !req.isSecure()) { // if request came from active_pod or standby_pod and it is not us, reload prov data - SynchronizerTask s = SynchronizerTask.getSynchronizer(); - s.doFetch(); + SynchronizerTask sync = SynchronizerTask.getSynchronizer(); + sync.doFetch(); resp.setStatus(HttpServletResponse.SC_OK); return; } @@ -263,11 +268,11 @@ public class InternalServlet extends ProxyServlet { // fall back to returning the local data if the remote is unreachable intlogger.info("Active server unavailable; falling back to local copy."); } - Poker p = Poker.getPoker(); + Poker pkr = Poker.getPoker(); resp.setStatus(HttpServletResponse.SC_OK); resp.setContentType(PROVFULL_CONTENT_TYPE2); try { - resp.getOutputStream().print(p.getProvisioningString()); + resp.getOutputStream().print(pkr.getProvisioningString()); } catch (IOException ioe) { intlogger.error("PROV0131 InternalServlet.doGet: " + ioe.getMessage(), ioe); } @@ -287,7 +292,7 @@ public class InternalServlet extends ProxyServlet { String logdir = props.getProperty("org.onap.dmaap.datarouter.provserver.accesslog.dir"); String logfile = path.substring(6); if (logdir != null && logfile != null && logfile.indexOf('/') < 0) { - File log = new File(logdir + "/" + logfile); + File log = new File(logdir + File.separator + logfile); if (log.exists() && log.isFile()) { resp.setStatus(HttpServletResponse.SC_OK); resp.setContentType(TEXT_CT); @@ -350,7 +355,8 @@ public class InternalServlet extends ProxyServlet { setIpFqdnRequestIDandInvocationIDForEelf("doPut", req); eelfLogger.info(EelfMsgs.ENTRY); try { - eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + ""); + eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID, + req.getHeader(BEHALF_HEADER), getIdFromPath(req) + ""); EventLogRecord elr = new EventLogRecord(req); if (!isAuthorizedForInternal(req)) { elr.setMessage(UNAUTHORIZED); @@ -369,8 +375,8 @@ public class InternalServlet extends ProxyServlet { if (key.length() > 0) { Parameters param = Parameters.getParameter(key); if (param != null) { - String t = catValues(req.getParameterValues("val")); - param.setValue(t); + String str = catValues(req.getParameterValues("val")); + param.setValue(str); if (doUpdate(param)) { elr.setResult(HttpServletResponse.SC_OK); eventlogger.info(elr.toString()); @@ -381,7 +387,8 @@ public class InternalServlet extends ProxyServlet { // Something went wrong with the UPDATE elr.setResult(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); eventlogger.error(elr.toString()); - sendResponseError(resp, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, DB_PROBLEM_MSG, eventlogger); + sendResponseError(resp, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, + DB_PROBLEM_MSG, eventlogger); } return; } @@ -423,8 +430,8 @@ public class InternalServlet extends ProxyServlet { if (key.length() > 0) { Parameters param = Parameters.getParameter(key); if (param == null) { - String t = catValues(req.getParameterValues("val")); - param = new Parameters(key, t); + String str = catValues(req.getParameterValues("val")); + param = new Parameters(key, str); if (doInsert(param)) { elr.setResult(HttpServletResponse.SC_OK); eventlogger.info(elr.toString()); @@ -435,7 +442,8 @@ public class InternalServlet extends ProxyServlet { // Something went wrong with the INSERT elr.setResult(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); eventlogger.error(elr.toString()); - sendResponseError(resp, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, DB_PROBLEM_MSG, eventlogger); + sendResponseError(resp, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, + DB_PROBLEM_MSG, eventlogger); } return; } @@ -444,14 +452,15 @@ public class InternalServlet extends ProxyServlet { if ("/logs".equals(path) || LOGS.equals(path)) { String ctype = req.getHeader("Content-Type"); - if (ctype == null || !TEXT_CT.equals(ctype)) { + if (!TEXT_CT.equals(ctype)) { elr.setResult(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE); elr.setMessage("Bad media type: " + ctype); resp.setStatus(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE); eventlogger.error(elr.toString()); return; } - String spooldir = (new DB()).getProperties().getProperty("org.onap.dmaap.datarouter.provserver.spooldir"); + String spooldir = + ProvRunner.getProvProperties().getProperty("org.onap.dmaap.datarouter.provserver.spooldir"); String spoolname = String.format("%d-%d-", System.currentTimeMillis(), Thread.currentThread().getId()); synchronized (lock) { // perhaps unnecessary, but it helps make the name unique @@ -483,10 +492,10 @@ public class InternalServlet extends ProxyServlet { } try { fs.close(); - } catch (Exception e) { + } catch (UnsupportedOperationException | IOException e) { intlogger.error("PROV0137 InternalServlet.doPost: " + e.getMessage(), e); } - if (((avail * 100) / total) < 5) { + if (total != 0 && ((avail * 100) / total) < 5) { elr.setResult(HttpServletResponse.SC_SERVICE_UNAVAILABLE); resp.setStatus(HttpServletResponse.SC_SERVICE_UNAVAILABLE); eventlogger.error(elr.toString()); @@ -495,7 +504,8 @@ public class InternalServlet extends ProxyServlet { Path tmppath = Paths.get(spooldir, spoolname); Path donepath = Paths.get(spooldir, "IN." + spoolname); try { - Files.copy(req.getInputStream(), Paths.get(spooldir, spoolname), StandardCopyOption.REPLACE_EXISTING); + Files.copy(req.getInputStream(), Paths.get(spooldir, spoolname), + StandardCopyOption.REPLACE_EXISTING); Files.move(tmppath, donepath, StandardCopyOption.REPLACE_EXISTING); elr.setResult(HttpServletResponse.SC_CREATED); resp.setStatus(HttpServletResponse.SC_CREATED); @@ -510,7 +520,7 @@ public class InternalServlet extends ProxyServlet { if ("/drlogs".equals(path) || "/drlogs/".equals(path)) { // Receive post request and generate log entries String ctype = req.getHeader("Content-Type"); - if (ctype == null || !TEXT_CT.equals(ctype)) { + if (!TEXT_CT.equals(ctype)) { elr.setResult(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE); elr.setMessage("Bad media type: " + ctype); resp.setStatus(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE); @@ -524,10 +534,10 @@ public class InternalServlet extends ProxyServlet { while ((ch = is.read()) >= 0) { bos.write(ch); } - RLEBitSet bs = new RLEBitSet(bos.toString()); // The set of records to retrieve elr.setResult(HttpServletResponse.SC_OK); resp.setStatus(HttpServletResponse.SC_OK); resp.setContentType(TEXT_CT); + RLEBitSet bs = new RLEBitSet(bos.toString()); // The set of records to retrieve LogRecord.printLogRecords(resp.getOutputStream(), bs); eventlogger.info(elr.toString()); } catch (IOException ioe) { @@ -544,11 +554,11 @@ public class InternalServlet extends ProxyServlet { } } - private String catValues(String[] v) { + private String catValues(String[] val) { StringBuilder sb = new StringBuilder(); - if (v != null) { + if (val != null) { String pfx = ""; - for (String s : v) { + for (String s : val) { sb.append(pfx); sb.append(s); pfx = "|"; @@ -559,13 +569,13 @@ public class InternalServlet extends ProxyServlet { private JSONArray generateLogfileList() { JSONArray ja = new JSONArray(); - Properties p = (new DB()).getProperties(); - String s = p.getProperty("org.onap.dmaap.datarouter.provserver.accesslog.dir"); - if (s != null) { - String[] dirs = s.split(","); + Properties prop = ProvRunner.getProvProperties(); + String str = prop.getProperty("org.onap.dmaap.datarouter.provserver.accesslog.dir"); + if (str != null) { + String[] dirs = str.split(","); for (String dir : dirs) { - File f = new File(dir); - String[] list = f.list(); + File file = new File(dir); + String[] list = file.list(); if (list != null) { for (String s2 : list) { if (!s2.startsWith(".")) {