public static final String PROVFULL_CONTENT_TYPE2 = "application/vnd.dmaap-dr.provfeed-full; version=2.0";
public static final String CERT_ATTRIBUTE = "javax.servlet.request.X509Certificate";
- static final String DB_PROBLEM_MSG = "There has been a problem with the DB. It is suggested you try the operation again.";
+ static final String DB_PROBLEM_MSG = "There has been a problem with the DB. It is suggested you "
+ + "try the operation again.";
private static final int DEFAULT_MAX_FEEDS = 10000;
private static final int DEFAULT_MAX_SUBS = 100000;
}
}
+ /**
+ * Get ID from Path.
+ * @param req HTTPServletRequest
+ * @return int ID
+ */
public static int getIdFromPath(HttpServletRequest req) {
String path = req.getPathInfo();
if (path == null || path.length() < 2) {
* Check if an IP address matches a network address.
*
* @param ip the IP address
- * @param s the network address; a bare IP address may be matched also
+ * @param str the network address; a bare IP address may be matched also
* @return true if they intersect
*/
- private static boolean addressMatchesNetwork(InetAddress ip, String s) {
+ private static boolean addressMatchesNetwork(InetAddress ip, String str) {
int mlen = -1;
- int n = s.indexOf('/');
- if (n >= 0) {
- mlen = Integer.parseInt(s.substring(n + 1));
- s = s.substring(0, n);
+ int substr = str.indexOf('/');
+ if (substr >= 0) {
+ mlen = Integer.parseInt(str.substring(substr + 1));
+ str = str.substring(0, substr);
}
try {
- InetAddress i2 = InetAddress.getByName(s);
+ InetAddress i2 = InetAddress.getByName(str);
byte[] b1 = ip.getAddress();
byte[] b2 = i2.getAddress();
if (b1.length != b2.length) {
}
if (mlen > 0) {
byte[] masks = {
- (byte) 0x00, (byte) 0x80, (byte) 0xC0, (byte) 0xE0,
- (byte) 0xF0, (byte) 0xF8, (byte) 0xFC, (byte) 0xFE
+ (byte) 0x00, (byte) 0x80, (byte) 0xC0, (byte) 0xE0,
+ (byte) 0xF0, (byte) 0xF8, (byte) 0xFC, (byte) 0xFE
};
byte mask = masks[mlen % 8];
- for (n = mlen / 8; n < b1.length; n++) {
- b1[n] &= mask;
- b2[n] &= mask;
+ for (substr = mlen / 8; substr < b1.length; substr++) {
+ b1[substr] &= mask;
+ b2[substr] &= mask;
mask = 0;
}
}
- for (n = 0; n < b1.length; n++) {
- if (b1[n] != b2[n]) {
+ for (substr = 0; substr < b1.length; substr++) {
+ if (b1[substr] != b2[substr]) {
return false;
}
}
*/
static void provisioningDataChanged() {
long now = System.currentTimeMillis();
- Poker p = Poker.getPoker();
- p.setTimers(now + (pokeTimer1 * 1000L), now + (pokeTimer2 * 1000L));
+ Poker pkr = Poker.getPoker();
+ pkr.setTimers(now + (pokeTimer1 * 1000L), now + (pokeTimer2 * 1000L));
}
/**
}
/**
- * Gets the FQDN of the initially STANDBY_POD provisioning server (POD). Note: this used to be called isStandbyPOD(),
+ * Gets the FQDN of the initially STANDBY_POD provisioning server (POD).Note: this used to be called isStandbyPOD(),
* however, that is a misnomer, as the standby status could shift to the active POD without these parameters
* changing. Hence, the function names have been changed to more accurately reflect their purpose.
*
}
private static boolean getBoolean(Map<String, String> map, String name) {
- String s = map.get(name);
- return "true".equalsIgnoreCase(s);
+ String str = map.get(name);
+ return "true".equalsIgnoreCase(str);
}
private static String getString(Map<String, String> map, String name, String dflt) {
- String s = map.get(name);
- return (s != null) ? s : dflt;
+ String str = map.get(name);
+ return (str != null) ? str : dflt;
}
private static int getInt(Map<String, String> map, String name, int dflt) {
try {
- String s = map.get(name);
- return Integer.parseInt(s);
+ String str = map.get(name);
+ return Integer.parseInt(str);
} catch (NumberFormatException e) {
return dflt;
}
private static Set<String> getSet(Map<String, String> map, String name) {
Set<String> set = new HashSet<>();
- String s = map.get(name);
- if (s != null) {
- String[] pp = s.split("\\|");
+ String str = map.get(name);
+ if (str != null) {
+ String[] pp = str.split("\\|");
if (pp != null) {
for (String t : pp) {
String t2 = t.trim();
this("", "1.0");
}
- ContentHeader(String t, String v) {
- type = t.trim();
- map.put("version", v);
+ ContentHeader(String headertype, String version) {
+ type = headertype.trim();
+ map.put("version", version);
}
public String getType() {
}
String getAttribute(String key) {
- String s = map.get(key);
- if (s == null) {
- s = "";
+ String str = map.get(key);
+ if (str == null) {
+ str = "";
}
- return s;
+ return str;
}
}
*/
ContentHeader getContentHeader(HttpServletRequest req) {
ContentHeader ch = new ContentHeader();
- String s = req.getHeader("Content-Type");
- if (s != null) {
- String[] pp = s.split(";");
+ String str = req.getHeader("Content-Type");
+ if (str != null) {
+ String[] pp = str.split(";");
ch.type = pp[0].trim();
for (int i = 1; i < pp.length; i++) {
int ix = pp[i].indexOf('=');
if (ix > 0) {
- String k = pp[i].substring(0, ix).trim();
- String v = pp[i].substring(ix + 1).trim();
- ch.map.put(k, v);
+ String type = pp[i].substring(0, ix).trim();
+ String version = pp[i].substring(ix + 1).trim();
+ ch.map.put(type, version);
} else {
ch.map.put(pp[i].trim(), "");
}
@Override
public String getFeedOwner(String feedId) {
try {
- int n = Integer.parseInt(feedId);
- Feed f = Feed.getFeedById(n);
- if (f != null) {
- return f.getPublisher();
+ int intID = Integer.parseInt(feedId);
+ Feed feed = Feed.getFeedById(intID);
+ if (feed != null) {
+ return feed.getPublisher();
}
} catch (NumberFormatException e) {
// ignore
@Override
public String getFeedClassification(String feedId) {
try {
- int n = Integer.parseInt(feedId);
- Feed f = Feed.getFeedById(n);
- if (f != null) {
- return f.getAuthorization().getClassification();
+ int intID = Integer.parseInt(feedId);
+ Feed feed = Feed.getFeedById(intID);
+ if (feed != null) {
+ return feed.getAuthorization().getClassification();
}
} catch (NumberFormatException e) {
// ignore
@Override
public String getSubscriptionOwner(String subId) {
try {
- int n = Integer.parseInt(subId);
- Subscription s = Subscription.getSubscriptionById(n);
- if (s != null) {
- return s.getSubscriber();
+ int intID = Integer.parseInt(subId);
+ Subscription sub = Subscription.getSubscriptionById(intID);
+ if (sub != null) {
+ return sub.getSubscriber();
}
} catch (NumberFormatException e) {
// ignore
private boolean isUserMemberOfGroup(Group group, String user) {
String groupDetails = group.getMembers().replace("]", "").replace("[", "");
- String[] s = groupDetails.split("},");
+ String[] str = groupDetails.split("},");
- for (String value : s) {
+ for (String value : str) {
JSONObject jsonObj;
try {
jsonObj = new JSONObject(value + "}");
@Override
public String getGroupByFeedGroupId(String owner, String feedId) {
try {
- Feed f = Feed.getFeedById(Integer.parseInt(feedId));
- if (f != null) {
- int groupid = f.getGroupid();
+ Feed feed = Feed.getFeedById(Integer.parseInt(feedId));
+ if (feed != null) {
+ int groupid = feed.getGroupid();
if (groupid > 0) {
Group group = Group.getGroupById(groupid);
if (group != null && isUserMemberOfGroup(group, owner)) {
@Override
public String getGroupBySubGroupId(String owner, String subId) {
try {
- int n = Integer.parseInt(subId);
- Subscription s = Subscription.getSubscriptionById(n);
- if (s != null) {
- int groupid = s.getGroupid();
+ int intID = Integer.parseInt(subId);
+ Subscription sub = Subscription.getSubscriptionById(intID);
+ if (sub != null) {
+ int groupid = sub.getGroupid();
if (groupid > 0) {
Group group = Group.getGroupById(groupid);
if (group != null && isUserMemberOfGroup(group, owner)) {
/*
* AAF changes: TDP EPIC US# 307413
- * @Method - getSubscriberPermission - Forming permission string for subscription part to check AAF access in CADI Framework
+ * @Method - getSubscriberPermission - Forming permission string for subscription part to check
+ * AAF access in CADI Framework
* @Params - aafInstance Passing aafInstance as it's used in permission string
* @Params - userAction Passing CONST values to set different actions in permission string
*/
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.IOException;
+import java.io.InvalidObjectException;
+import java.util.List;
+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.beans.EventLogRecord;
import org.onap.dmaap.datarouter.provisioning.beans.Feed;
import org.onap.dmaap.datarouter.provisioning.eelf.EelfMsgs;
import org.onap.dmaap.datarouter.provisioning.utils.JSONUtilities;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.io.InvalidObjectException;
-import java.util.List;
-import static org.onap.dmaap.datarouter.provisioning.utils.HttpServletUtils.sendResponseError;
/**
* This servlet handles provisioning for the <drFeedsURL> which is the URL on the provisioning server used to
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) + "");
String message = "DELETE not allowed for the drFeedsURL.";
EventLogRecord elr = new EventLogRecord(req);
elr.setMessage(message);
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) + "");
EventLogRecord elr = new EventLogRecord(req);
String message = isAuthorizedForProvisioning(req);
if (message != null) {
} else {
list = Feed.getFilteredFeedUrlList("all", null);
}
- String t = JSONUtilities.createJSONArray(list);
+ String strList = JSONUtilities.createJSONArray(list);
// send response
elr.setResult(HttpServletResponse.SC_OK);
eventlogger.info(elr.toString());
resp.setStatus(HttpServletResponse.SC_OK);
resp.setContentType(FEEDLIST_CONTENT_TYPE);
try {
- resp.getOutputStream().print(t);
+ resp.getOutputStream().print(strList);
} catch (IOException ioe) {
eventlogger.error("PROV0112 DRFeedServlet.doGet " + ioe.getMessage(), ioe);
}
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) + "");
String message = "PUT not allowed for the drFeedsURL.";
EventLogRecord elr = new EventLogRecord(req);
elr.setMessage(message);
*/
String aafInstance = feed.getAafInstance();
if (Boolean.parseBoolean(isCadiEnabled)) {
- if ((aafInstance == null || "".equals(aafInstance) || ("legacy".equalsIgnoreCase(aafInstance)) && "true".equalsIgnoreCase(req.getHeader(EXCLUDE_AAF_HEADER)))) {
+ if ((aafInstance == null || "".equals(aafInstance) || ("legacy".equalsIgnoreCase(aafInstance))
+ && "true".equalsIgnoreCase(req.getHeader(EXCLUDE_AAF_HEADER)))) {
// Check with the Authorizer
AuthorizationResponse aresp = authz.decide(req);
if (!aresp.isAuthorized()) {
}
} else {
if ("true".equalsIgnoreCase(req.getHeader(EXCLUDE_AAF_HEADER))) {
- message = "DRFeedsServlet.doPost() -Invalid request exclude_AAF should not be true if passing AAF_Instance value= " + aafInstance;
+ message = "DRFeedsServlet.doPost() -Invalid request exclude_AAF should not be true if passing "
+ + "AAF_Instance value= " + aafInstance;
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_FORBIDDEN);
eventlogger.error(elr.toString());
* @version $Id: FeedLogServlet.java,v 1.1 2013/04/26 21:00:24 eby Exp $\r
*/\r
@SuppressWarnings("serial")\r
+\r
public class FeedLogServlet extends LogServlet {\r
\r
public FeedLogServlet() {\r
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.IOException;
import java.io.InvalidObjectException;
-
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-
import org.json.JSONException;
import org.json.JSONObject;
+
import org.onap.dmaap.datarouter.authz.AuthorizationResponse;
import org.onap.dmaap.datarouter.provisioning.beans.EventLogRecord;
import org.onap.dmaap.datarouter.provisioning.beans.Feed;
import org.onap.dmaap.datarouter.provisioning.eelf.EelfMsgs;
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
-import static org.onap.dmaap.datarouter.provisioning.utils.HttpServletUtils.sendResponseError;
/**
* This servlet handles provisioning for the <feedURL> which is generated by the provisioning
* @version $Id$
*/
@SuppressWarnings("serial")
+
public class FeedServlet extends ProxyServlet {
//Adding EELF Logger Rally:US664892
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);
String message = isAuthorizedForProvisioning(req);
if (message != null) {
eelfLogger.info(EelfMsgs.EXIT);
}
}
+
/**
* Get information on the feed at the address /feed/<feednumber>.
* See the <i>Retrieving Information about a Feed</i> section in the <b>Provisioning API</b>
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) + "");
EventLogRecord elr = new EventLogRecord(req);
String message = isAuthorizedForProvisioning(req);
if (message != null) {
eelfLogger.info(EelfMsgs.EXIT);
}
}
+
/**
* PUT on the <feedURL> for a feed.
* See the <i>Modifying a Feed</i> section in the <b>Provisioning API</b>
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);
String message = isAuthorizedForProvisioning(req);
if (message != null) {
sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
return;
}
- if (intlogger.isDebugEnabled())
+ if (intlogger.isDebugEnabled()) {
intlogger.debug(jo.toString());
+ }
Feed feed;
try {
feed = new Feed(jo);
feed.setFeedid(feedid);
feed.setPublisher(bhdr); // set from X-DMAAP-DR-ON-BEHALF-OF header
- String subjectgroup = (req.getHeader("X-DMAAP-DR-ON-BEHALF-OF-GROUP")); //Adding for group feature:Rally US708115
+ //Adding for group feature:Rally US708115
+ String subjectgroup = (req.getHeader("X-DMAAP-DR-ON-BEHALF-OF-GROUP"));
if (!oldFeed.getPublisher().equals(feed.getPublisher()) && subjectgroup == null) {
message = "This feed must be modified by the same publisher that created it.";
elr.setMessage(message);
return;
}
// US DSCDR-19 for DCAE if version is not null, version can't be changed
- if ((oldFeed.getVersion() != null) && (feed.getVersion() != null) && !oldFeed.getVersion().equals(feed.getVersion())) {
- message = "The version of the feed may not be updated.";
- elr.setMessage(message);
- elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
- eventlogger.error(elr.toString());
- sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
- return;
+ if ((oldFeed.getVersion() != null) && (feed.getVersion() != null)
+ && !oldFeed.getVersion().equals(feed.getVersion())) {
+ message = "The version of the feed may not be updated.";
+ elr.setMessage(message);
+ elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
+ eventlogger.error(elr.toString());
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
+ return;
}
/*
eelfLogger.info(EelfMsgs.EXIT);
}
}
+
/**
* POST on the <feedURL> -- not supported.
*/
eventlogger.error(elr.toString());
sendResponseError(resp, HttpServletResponse.SC_METHOD_NOT_ALLOWED, message, eventlogger);
} finally {
- eelfLogger.info(EelfMsgs.EXIT);
- }
+ eelfLogger.info(EelfMsgs.EXIT);
+ }
}
}
package org.onap.dmaap.datarouter.provisioning;
+import static org.onap.dmaap.datarouter.provisioning.utils.HttpServletUtils.sendResponseError;
+
import java.io.IOException;
import java.io.InvalidObjectException;
-
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-
import org.json.JSONObject;
+
import org.onap.dmaap.datarouter.provisioning.beans.EventLogRecord;
import org.onap.dmaap.datarouter.provisioning.beans.Group;
-import static org.onap.dmaap.datarouter.provisioning.utils.HttpServletUtils.sendResponseError;
+
/**
* This servlet handles provisioning for the <groups> which is generated by the provisioning
eventlogger.error(elr.toString());
sendResponseError(resp, HttpServletResponse.SC_METHOD_NOT_ALLOWED, message, eventlogger);
}
+
/**
* GET on the the list of groups to a feed/sub.
* See the <i>Groups Collection Query</i> section in the <b>Provisioning API</b>
}
}
+
/**
* PUT on the <GROUPS> -- not supported.
*/
sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
return;
}
- if (intlogger.isDebugEnabled())
+ if (intlogger.isDebugEnabled()) {
intlogger.debug(jo.toString());
+ }
Group gup;
try {
gup = new Group(jo);
gup.setGroupid(oldgup.getGroupid());
Group gb2 = Group.getGroupMatching(gup, oldgup.getGroupid());
if (gb2 != null) {
- eventlogger.warn("PROV0011 Creating a duplicate Group: "+gup.getName());
+ eventlogger.warn("PROV0011 Creating a duplicate Group: " + gup.getName());
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
- sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, "Duplicate Group:"+gup.getName(), eventlogger);
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST,"Duplicate Group:" + gup.getName(), eventlogger);
return;
}
sendResponseError(resp, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, DB_PROBLEM_MSG, eventlogger);
}
}
+
/**
* POST on the <groups> -- create a new GROUPS to a feed.
* See the <i>Creating a GROUPS</i> section in the <b>Provisioning API</b>
ContentHeader ch = getContentHeader(req);
String ver = ch.getAttribute("version");
if (!ch.getType().equals(GROUP_BASECONTENT_TYPE) || !(ver.equals("1.0") || ver.equals("2.0"))) {
- intlogger.debug("Content-type is: "+req.getHeader("Content-Type"));
+ intlogger.debug("Content-type is: " + req.getHeader("Content-Type"));
message = "Incorrect content-type";
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE);
sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
return;
}
- if (intlogger.isDebugEnabled())
+ if (intlogger.isDebugEnabled()) {
intlogger.debug(jo.toString());
+ }
Group gup;
try {
// 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());
+ eventlogger.warn("PROV0011 Creating a duplicate Group: " + gup.getName());
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
- sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, "Duplicate Group:"+gup.getName(), eventlogger);
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST,"Duplicate Group:" + gup.getName(), eventlogger);
return;
}
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;
import org.onap.dmaap.datarouter.provisioning.utils.LogfileLoader;
import org.onap.dmaap.datarouter.provisioning.utils.RLEBitSet;
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
-import static org.onap.dmaap.datarouter.provisioning.utils.HttpServletUtils.sendResponseError;
/**
* <p>
* <tr class="altColor">
* <td class="colFirst">/internal/route/*</td>
* <td class="colOne">*</td>
- * <td class="colLast">URLs under this path are handled via the {@link org.onap.dmaap.datarouter.provisioning.RouteServlet}</td>
+ * <td class="colLast">URLs under this path are handled via the
+ * {@link org.onap.dmaap.datarouter.provisioning.RouteServlet}</td>
* </tr>
* </table>
* </div>
* @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 {
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);
// 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;
}
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();
if ("/halt".equals(path) && !req.isSecure()) {
}
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;
}
// 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);
}
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);
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());
// 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;
}
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());
// 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;
}
eventlogger.error(elr.toString());
return;
}
- String spooldir = (new DB()).getProperties().getProperty("org.onap.dmaap.datarouter.provserver.spooldir");
+ String spooldir =
+ (new DB()).getProperties().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
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);
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) {
}
}
- 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 = "|";
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 = (new DB()).getProperties();
+ 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(".")) {
\r
package org.onap.dmaap.datarouter.provisioning;\r
\r
+import static org.onap.dmaap.datarouter.provisioning.utils.HttpServletUtils.sendResponseError;\r
+\r
+import com.att.eelf.configuration.EELFLogger;\r
+import com.att.eelf.configuration.EELFManager;\r
import java.io.IOException;\r
import java.sql.Connection;\r
import java.sql.ResultSet;\r
import java.util.Date;\r
import java.util.HashMap;\r
import java.util.Map;\r
-\r
import javax.servlet.ServletOutputStream;\r
import javax.servlet.http.HttpServletRequest;\r
import javax.servlet.http.HttpServletResponse;\r
import org.onap.dmaap.datarouter.provisioning.utils.DB;\r
import org.onap.dmaap.datarouter.provisioning.utils.LOGJSONObject;\r
\r
-import com.att.eelf.configuration.EELFLogger;\r
-import com.att.eelf.configuration.EELFManager;\r
\r
-import static org.onap.dmaap.datarouter.provisioning.utils.HttpServletUtils.sendResponseError;\r
+\r
+\r
\r
/**\r
* This servlet handles requests to the <feedLogURL> and <subLogURL>,\r
* @version $Id: LogServlet.java,v 1.11 2014/03/28 17:27:02 eby Exp $\r
*/\r
@SuppressWarnings("serial")\r
+\r
public class LogServlet extends BaseServlet {\r
//Adding EELF Logger Rally:US664892\r
private static EELFLogger eelfLogger = EELFManager.getInstance().getLogger(LogServlet.class);\r
private final String[] fields;\r
private boolean firstrow;\r
\r
- public RowHandler(ServletOutputStream out, String fieldparam, boolean b) {\r
+ /**\r
+ * Row setter.\r
+ * @param out ServletOutputStream\r
+ * @param fieldparam String field\r
+ * @param bool boolean\r
+ */\r
+ public RowHandler(ServletOutputStream out, String fieldparam, boolean bool) {\r
this.out = out;\r
- this.firstrow = b;\r
+ this.firstrow = bool;\r
this.fields = (fieldparam != null) ? fieldparam.split(":") : null;\r
}\r
+\r
+ /**\r
+ * Handling row from DB.\r
+ * @param rs DB Resultset\r
+ */\r
public void handleRow(ResultSet rs) {\r
try {\r
LOGJSONable js = buildJSONable(rs);\r
// filter out unwanted fields\r
LOGJSONObject j2 = new LOGJSONObject();\r
for (String key : fields) {\r
- Object v = jo.opt(key);\r
- if (v != null)\r
- j2.put(key, v);\r
+ Object val = jo.opt(key);\r
+ if (val != null) {\r
+ j2.put(key, val);\r
+ }\r
}\r
jo = j2;\r
}\r
- String t = firstrow ? "\n" : ",\n";\r
- t += jo.toString();\r
- out.print(t);\r
+ String str = firstrow ? "\n" : ",\n";\r
+ str += jo.toString();\r
+ out.print(str);\r
firstrow = false;\r
} catch (Exception exception) {\r
intlogger.info("Failed to handle row. Exception = " + exception.getMessage(),exception);\r
}\r
}\r
+\r
public abstract LOGJSONable buildJSONable(ResultSet rs) throws SQLException;\r
}\r
+\r
public class PublishRecordRowHandler extends RowHandler {\r
- public PublishRecordRowHandler(ServletOutputStream out, String fields, boolean b) {\r
- super(out, fields, b);\r
+ public PublishRecordRowHandler(ServletOutputStream out, String fields, boolean bool) {\r
+ super(out, fields, bool);\r
}\r
+\r
@Override\r
public LOGJSONable buildJSONable(ResultSet rs) throws SQLException {\r
return new PublishRecord(rs);\r
}\r
}\r
+\r
public class DeliveryRecordRowHandler extends RowHandler {\r
- public DeliveryRecordRowHandler(ServletOutputStream out, String fields, boolean b) {\r
- super(out, fields, b);\r
+ public DeliveryRecordRowHandler(ServletOutputStream out, String fields, boolean bool) {\r
+ super(out, fields, bool);\r
}\r
+\r
@Override\r
public LOGJSONable buildJSONable(ResultSet rs) throws SQLException {\r
return new DeliveryRecord(rs);\r
}\r
}\r
+\r
public class ExpiryRecordRowHandler extends RowHandler {\r
- public ExpiryRecordRowHandler(ServletOutputStream out, String fields, boolean b) {\r
- super(out, fields, b);\r
+ public ExpiryRecordRowHandler(ServletOutputStream out, String fields, boolean bool) {\r
+ super(out, fields, bool);\r
}\r
+\r
@Override\r
public LOGJSONable buildJSONable(ResultSet rs) throws SQLException {\r
return new ExpiryRecord(rs);\r
setIpFqdnRequestIDandInvocationIDForEelf("doDelete", req);\r
eelfLogger.info(EelfMsgs.ENTRY);\r
try {\r
- eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");\r
+ eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID,\r
+ req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");\r
String message = "DELETE not allowed for the logURL.";\r
EventLogRecord elr = new EventLogRecord(req);\r
elr.setMessage(message);\r
eelfLogger.info(EelfMsgs.EXIT);\r
}\r
}\r
+\r
/**\r
* GET a logging URL -- retrieve logging data for a feed or subscription.\r
* See the <b>Logging API</b> document for details on how this method should be invoked.\r
setIpFqdnRequestIDandInvocationIDForEelf("doGet", req);\r
eelfLogger.info(EelfMsgs.ENTRY);\r
try {\r
- eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");\r
+ eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID,\r
+ req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");\r
int id = getIdFromPath(req);\r
if (id < 0) {\r
- sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, "Missing or bad feed/subscription number.", eventlogger);\r
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST,\r
+ "Missing or bad feed/subscription number.", eventlogger);\r
return;\r
}\r
Map<String, String> map = buildMapFromRequest(req);\r
if (map.get("err") != null) {\r
- sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, "Invalid arguments: " + map.get("err"), eventlogger);\r
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST,\r
+ "Invalid arguments: " + map.get("err"), eventlogger);\r
return;\r
}\r
// check Accept: header??\r
eelfLogger.info(EelfMsgs.EXIT);\r
}\r
}\r
+\r
/**\r
* PUT a logging URL -- not supported.\r
*/\r
setIpFqdnRequestIDandInvocationIDForEelf("doPut", req);\r
eelfLogger.info(EelfMsgs.ENTRY);\r
try {\r
- eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID, req.getHeader(BEHALF_HEADER),getIdFromPath(req)+"");\r
+ eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID,\r
+ req.getHeader(BEHALF_HEADER),getIdFromPath(req) + "");\r
String message = "PUT not allowed for the logURL.";\r
EventLogRecord elr = new EventLogRecord(req);\r
elr.setMessage(message);\r
eelfLogger.info(EelfMsgs.EXIT);\r
}\r
}\r
+\r
/**\r
* POST a logging URL -- not supported.\r
*/\r
\r
private Map<String, String> buildMapFromRequest(HttpServletRequest req) {\r
Map<String, String> map = new HashMap<>();\r
- String s = req.getParameter("type");\r
- if (s != null) {\r
- if ("pub".equals(s) || "del".equals(s) || "exp".equals(s)) {\r
- map.put("type", s);\r
+ String str = req.getParameter("type");\r
+ if (str != null) {\r
+ if ("pub".equals(str) || "del".equals(str) || "exp".equals(str)) {\r
+ map.put("type", str);\r
} else {\r
map.put("err", "bad type");\r
return map;\r
map.put(REASON_SQL, "");\r
map.put(FILENAMESQL, "");\r
\r
- s = req.getParameter("publishId");\r
- if (s != null) {\r
- if (s.indexOf("'") >= 0) {\r
+ str = req.getParameter("publishId");\r
+ if (str != null) {\r
+ if (str.indexOf("'") >= 0) {\r
map.put("err", "bad publishId");\r
return map;\r
}\r
- map.put(PUBLISHSQL, " AND PUBLISH_ID = '"+s+"'");\r
+ map.put(PUBLISHSQL, " AND PUBLISH_ID = '" + str + "'");\r
}\r
\r
- s = req.getParameter("filename");\r
- if (s != null) {\r
- map.put(FILENAMESQL, " AND FILENAME = '" + s + "'");\r
+ str = req.getParameter("filename");\r
+ if (str != null) {\r
+ map.put(FILENAMESQL, " AND FILENAME = '" + str + "'");\r
}\r
\r
- s = req.getParameter("statusCode");\r
- if (s != null) {\r
+ str = req.getParameter("statusCode");\r
+ if (str != null) {\r
String sql = null;\r
- switch (s) {\r
+ switch (str) {\r
case "success":\r
sql = " AND STATUS >= 200 AND STATUS < 300";\r
break;\r
break;\r
default:\r
try {\r
- int n = Integer.parseInt(s);\r
- if ((n >= 100 && n < 600) || (n == -1)) {\r
- sql = " AND STATUS = " + n;\r
+ int statusCode = Integer.parseInt(str);\r
+ if ((statusCode >= 100 && statusCode < 600) || (statusCode == -1)) {\r
+ sql = " AND STATUS = " + statusCode;\r
}\r
} catch (NumberFormatException e) {\r
intlogger.error("Failed to parse input", e);\r
map.put(RESULTSQL, sql.replaceAll("STATUS", "RESULT"));\r
}\r
\r
- s = req.getParameter("expiryReason");\r
- if (s != null) {\r
+ str = req.getParameter("expiryReason");\r
+ if (str != null) {\r
map.put("type", "exp");\r
- if ("notRetryable".equals(s)) {\r
+ if ("notRetryable".equals(str)) {\r
map.put(REASON_SQL, " AND REASON = 'notRetryable'");\r
- } else if ("retriesExhausted".equals(s)) {\r
+ } else if ("retriesExhausted".equals(str)) {\r
map.put(REASON_SQL, " AND REASON = 'retriesExhausted'");\r
- } else if ("diskFull".equals(s)) {\r
+ } else if ("diskFull".equals(str)) {\r
map.put(REASON_SQL, " AND REASON = 'diskFull'");\r
- } else if ("other".equals(s)) {\r
+ } else if ("other".equals(str)) {\r
map.put(REASON_SQL, " AND REASON = 'other'");\r
} else {\r
map.put("err", "bad expiryReason");\r
map.put(TIMESQL, String.format(" AND EVENT_TIME >= %d AND EVENT_TIME <= %d", stime, etime));\r
return map;\r
}\r
- private long getTimeFromParam(final String s) {\r
- if (s == null)\r
+\r
+ private long getTimeFromParam(final String str) {\r
+ if (str == null) {\r
return 0;\r
+ }\r
try {\r
// First, look for an RFC 3339 date\r
- String fmt = (s.indexOf('.') > 0) ? FMT_2 : FMT_1;\r
+ String fmt = (str.indexOf('.') > 0) ? FMT_2 : FMT_1;\r
SimpleDateFormat sdf = new SimpleDateFormat(fmt);\r
- Date d = sdf.parse(s);\r
- return d.getTime();\r
+ Date date = sdf.parse(str);\r
+ return date.getTime();\r
} catch (ParseException parseException) {\r
intlogger.error("Exception in getting Time :- " + parseException.getMessage(),parseException);\r
}\r
try {\r
// Also allow a long (in ms); useful for testing\r
- return Long.parseLong(s);\r
+ return Long.parseLong(str);\r
} catch (NumberFormatException numberFormatException) {\r
intlogger.error("Exception in getting Time :- " + numberFormatException.getMessage(),numberFormatException);\r
}\r
- intlogger.info("Error parsing time=" + s);\r
+ intlogger.info("Error parsing time=" + str);\r
return -1;\r
}\r
\r
getRecordsForSQL(sql, rh);\r
}\r
}\r
+\r
private void getDeliveryRecordsForFeed(int feedid, RowHandler rh, Map<String, String> map) {\r
String type = map.get("type");\r
if ("all".equals(type) || "del".equals(type)) {\r
getRecordsForSQL(sql, rh);\r
}\r
}\r
+\r
private void getDeliveryRecordsForSubscription(int subid, RowHandler rh, Map<String, String> map) {\r
String type = map.get("type");\r
if ("all".equals(type) || "del".equals(type)) {\r
getRecordsForSQL(sql, rh);\r
}\r
}\r
+\r
private void getExpiryRecordsForFeed(int feedid, RowHandler rh, Map<String, String> map) {\r
String type = map.get("type");\r
if ("all".equals(type) || "exp".equals(type)) {\r
}\r
}\r
}\r
+\r
private void getExpiryRecordsForSubscription(int subid, RowHandler rh, Map<String, String> map) {\r
String type = map.get("type");\r
if ("all".equals(type) || "exp".equals(type)) {\r
} catch (SQLException sqlException) {\r
intlogger.info("Failed to get Records. Exception = " + sqlException.getMessage(),sqlException);\r
} finally {\r
- if (conn != null)\r
+ if (conn != null) {\r
db.release(conn);\r
+ }\r
}\r
intlogger.debug("Time: " + (System.currentTimeMillis() - start) + " ms");\r
}\r
package org.onap.dmaap.datarouter.provisioning;
-
import com.att.eelf.configuration.EELFLogger;
import com.att.eelf.configuration.EELFManager;
+import java.io.IOException;
+import java.io.InputStream;
+import java.security.Security;
+import java.util.EnumSet;
+import java.util.Properties;
+import java.util.Timer;
+import javax.servlet.DispatcherType;
import org.eclipse.jetty.http.HttpVersion;
-import org.eclipse.jetty.server.*;
+import org.eclipse.jetty.server.Connector;
+import org.eclipse.jetty.server.Handler;
+import org.eclipse.jetty.server.HttpConfiguration;
+import org.eclipse.jetty.server.HttpConnectionFactory;
+import org.eclipse.jetty.server.NCSARequestLog;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.ServerConnector;
+import org.eclipse.jetty.server.SslConnectionFactory;
import org.eclipse.jetty.server.handler.ContextHandlerCollection;
import org.eclipse.jetty.server.handler.DefaultHandler;
import org.eclipse.jetty.server.handler.HandlerCollection;
import org.eclipse.jetty.util.ssl.SslContextFactory;
import org.eclipse.jetty.util.thread.QueuedThreadPool;
import org.onap.aaf.cadi.PropAccess;
-import org.onap.dmaap.datarouter.provisioning.utils.*;
-import javax.servlet.DispatcherType;
-import java.io.IOException;
-import java.io.InputStream;
-import java.security.Security;
-import java.util.EnumSet;
-import java.util.Properties;
-import java.util.Timer;
+import org.onap.dmaap.datarouter.provisioning.utils.DB;
+import org.onap.dmaap.datarouter.provisioning.utils.DRProvCadiFilter;
+import org.onap.dmaap.datarouter.provisioning.utils.LogfileLoader;
+import org.onap.dmaap.datarouter.provisioning.utils.PurgeLogDirTask;
+import org.onap.dmaap.datarouter.provisioning.utils.ThrottleFilter;
/**
* <p>
public class Main {
/**
- * The truststore to use if none is specified
+ * The truststore to use if none is specified.
*/
static final String DEFAULT_TRUSTSTORE = "/opt/java/jdk/jdk180/jre/lib/security/cacerts";
static final String KEYSTORE_TYPE_PROPERTY = "org.onap.dmaap.datarouter.provserver.keystore.type";
static final String KEYSTORE_PASS_PROPERTY = "org.onap.dmaap.datarouter.provserver.keystore.password";
static final String TRUSTSTORE_PATH_PROPERTY = "org.onap.dmaap.datarouter.provserver.truststore.path";
static final String TRUSTSTORE_PASS_PROPERTY = "org.onap.dmaap.datarouter.provserver.truststore.password";
- public static final EELFLogger intlogger = EELFManager.getInstance().getLogger("org.onap.dmaap.datarouter.provisioning.internal");
+ public static final EELFLogger intlogger = EELFManager.getInstance()
+ .getLogger("org.onap.dmaap.datarouter.provisioning.internal");
/**
- * The one and only {@link Server} instance in this JVM
+ * The one and only {@link Server} instance in this JVM.
*/
private static Server server;
*/
public static void main(String[] args) throws Exception {
Security.setProperty("networkaddress.cache.ttl", "4");
- Properties provProperties = (new DB()).getProperties();
// Check DB is accessible and contains the expected tables
if (!checkDatabase()) {
System.exit(1);
intlogger.info("PROV0000 **** AT&T Data Router Provisioning Server starting....");
Security.setProperty("networkaddress.cache.ttl", "4");
- int httpPort = Integer.parseInt(provProperties.getProperty("org.onap.dmaap.datarouter.provserver.http.port", "8080"));
- int httpsPort = Integer.parseInt(provProperties.getProperty("org.onap.dmaap.datarouter.provserver.https.port", "8443"));
+ Properties provProperties = (new DB()).getProperties();
+ int httpPort = Integer.parseInt(provProperties
+ .getProperty("org.onap.dmaap.datarouter.provserver.http.port", "8080"));
+ final int httpsPort = Integer.parseInt(provProperties
+ .getProperty("org.onap.dmaap.datarouter.provserver.https.port", "8443"));
// Server's thread pool
QueuedThreadPool queuedThreadPool = new QueuedThreadPool();
// Request log configuration
NCSARequestLog ncsaRequestLog = new NCSARequestLog();
- ncsaRequestLog.setFilename(provProperties.getProperty("org.onap.dmaap.datarouter.provserver.accesslog.dir") + "/request.log.yyyy_mm_dd");
+ ncsaRequestLog.setFilename(provProperties
+ .getProperty("org.onap.dmaap.datarouter.provserver.accesslog.dir")
+ + "/request.log.yyyy_mm_dd");
ncsaRequestLog.setFilenameDateFormat("yyyyMMdd");
ncsaRequestLog.setRetainDays(90);
ncsaRequestLog.setAppend(true);
//HTTP Connector
HandlerCollection handlerCollection;
- try (ServerConnector httpServerConnector = new ServerConnector(server, new HttpConnectionFactory(httpConfiguration))) {
+ try (ServerConnector httpServerConnector =
+ new ServerConnector(server, new HttpConnectionFactory(httpConfiguration))) {
httpServerConnector.setPort(httpPort);
httpServerConnector.setAcceptQueueSize(2);
httpServerConnector.setIdleTimeout(300000);
sslContextFactory.setKeyStoreType(provProperties.getProperty(KEYSTORE_TYPE_PROPERTY, "jks"));
sslContextFactory.setKeyStorePath(provProperties.getProperty(KEYSTORE_PATH_PROPERTY));
sslContextFactory.setKeyStorePassword(provProperties.getProperty(KEYSTORE_PASS_PROPERTY));
- sslContextFactory.setKeyManagerPassword(provProperties.getProperty("org.onap.dmaap.datarouter.provserver.keymanager.password"));
+ sslContextFactory.setKeyManagerPassword(provProperties
+ .getProperty("org.onap.dmaap.datarouter.provserver.keymanager.password"));
String ts = provProperties.getProperty(TRUSTSTORE_PATH_PROPERTY);
if (ts != null && ts.length() > 0) {
);
sslContextFactory.addExcludeProtocols("SSLv3");
sslContextFactory.setIncludeProtocols(provProperties.getProperty(
- "org.onap.dmaap.datarouter.provserver.https.include.protocols", "TLSv1.1|TLSv1.2").trim().split("\\|"));
-
- intlogger.info("Not supported protocols prov server:-" + String.join(",", sslContextFactory.getExcludeProtocols()));
- intlogger.info("Supported protocols prov server:-" + String.join(",", sslContextFactory.getIncludeProtocols()));
- intlogger.info("Not supported ciphers prov server:-" + String.join(",", sslContextFactory.getExcludeCipherSuites()));
- intlogger.info("Supported ciphers prov server:-" + String.join(",", sslContextFactory.getIncludeCipherSuites()));
+ "org.onap.dmaap.datarouter.provserver.https.include.protocols",
+ "TLSv1.1|TLSv1.2").trim().split("\\|"));
+
+ intlogger.info("Not supported protocols prov server:-"
+ + String.join(",", sslContextFactory.getExcludeProtocols()));
+ intlogger.info("Supported protocols prov server:-"
+ + String.join(",", sslContextFactory.getIncludeProtocols()));
+ intlogger.info("Not supported ciphers prov server:-"
+ + String.join(",", sslContextFactory.getExcludeCipherSuites()));
+ intlogger.info("Supported ciphers prov server:-"
+ + String.join(",", sslContextFactory.getIncludeCipherSuites()));
// HTTPS configuration
HttpConfiguration httpsConfiguration = new HttpConfiguration(httpConfiguration);
servletContextHandler.addServlet(new ServletHolder(new InternalServlet()), "/internal/*");
servletContextHandler.addServlet(new ServletHolder(new RouteServlet()), "/internal/route/*");
servletContextHandler.addServlet(new ServletHolder(new DRFeedsServlet()), "/");
- servletContextHandler.addFilter(new FilterHolder(new ThrottleFilter()), "/publish/*", EnumSet.of(DispatcherType.REQUEST));
+ servletContextHandler.addFilter(new FilterHolder(new ThrottleFilter()),
+ "/publish/*", EnumSet.of(DispatcherType.REQUEST));
//CADI Filter activation check
- if (Boolean.parseBoolean(provProperties.getProperty("org.onap.dmaap.datarouter.provserver.cadi.enabled", "false"))) {
+ if (Boolean.parseBoolean(provProperties.getProperty(
+ "org.onap.dmaap.datarouter.provserver.cadi.enabled", "false"))) {
//Get cadi properties
Properties cadiProperties = null;
try {
intlogger.info("PROV0001 aaf_url set to - " + cadiProperties.getProperty("aaf_url"));
PropAccess access = new PropAccess(cadiProperties);
- servletContextHandler.addFilter(new FilterHolder(new DRProvCadiFilter(true, access)), "/*", EnumSet.of(DispatcherType.REQUEST));
+ servletContextHandler.addFilter(new FilterHolder(new DRProvCadiFilter(true, access)),
+ "/*", EnumSet.of(DispatcherType.REQUEST));
}
ContextHandlerCollection contextHandlerCollection = new ContextHandlerCollection();
\r
package org.onap.dmaap.datarouter.provisioning;\r
\r
+import com.att.eelf.configuration.EELFLogger;\r
+import com.att.eelf.configuration.EELFManager;\r
import java.io.IOException;\r
import java.net.HttpURLConnection;\r
import java.net.InetAddress;\r
import java.util.Timer;\r
import java.util.TimerTask;\r
import java.util.TreeSet;\r
-\r
-import com.att.eelf.configuration.EELFLogger;\r
-import com.att.eelf.configuration.EELFManager;\r
import org.json.JSONException;\r
import org.json.JSONObject;\r
import org.json.JSONTokener;\r
+\r
import org.onap.dmaap.datarouter.provisioning.beans.EgressRoute;\r
import org.onap.dmaap.datarouter.provisioning.beans.Feed;\r
import org.onap.dmaap.datarouter.provisioning.beans.Group;\r
* @author Robert Eby\r
* @version $Id: Poker.java,v 1.11 2014/01/08 16:13:47 eby Exp $\r
*/\r
+\r
public class Poker extends TimerTask {\r
\r
/**\r
- * Template used to generate the URL to issue the GET against\r
+ * Template used to generate the URL to issue the GET against.\r
*/\r
private static final String POKE_URL_TEMPLATE = "http://%s/internal/fetchProv";\r
\r
private static final String CARRIAGE_RETURN = "\n],\n";\r
\r
/**\r
- * This is a singleton -- there is only one Poker object in the server\r
+ * This is a singleton -- there is only one Poker object in the server.\r
*/\r
private static Poker poker;\r
private long timer1;\r
\r
private Poker() {\r
timer1 = timer2 = 0;\r
- Timer rolex = new Timer();\r
logger = EELFManager.getInstance().getLogger("InternalLog");\r
try {\r
thisPod = InetAddress.getLocalHost().getHostName();\r
logger.info("UnknownHostException: Setting thisPod to \"*UNKNOWN_POD*\"", e);\r
}\r
provString = buildProvisioningString();\r
-\r
+ Timer rolex = new Timer();\r
rolex.scheduleAtFixedRate(this, 0L, 1000L); // Run once a second to check the timers\r
}\r
\r
private void pokeNode(final String nodename) {\r
logger.debug("PROV0012 Poking node " + nodename + " ...");\r
String nodeUrl = String.format(POKE_URL_TEMPLATE, nodename + ":" + DB.getHttpPort());\r
- Runnable r = () -> {\r
+ Runnable runn = () -> {\r
try {\r
URL url = new URL(nodeUrl);\r
HttpURLConnection conn = (HttpURLConnection) url.openConnection();\r
.getMessage(), e);\r
}\r
};\r
- r.run();\r
+ runn.run();\r
}\r
\r
private String buildProvisioningString() {\r
ivals.addAll(Arrays.asList(intv.split("\\|")));\r
}\r
for (String key : new TreeSet<String>(props.keySet())) {\r
- String v = props.get(key);\r
+ String val = props.get(key);\r
sb.append(pfx);\r
sb.append(" \"").append(key).append("\": ");\r
if (ivals.contains(key)) {\r
// integer value\r
- sb.append(v);\r
+ sb.append(val);\r
} else if (key.endsWith("S")) {\r
// Split and append array of strings\r
- String[] pp = v.split("\\|");\r
+ String[] pp = val.split("\\|");\r
String p2 = "";\r
sb.append("[");\r
for (String t : pp) {\r
}\r
sb.append("]");\r
} else {\r
- sb.append("\"").append(quote(v)).append("\"");\r
+ sb.append("\"").append(quote(val)).append("\"");\r
}\r
pfx = ",\n";\r
}\r
sb.append("\"egress\": {");\r
for (EgressRoute eg : EgressRoute.getAllEgressRoutes()) {\r
sb.append(pfx);\r
- String t = eg.asJSONObject().toString();\r
- t = t.substring(1, t.length() - 1);\r
- sb.append(t);\r
+ String str = eg.asJSONObject().toString();\r
+ str = str.substring(1, str.length() - 1);\r
+ sb.append(str);\r
pfx = ",\n";\r
}\r
sb.append("\n},\n");\r
return tempProvString;\r
}\r
\r
- private String quote(String s) {\r
+ private String quote(String str) {\r
StringBuilder sb = new StringBuilder();\r
- for (char ch : s.toCharArray()) {\r
+ for (char ch : str.toCharArray()) {\r
if (ch == '\\' || ch == '"') {\r
sb.append('\\');\r
}\r
* @version $Id: ProxyServlet.java,v 1.3 2014/03/24 18:47:10 eby Exp $
*/
@SuppressWarnings("serial")
+
public class ProxyServlet extends BaseServlet {
private boolean inited = false;
try {
// Set up keystore
Properties props = (new DB()).getProperties();
- String type = props.getProperty(Main.KEYSTORE_TYPE_PROPERTY, "jks");
String store = props.getProperty(Main.KEYSTORE_PATH_PROPERTY);
String pass = props.getProperty(Main.KEYSTORE_PASS_PROPERTY);
- KeyStore keyStore = readStore(store, pass, type);
-
store = props.getProperty(Main.TRUSTSTORE_PATH_PROPERTY);
pass = props.getProperty(Main.TRUSTSTORE_PASS_PROPERTY);
if (store == null || store.length() == 0) {
// We are connecting with the node name, but the certificate will have the CNAME
// So we need to accept a non-matching certificate name
+ String type = props.getProperty(Main.KEYSTORE_TYPE_PROPERTY, "jks");
+ KeyStore keyStore = readStore(store, pass, type);
SSLSocketFactory socketFactory = new SSLSocketFactory(keyStore,
props.getProperty(Main.KEYSTORE_PASS_PROPERTY), trustStore);
socketFactory.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
* @return true or false
*/
boolean isProxyOK(final HttpServletRequest req) {
- String t = req.getQueryString();
- if (t != null) {
- t = t.replaceAll("&", "&");
- for (String s : t.split("&")) {
+ String str = req.getQueryString();
+ if (str != null) {
+ str = str.replaceAll("&", "&");
+ for (String s : str.split("&")) {
if ("noproxy".equals(s) || s.startsWith("noproxy=")) {
return false;
}
StringBuilder sb = new StringBuilder("https://");
sb.append(URLUtilities.getPeerPodName());
sb.append(req.getRequestURI());
- String q = req.getQueryString();
- if (q != null) {
- sb.append("?").append(q);
+ String query = req.getQueryString();
+ if (query != null) {
+ sb.append("?").append(query);
}
return sb.toString();
}
import com.att.eelf.configuration.EELFManager;\r
\r
import java.io.IOException;\r
-import java.util.*;\r
+import java.util.ArrayList;\r
+import java.util.Collection;\r
+import java.util.List;\r
import javax.servlet.ServletConfig;\r
import javax.servlet.ServletException;\r
import javax.servlet.http.HttpServletRequest;\r
* @version $Id: PublishServlet.java,v 1.8 2014/03/12 19:45:41 eby Exp $\r
*/\r
@SuppressWarnings("serial")\r
+\r
public class PublishServlet extends BaseServlet {\r
\r
private int nextNode;\r
setUpEelfForPublishServlet(req, "doDelete");\r
eelfLogger.info(EelfMsgs.ENTRY);\r
try {\r
- eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");\r
+ eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID,\r
+ req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");\r
redirect(req, resp);\r
} finally {\r
eelfLogger.info(EelfMsgs.EXIT);\r
setUpEelfForPublishServlet(req, "doGet");\r
eelfLogger.info(EelfMsgs.ENTRY);\r
try {\r
- eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");\r
- redirect(req, resp);\r
+ eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID,\r
+ req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");\r
+ redirect(req, resp);\r
} finally {\r
eelfLogger.info(EelfMsgs.EXIT);\r
}\r
setUpEelfForPublishServlet(req, "doPut");\r
eelfLogger.info(EelfMsgs.ENTRY);\r
try {\r
- eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");\r
- redirect(req, resp);\r
+ eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID,\r
+ req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");\r
+ redirect(req, resp);\r
} finally {\r
eelfLogger.info(EelfMsgs.EXIT);\r
}\r
setUpEelfForPublishServlet(req, "doPost");\r
eelfLogger.info(EelfMsgs.ENTRY);\r
try {\r
- eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF, req.getHeader(BEHALF_HEADER));\r
- redirect(req, resp);\r
+ eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF, req.getHeader(BEHALF_HEADER));\r
+ redirect(req, resp);\r
} finally {\r
eelfLogger.info(EelfMsgs.EXIT);\r
}\r
}\r
\r
private void setUpEelfForPublishServlet(HttpServletRequest req, String method) {\r
- if (StringUtils.isBlank(req.getHeader("X-ONAP-RequestID")) || StringUtils.isBlank(req.getHeader("X-InvocationID"))) {\r
+ if (StringUtils.isBlank(req.getHeader("X-ONAP-RequestID"))\r
+ || StringUtils.isBlank(req.getHeader("X-InvocationID"))) {\r
setIpFqdnForEelf(method);\r
} else {\r
setIpFqdnRequestIDandInvocationIDForEelf(method, req);\r
\r
private String getRedirectNode(int feedid, HttpServletRequest req) {\r
// Check to see if the IRT needs to be updated\r
- Poker p = Poker.getPoker();\r
- String s = p.getProvisioningString();\r
+ Poker pkr = Poker.getPoker();\r
+ String str = pkr.getProvisioningString();\r
synchronized (lock) {\r
- if (irt == null || (s.length() != provstring.length()) || !s.equals(provstring)) {\r
+ if (irt == null || (str.length() != provstring.length()) || !str.equals(provstring)) {\r
// Provisioning string has changed -- update the IRT\r
- provstring = s;\r
+ provstring = str;\r
JSONObject jo = new JSONObject(new JSONTokener(provstring));\r
JSONArray ja = jo.getJSONArray("ingress");\r
List<IngressRoute> newlist = new ArrayList<>();\r
\r
// No IRT rule matches, do round robin of all active nodes\r
String[] nodes = getNodes();\r
- if (nextNode >= nodes.length) // The list of nodes may have grown/shrunk\r
- {\r
+ if (nextNode >= nodes.length) { // The list of nodes may have grown/shrunk\r
nextNode = 0;\r
}\r
return nodes[nextNode++];\r
\r
package org.onap.dmaap.datarouter.provisioning;\r
\r
+import static org.onap.dmaap.datarouter.provisioning.utils.HttpServletUtils.sendResponseError;\r
+\r
import java.io.IOException;\r
import java.util.Set;\r
-\r
import javax.servlet.http.HttpServletRequest;\r
import javax.servlet.http.HttpServletResponse;\r
-\r
import org.json.JSONException;\r
import org.json.JSONObject;\r
+\r
import org.onap.dmaap.datarouter.provisioning.beans.Deleteable;\r
import org.onap.dmaap.datarouter.provisioning.beans.EgressRoute;\r
import org.onap.dmaap.datarouter.provisioning.beans.EventLogRecord;\r
import org.onap.dmaap.datarouter.provisioning.beans.NetworkRoute;\r
import org.onap.dmaap.datarouter.provisioning.beans.NodeClass;\r
\r
-import static org.onap.dmaap.datarouter.provisioning.utils.HttpServletUtils.sendResponseError;\r
+\r
\r
/**\r
* <p>\r
* </p>\r
* <div class="contentContainer">\r
* <table class="packageSummary" border="0" cellpadding="3" cellspacing="0">\r
- * <caption><span>URL Path Summary</span><span class="tabEnd"> </span></caption>\r
+ * <caption>\r
+ * <span>URL Path Summary</span>\r
+ * <span class="tabEnd"> </span>\r
+ * </caption>\r
* <tr>\r
* <th class="colFirst" width="35%">URL Path</th>\r
* <th class="colOne">Method</th>\r
* and <i>tonode</i>.</td>\r
* </tr>\r
* </table>\r
+ * </div>\r
* <p>\r
* Authorization to use these URLs is a little different than for other URLs on the provisioning server.\r
* For the most part, the IP address that the request comes from should be either:\r
* @version $Id$\r
*/\r
@SuppressWarnings("serial")\r
+\r
public class RouteServlet extends ProxyServlet {\r
\r
/**\r
\r
String path = req.getPathInfo();\r
String[] parts = path.substring(1).split("/");\r
- Deleteable[] d = null;\r
+ Deleteable[] deleteables = null;\r
if ("ingress".equals(parts[0])) {\r
if (parts.length == 4) {\r
// /internal/route/ingress/<feed>/<user>/<subnet>\r
int feedid = Integer.parseInt(parts[1]);\r
IngressRoute er = IngressRoute.getIngressRoute(feedid, parts[2], parts[3].replaceAll("!", "/"));\r
if (er == null) {\r
- sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, "The specified ingress route does not exist.", eventlogger);\r
+ sendResponseError(resp,\r
+ HttpServletResponse.SC_NOT_FOUND, "The specified ingress route does not exist.",\r
+ eventlogger);\r
return;\r
}\r
- d = new Deleteable[] { er };\r
+ deleteables = new Deleteable[] { er };\r
} catch (NumberFormatException e) {\r
- sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, "Invalid feed ID in 'delete ingress' command.", eventlogger);\r
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND,\r
+ "Invalid feed ID in 'delete ingress' command.", eventlogger);\r
return;\r
}\r
} else if (parts.length == 2) {\r
try {\r
int seq = Integer.parseInt(parts[1]);\r
Set<IngressRoute> set = IngressRoute.getIngressRoutesForSeq(seq);\r
- d = set.toArray(new Deleteable[0]);\r
+ deleteables = set.toArray(new Deleteable[0]);\r
} catch (NumberFormatException e) {\r
- sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, "Invalid sequence number in 'delete ingress' command.", eventlogger);\r
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND,\r
+ "Invalid sequence number in 'delete ingress' command.", eventlogger);\r
return;\r
}\r
} else {\r
- sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, "Invalid number of arguments in 'delete ingress' command.", eventlogger);\r
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND,\r
+ "Invalid number of arguments in 'delete ingress' command.", eventlogger);\r
return;\r
}\r
} else if ("egress".equals(parts[0])) {\r
int subid = Integer.parseInt(parts[1]);\r
EgressRoute er = EgressRoute.getEgressRoute(subid);\r
if (er == null) {\r
- sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, "The specified egress route does not exist.", eventlogger);\r
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND,\r
+ "The specified egress route does not exist.", eventlogger);\r
return;\r
}\r
- d = new Deleteable[] { er };\r
+ deleteables = new Deleteable[] { er };\r
} catch (NumberFormatException e) {\r
- sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, "Invalid sub ID in 'delete egress' command.", eventlogger);\r
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND,\r
+ "Invalid sub ID in 'delete egress' command.", eventlogger);\r
return;\r
}\r
} else {\r
- sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, "Invalid number of arguments in 'delete egress' command.", eventlogger);\r
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND,\r
+ "Invalid number of arguments in 'delete egress' command.", eventlogger);\r
return;\r
}\r
} else if ("network".equals(parts[0])) {\r
if (parts.length == 3) {\r
// /internal/route/network/<from>/<to>\r
- try {//\r
+ try {\r
NetworkRoute nr = new NetworkRoute(\r
NodeClass.normalizeNodename(parts[1]),\r
NodeClass.normalizeNodename(parts[2])\r
);\r
- d = new Deleteable[] { nr };\r
+ deleteables = new Deleteable[] { nr };\r
} catch (IllegalArgumentException e) {\r
String message = "The specified network route does not exist.";\r
eventlogger.error(message, e);\r
return;\r
}\r
} else {\r
- sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, "Invalid number of arguments in 'delete network' command.", eventlogger);\r
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND,\r
+ "Invalid number of arguments in 'delete network' command.", eventlogger);\r
return;\r
}\r
}\r
- if (d == null) {\r
+ if (deleteables == null) {\r
sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, BAD_URL, eventlogger);\r
return;\r
}\r
boolean rv = true;\r
- for (Deleteable dd : d) {\r
+ for (Deleteable dd : deleteables) {\r
rv &= doDelete(dd);\r
}\r
if (rv) {\r
sendResponseError(resp, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, DB_PROBLEM_MSG, eventlogger);\r
}\r
}\r
+\r
/**\r
* GET route table entries from the route table tree specified by the URL path.\r
*/\r
}\r
\r
String path = req.getPathInfo();\r
- if (!path.endsWith("/"))\r
+ if (!path.endsWith("/")) {\r
path += "/";\r
+ }\r
if (!"/".equals(path) && !INGRESS.equals(path) && !EGRESS.equals(path) && !NETWORK.equals(path)) {\r
sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, BAD_URL, eventlogger);\r
return;\r
eventlogger.error("PROV0162 RouteServlet.doGet: " + ioe.getMessage(), ioe);\r
}\r
}\r
+\r
/**\r
* PUT on </internal/route/*> -- not supported.\r
*/\r
}\r
sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, BAD_URL, eventlogger);\r
}\r
+\r
/**\r
* POST - modify existing route table entries in the route table tree specified by the URL path.\r
*/\r
// Although it probably doesn't make sense, you can install two identical routes in the IRT\r
int feedid = Integer.parseInt(req.getParameter("feed"));\r
String user = req.getParameter("user");\r
- if (user == null)\r
+ if (user == null) {\r
user = "-";\r
+ }\r
String subnet = req.getParameter("subnet");\r
- if (subnet == null)\r
+ if (subnet == null) {\r
subnet = "-";\r
+ }\r
String nodepatt = req.getParameter("nodepatt");\r
- String t = req.getParameter("seq");\r
- int seq = (t != null) ? Integer.parseInt(t) : (IngressRoute.getMaxSequence() + 100);\r
- ins = new Insertable[] { new IngressRoute(seq, feedid, user, subnet, NodeClass.lookupNodeNames(nodepatt)) };\r
+ String str = req.getParameter("seq");\r
+ int seq = (str != null) ? Integer.parseInt(str) : (IngressRoute.getMaxSequence() + 100);\r
+ ins = new Insertable[] { new IngressRoute(seq, feedid,\r
+ user, subnet, NodeClass.lookupNodeNames(nodepatt)) };\r
} catch (Exception e) {\r
intlogger.info(e.toString(), e);\r
- sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, "Invalid arguments in 'add ingress' command.", intlogger);\r
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST,\r
+ "Invalid arguments in 'add ingress' command.", intlogger);\r
return;\r
}\r
} else if (path.startsWith(EGRESS)) {\r
int subid = Integer.parseInt(req.getParameter("sub"));\r
EgressRoute er = EgressRoute.getEgressRoute(subid);\r
if (er != null) {\r
- sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, "An egress route already exists for that subscriber.", intlogger);\r
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST,\r
+ "An egress route already exists for that subscriber.", intlogger);\r
return;\r
}\r
String node = NodeClass.normalizeNodename(req.getParameter("node"));\r
ins = new Insertable[] { new EgressRoute(subid, node) };\r
} catch (Exception e) {\r
intlogger.info(e.toString(), e);\r
- sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, "Invalid arguments in 'add egress' command.", intlogger);\r
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST,\r
+ "Invalid arguments in 'add egress' command.", intlogger);\r
return;\r
}\r
} else if (path.startsWith(NETWORK)) {\r
String nto = req.getParameter("to");\r
String nvia = req.getParameter("via");\r
if (nfrom == null || nto == null || nvia == null) {\r
- sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, "Missing arguments in 'add network' command.", intlogger);\r
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST,\r
+ "Missing arguments in 'add network' command.", intlogger);\r
return;\r
}\r
nfrom = NodeClass.normalizeNodename(nfrom);\r
NetworkRoute nr = new NetworkRoute(nfrom, nto, nvia);\r
for (NetworkRoute route : NetworkRoute.getAllNetworkRoutes()) {\r
if (route.getFromnode() == nr.getFromnode() && route.getTonode() == nr.getTonode()) {\r
- sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, "Network route table already contains a route for " + nfrom + " and " + nto, intlogger);\r
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST,\r
+ "Network route table already contains a route for " + nfrom\r
+ + " and " + nto, intlogger);\r
return;\r
}\r
}\r
ins = new Insertable[] { nr };\r
} catch (IllegalArgumentException e) {\r
intlogger.info(e.toString(), e);\r
- sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, "Invalid arguments in 'add network' command.", intlogger);\r
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST,\r
+ "Invalid arguments in 'add network' command.", intlogger);\r
return;\r
}\r
}\r
\r
package org.onap.dmaap.datarouter.provisioning;\r
\r
+import static org.onap.dmaap.datarouter.provisioning.utils.HttpServletUtils.sendResponseError;\r
+\r
import java.io.IOException;\r
import java.sql.Connection;\r
import java.sql.PreparedStatement;\r
import org.onap.dmaap.datarouter.provisioning.utils.DB;\r
import org.onap.dmaap.datarouter.provisioning.utils.LOGJSONObject;\r
\r
-import static org.onap.dmaap.datarouter.provisioning.utils.HttpServletUtils.sendResponseError;\r
\r
/**\r
* This Servlet handles requests to the <Statistics API> and <Statistics consilidated\r
- * resultset>,\r
+ * resultset>.\r
*\r
* @author Manish Singh\r
* @version $Id: StatisticsServlet.java,v 1.11 2016/08/10 17:27:02 Manish Exp $\r
*/\r
@SuppressWarnings("serial")\r
\r
+\r
public class StatisticsServlet extends BaseServlet {\r
\r
private static final long TWENTYFOUR_HOURS = (24 * 60 * 60 * 1000L);\r
public void doGet(HttpServletRequest req, HttpServletResponse resp) {\r
Map<String, String> map = buildMapFromRequest(req);\r
if (map.get("err") != null) {\r
- sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, "Invalid arguments: " + map.get("err"), eventlogger);\r
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST,\r
+ "Invalid arguments: " + map.get("err"), eventlogger);\r
return;\r
}\r
// check Accept: header??\r
\r
\r
/**\r
- * rsToJson - Converting RS to JSON object\r
+ * rsToJson - Converting RS to JSON object.\r
*\r
- * @param out ServletOutputStream, rs as ResultSet\r
- * @throws IOException, SQLException\r
+ * @param out ServletOutputStream\r
+ * @param rs as ResultSet\r
+ * @throws IOException input/output exception\r
+ * @throws SQLException SQL exception\r
*/\r
public void rsToCSV(ResultSet rs, ServletOutputStream out) throws IOException, SQLException {\r
String header = "FEEDNAME,FEEDID,FILES_PUBLISHED,PUBLISH_LENGTH, FILES_DELIVERED, "\r
}\r
\r
/**\r
- * rsToJson - Converting RS to JSON object\r
+ * rsToJson - Converting RS to JSON object.\r
*\r
- * @param out ServletOutputStream, rs as ResultSet\r
- * @throws IOException, SQLException\r
+ * @param out ServletOutputStream\r
+ * @param rs as ResultSet\r
+ * @throws IOException input/output exception\r
+ * @throws SQLException SQL exception\r
*/\r
private void rsToJson(ResultSet rs, ServletOutputStream out) throws IOException, SQLException {\r
String[] fields = {"FEEDNAME", FEEDID, "FILES_PUBLISHED", "PUBLISH_LENGTH", "FILES_DELIVERED",\r
while (rs.next()) {\r
LOGJSONObject j2 = new LOGJSONObject();\r
for (String key : fields) {\r
- Object v = rs.getString(key);\r
- if (v != null) {\r
- j2.put(key.toLowerCase(), v);\r
+ Object val = rs.getString(key);\r
+ if (val != null) {\r
+ j2.put(key.toLowerCase(), val);\r
} else {\r
j2.put(key.toLowerCase(), "");\r
}\r
\r
\r
/**\r
- * queryGeneretor - Generating sql query\r
+ * queryGeneretor - Generating sql query.\r
*\r
* @param map as key value pare of all user input fields\r
*/\r
if (endTime == null && startTime == null) {\r
\r
sql = "SELECT (SELECT NAME FROM FEEDS AS f WHERE f.FEEDID in(" + feedids\r
- + ") and f.FEEDID=e.FEEDID) AS FEEDNAME, e.FEEDID as FEEDID, (SELECT COUNT(*) FROM LOG_RECORDS AS c WHERE c.FEEDID in("\r
+ + ") and f.FEEDID=e.FEEDID) AS FEEDNAME, e.FEEDID as FEEDID, "\r
+ + "(SELECT COUNT(*) FROM LOG_RECORDS AS c WHERE c.FEEDID in("\r
+ feedids\r
- + ") and c.FEEDID=e.FEEDID AND c.TYPE='PUB') AS FILES_PUBLISHED,(SELECT SUM(content_length) FROM LOG_RECORDS AS c WHERE c.FEEDID in("\r
+ + ") and c.FEEDID=e.FEEDID AND c.TYPE='PUB') AS FILES_PUBLISHED,(SELECT SUM(content_length)"\r
+ + " FROM LOG_RECORDS AS c WHERE c.FEEDID in("\r
+ feedids\r
- + ") and c.FEEDID=e.FEEDID AND c.TYPE='PUB') AS PUBLISH_LENGTH, COUNT(e.EVENT_TIME) as FILES_DELIVERED, sum(m.content_length) as DELIVERED_LENGTH,SUBSTRING_INDEX(e.REQURI,'/',+3) as SUBSCRIBER_URL, e.DELIVERY_SUBID as SUBID, e.EVENT_TIME AS PUBLISH_TIME, m.EVENT_TIME AS DELIVERY_TIME, AVG(e.EVENT_TIME - m.EVENT_TIME)/1000 as AverageDelay FROM LOG_RECORDS e JOIN LOG_RECORDS m ON m.PUBLISH_ID = e.PUBLISH_ID AND e.FEEDID IN ("\r
+ + ") and c.FEEDID=e.FEEDID AND c.TYPE='PUB') AS PUBLISH_LENGTH, COUNT(e.EVENT_TIME) as FILES_DELIVERED,"\r
+ + "sum(m.content_length) as DELIVERED_LENGTH,SUBSTRING_INDEX(e.REQURI,'/',+3) as SUBSCRIBER_URL,"\r
+ + " e.DELIVERY_SUBID as SUBID, "\r
+ + "e.EVENT_TIME AS PUBLISH_TIME, m.EVENT_TIME AS DELIVERY_TIME, "\r
+ + " AVG(e.EVENT_TIME - m.EVENT_TIME)/1000 as AverageDelay FROM LOG_RECORDS"\r
+ + " e JOIN LOG_RECORDS m ON m.PUBLISH_ID = e.PUBLISH_ID AND e.FEEDID IN ("\r
+ feedids + ") " + subid + " AND m.STATUS=204 AND e.RESULT=204 group by SUBID";\r
\r
return sql;\r
long compareTime = currentTimeInMilli - inputTimeInMilli;\r
\r
sql = "SELECT (SELECT NAME FROM FEEDS AS f WHERE f.FEEDID in(" + feedids\r
- + ") and f.FEEDID=e.FEEDID) AS FEEDNAME, e.FEEDID as FEEDID, (SELECT COUNT(*) FROM LOG_RECORDS AS c WHERE c.FEEDID in("\r
+ + ") and f.FEEDID=e.FEEDID) AS FEEDNAME, e.FEEDID as FEEDID, "\r
+ + "(SELECT COUNT(*) FROM LOG_RECORDS AS c WHERE c.FEEDID in("\r
+ feedids\r
- + ") and c.FEEDID=e.FEEDID AND c.TYPE='PUB') AS FILES_PUBLISHED,(SELECT SUM(content_length) FROM LOG_RECORDS AS c WHERE c.FEEDID in("\r
+ + ") and c.FEEDID=e.FEEDID AND c.TYPE='PUB') AS FILES_PUBLISHED,"\r
+ + "(SELECT SUM(content_length) FROM LOG_RECORDS AS c WHERE c.FEEDID in("\r
+ feedids\r
- + ") and c.FEEDID=e.FEEDID AND c.TYPE='PUB') AS PUBLISH_LENGTH, COUNT(e.EVENT_TIME) as FILES_DELIVERED, sum(m.content_length) as DELIVERED_LENGTH,SUBSTRING_INDEX(e.REQURI,'/',+3) as SUBSCRIBER_URL, e.DELIVERY_SUBID as SUBID, e.EVENT_TIME AS PUBLISH_TIME, m.EVENT_TIME AS DELIVERY_TIME, AVG(e.EVENT_TIME - m.EVENT_TIME)/1000 as AverageDelay FROM LOG_RECORDS e JOIN LOG_RECORDS m ON m.PUBLISH_ID = e.PUBLISH_ID AND e.FEEDID IN ("\r
+ + ") and c.FEEDID=e.FEEDID AND c.TYPE='PUB') AS PUBLISH_LENGTH, COUNT(e.EVENT_TIME) as FILES_DELIVERED,"\r
+ + "sum(m.content_length) as DELIVERED_LENGTH,SUBSTRING_INDEX(e.REQURI,'/',+3) as SUBSCRIBER_URL,"\r
+ + " e.DELIVERY_SUBID as SUBID, "\r
+ + "e.EVENT_TIME AS PUBLISH_TIME, m.EVENT_TIME AS DELIVERY_TIME, "\r
+ + "AVG(e.EVENT_TIME - m.EVENT_TIME)/1000 as AverageDelay "\r
+ + "FROM LOG_RECORDS e JOIN LOG_RECORDS m ON m.PUBLISH_ID = e.PUBLISH_ID AND e.FEEDID IN ("\r
+ feedids + ") " + subid + " AND m.STATUS=204 AND e.RESULT=204 and e.event_time>="\r
+ compareTime + " group by SUBID";\r
\r
long endInMillis = endDate.getTime();\r
\r
sql = "SELECT (SELECT NAME FROM FEEDS AS f WHERE f.FEEDID in(" + feedids\r
- + ") and f.FEEDID=e.FEEDID) AS FEEDNAME, e.FEEDID as FEEDID, (SELECT COUNT(*) FROM LOG_RECORDS AS c WHERE c.FEEDID in("\r
+ + ") and f.FEEDID=e.FEEDID) AS FEEDNAME, e.FEEDID as FEEDID, "\r
+ + "(SELECT COUNT(*) FROM LOG_RECORDS AS c WHERE c.FEEDID in("\r
+ feedids\r
- + ") and c.FEEDID=e.FEEDID AND c.TYPE='PUB') AS FILES_PUBLISHED,(SELECT SUM(content_length) FROM LOG_RECORDS AS c WHERE c.FEEDID in("\r
+ + ") and c.FEEDID=e.FEEDID AND c.TYPE='PUB') AS FILES_PUBLISHED,"\r
+ + "(SELECT SUM(content_length) FROM LOG_RECORDS AS c WHERE c.FEEDID in("\r
+ feedids\r
- + ") and c.FEEDID=e.FEEDID AND c.TYPE='PUB') AS PUBLISH_LENGTH, COUNT(e.EVENT_TIME) as FILES_DELIVERED, sum(m.content_length) as DELIVERED_LENGTH,SUBSTRING_INDEX(e.REQURI,'/',+3) as SUBSCRIBER_URL, e.DELIVERY_SUBID as SUBID, e.EVENT_TIME AS PUBLISH_TIME, m.EVENT_TIME AS DELIVERY_TIME, AVG(e.EVENT_TIME - m.EVENT_TIME)/1000 as AverageDelay FROM LOG_RECORDS e JOIN LOG_RECORDS m ON m.PUBLISH_ID = e.PUBLISH_ID AND e.FEEDID IN ("\r
- + feedids + ") " + subid + " AND m.STATUS=204 AND e.RESULT=204 and e.event_time between " + startInMillis\r
+ + ") and c.FEEDID=e.FEEDID AND c.TYPE='PUB') AS PUBLISH_LENGTH, COUNT(e.EVENT_TIME) as FILES_DELIVERED,"\r
+ + "sum(m.content_length) as DELIVERED_LENGTH,"\r
+ + "SUBSTRING_INDEX(e.REQURI,'/',+3) as SUBSCRIBER_URL,"\r
+ + "e.DELIVERY_SUBID as SUBID, "\r
+ + "e.EVENT_TIME AS PUBLISH_TIME, m.EVENT_TIME AS DELIVERY_TIME, "\r
+ + "AVG(e.EVENT_TIME - m.EVENT_TIME)/1000 as AverageDelay FROM LOG_RECORDS"\r
+ + " e JOIN LOG_RECORDS m ON m.PUBLISH_ID = e.PUBLISH_ID AND e.FEEDID IN ("\r
+ + feedids + ")" + subid + " AND m.STATUS=204 AND e.RESULT=204 and e.event_time between " + startInMillis\r
+ " and " + endInMillis + " group by SUBID";\r
\r
\r
\r
private Map<String, String> buildMapFromRequest(HttpServletRequest req) {\r
Map<String, String> map = new HashMap<>();\r
- String s = req.getParameter("type");\r
- if (s != null) {\r
- if ("pub".equals(s) || "del".equals(s) || "exp".equals(s)) {\r
- map.put("type", s);\r
+ String str = req.getParameter("type");\r
+ if (str != null) {\r
+ if ("pub".equals(str) || "del".equals(str) || "exp".equals(str)) {\r
+ map.put("type", str);\r
} else {\r
map.put("err", "bad type");\r
return map;\r
map.put("resultSQL", "");\r
map.put(REASON_SQL, "");\r
\r
- s = req.getParameter("publishId");\r
- if (s != null) {\r
- if (s.indexOf("'") >= 0) {\r
+ str = req.getParameter("publishId");\r
+ if (str != null) {\r
+ if (str.indexOf("'") >= 0) {\r
map.put("err", "bad publishId");\r
return map;\r
}\r
- map.put("publishSQL", " AND PUBLISH_ID = '" + s + "'");\r
+ map.put("publishSQL", " AND PUBLISH_ID = '" + str + "'");\r
}\r
\r
- s = req.getParameter("statusCode");\r
- if (s != null) {\r
+ str = req.getParameter("statusCode");\r
+ if (str != null) {\r
String sql = null;\r
- switch (s) {\r
+ switch (str) {\r
case "success":\r
sql = " AND STATUS >= 200 AND STATUS < 300";\r
break;\r
break;\r
default:\r
try {\r
- int n = Integer.parseInt(s);\r
- if ((n >= 100 && n < 600) || (n == -1)) {\r
- sql = " AND STATUS = " + n;\r
+ int statusCode = Integer.parseInt(str);\r
+ if ((statusCode >= 100 && statusCode < 600) || (statusCode == -1)) {\r
+ sql = " AND STATUS = " + statusCode;\r
}\r
} catch (NumberFormatException e) {\r
eventlogger.error("Failed to parse input", e);\r
map.put("resultSQL", sql.replaceAll("STATUS", "RESULT"));\r
}\r
\r
- s = req.getParameter("expiryReason");\r
- if (s != null) {\r
+ str = req.getParameter("expiryReason");\r
+ if (str != null) {\r
map.put("type", "exp");\r
- switch (s) {\r
+ switch (str) {\r
case "notRetryable":\r
map.put(REASON_SQL, " AND REASON = 'notRetryable'");\r
break;\r
return map;\r
}\r
\r
- private long getTimeFromParam(final String s) {\r
- if (s == null) {\r
+ private long getTimeFromParam(final String str) {\r
+ if (str == null) {\r
return 0;\r
}\r
try {\r
// First, look for an RFC 3339 date\r
- String fmt = (s.indexOf('.') > 0) ? FMT2 : FMT1;\r
+ String fmt = (str.indexOf('.') > 0) ? FMT2 : FMT1;\r
SimpleDateFormat sdf = new SimpleDateFormat(fmt);\r
- Date d = sdf.parse(s);\r
- return d.getTime();\r
+ Date date = sdf.parse(str);\r
+ return date.getTime();\r
} catch (ParseException e) {\r
intlogger.error("Exception in getting Time :- " + e.getMessage(), e);\r
}\r
try {\r
// Also allow a long (in ms); useful for testing\r
- return Long.parseLong(s);\r
+ return Long.parseLong(str);\r
} catch (NumberFormatException e) {\r
intlogger.error("Exception in getting Time :- " + e.getMessage(), e);\r
}\r
- intlogger.info("Error parsing time=" + s);\r
+ intlogger.info("Error parsing time=" + str);\r
return -1;\r
}\r
\r
- private void getRecordsForSQL(Map<String, String> map, String outputType, ServletOutputStream out, HttpServletResponse resp) {\r
+ private void getRecordsForSQL(Map<String, String> map, String outputType, ServletOutputStream out,\r
+ HttpServletResponse resp) {\r
try {\r
String filterQuery = this.queryGeneretor(map);\r
eventlogger.debug("SQL Query for Statistics resultset. " + filterQuery);\r
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.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.beans.EventLogRecord;
import org.onap.dmaap.datarouter.provisioning.beans.Feed;
import org.onap.dmaap.datarouter.provisioning.eelf.EelfMsgs;
import org.onap.dmaap.datarouter.provisioning.utils.JSONUtilities;
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
-
-import static org.onap.dmaap.datarouter.provisioning.utils.HttpServletUtils.sendResponseError;
/**
* This servlet handles provisioning for the <subscribeURL> which is generated by the provisioning server to
* @version $Id$
*/
@SuppressWarnings("serial")
+
public class SubscribeServlet extends ProxyServlet {
//Adding EELF Logger Rally:US664892
setIpFqdnRequestIDandInvocationIDForEelf("doDelete", req);
eelfLogger.info(EelfMsgs.ENTRY);
try {
- eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_SUBID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");
+ eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_SUBID,
+ req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");
String message = "DELETE not allowed for the subscribeURL.";
EventLogRecord elr = new EventLogRecord(req);
elr.setMessage(message);
setIpFqdnRequestIDandInvocationIDForEelf("doGet", req);
eelfLogger.info(EelfMsgs.ENTRY);
try {
- eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_SUBID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");
+ eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_SUBID,
+ req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");
EventLogRecord elr = new EventLogRecord(req);
String message = isAuthorizedForProvisioning(req);
if (message != null) {
}
// Display a list of URLs
Collection<String> list = Subscription.getSubscriptionUrlList(feedid);
- String t = JSONUtilities.createJSONArray(list);
+ String strList = JSONUtilities.createJSONArray(list);
// send response
elr.setResult(HttpServletResponse.SC_OK);
resp.setStatus(HttpServletResponse.SC_OK);
resp.setContentType(SUBLIST_CONTENT_TYPE);
try {
- resp.getOutputStream().print(t);
+ resp.getOutputStream().print(strList);
} catch (IOException ioe) {
eventlogger.error("PROV0181 SubscribeServlet.doGet: " + ioe.getMessage(), ioe);
}
setIpFqdnRequestIDandInvocationIDForEelf("doPut", req);
eelfLogger.info(EelfMsgs.ENTRY);
try {
- eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_SUBID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");
+ eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_SUBID,
+ req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");
String message = "PUT not allowed for the subscribeURL.";
EventLogRecord elr = new EventLogRecord(req);
elr.setMessage(message);
*/
String feedAafInstance = feed.getAafInstance();
String subAafInstance = sub.getAafInstance();
- boolean subAafLegacyEmptyOrNull = (subAafInstance == null || "".equals(subAafInstance) || "legacy".equalsIgnoreCase(subAafInstance));
+ boolean subAafLegacyEmptyOrNull = (subAafInstance == null
+ || "".equals(subAafInstance) || "legacy".equalsIgnoreCase(subAafInstance));
// This extra check added to verify AAF feed with AAF subscriber having empty aaf instance check
if (feedAafInstance == null || "".equals(feedAafInstance) || "legacy".equalsIgnoreCase(feedAafInstance)) {
Subscription sub2 = Subscription.getSubscriptionMatching(sub);
if (sub2 != null) {
intlogger.warn(
- "PROV0011 Creating a duplicate subscription: new subid=" + sub.getSubid() + ", old subid=" + sub2.getSubid());
+ "PROV0011 Creating a duplicate subscription: new subid="
+ + sub.getSubid() + ", old subid=" + sub2.getSubid());
}
// Create SUBSCRIPTIONS table entries
setIpFqdnRequestIDandInvocationIDForEelf("doDelete", req);\r
eelfLogger.info(EelfMsgs.ENTRY);\r
try {\r
- eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_SUBID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");\r
+ eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_SUBID,\r
+ req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");\r
EventLogRecord elr = new EventLogRecord(req);\r
String message = isAuthorizedForProvisioning(req);\r
if (message != null) {\r
setIpFqdnRequestIDandInvocationIDForEelf("doGet", req);\r
eelfLogger.info(EelfMsgs.ENTRY);\r
try {\r
- eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_SUBID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");\r
+ eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_SUBID,\r
+ req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");\r
EventLogRecord elr = new EventLogRecord(req);\r
String message = isAuthorizedForProvisioning(req);\r
if (message != null) {\r
setIpFqdnRequestIDandInvocationIDForEelf("doPut", req);\r
eelfLogger.info(EelfMsgs.ENTRY);\r
try {\r
- eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_SUBID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");\r
+ eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_SUBID,\r
+ req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");\r
EventLogRecord elr = new EventLogRecord(req);\r
String message = isAuthorizedForProvisioning(req);\r
if (message != null) {\r
sub.setSubid(oldsub.getSubid());\r
sub.setFeedid(oldsub.getFeedid());\r
sub.setSubscriber(bhdr); // set from X-DMAAP-DR-ON-BEHALF-OF header\r
-\r
- String subjectgroup = (req.getHeader("X-DMAAP-DR-ON-BEHALF-OF-GROUP")); //Adding for group feature:Rally US708115\r
+ //Adding for group feature:Rally US708115\r
+ String subjectgroup = (req.getHeader("X-DMAAP-DR-ON-BEHALF-OF-GROUP"));\r
if (!oldsub.getSubscriber().equals(sub.getSubscriber()) && subjectgroup == null) {\r
message = "This subscriber must be modified by the same subscriber that created it.";\r
elr.setMessage(message);\r
try {\r
// Only the active POD sends notifications\r
boolean active = SynchronizerTask.getSynchronizer().isActive();\r
- boolean b = jo.getBoolean("failed");\r
- if (active && !b) {\r
+ boolean bool = jo.getBoolean("failed");\r
+ if (active && !bool) {\r
// Notify all nodes to reset the subscription\r
- SubscriberNotifyThread t = new SubscriberNotifyThread();\r
- t.resetSubscription(subid);\r
- t.start();\r
+ SubscriberNotifyThread thread = new SubscriberNotifyThread();\r
+ thread.resetSubscription(subid);\r
+ thread.start();\r
}\r
// send response\r
elr.setResult(HttpServletResponse.SC_ACCEPTED);\r
\r
void resetSubscription(int subid) {\r
for (String nodename : BaseServlet.getNodes()) {\r
- String u = String.format(URL_TEMPLATE, nodename, subid);\r
- urls.add(u);\r
+ String url = String.format(URL_TEMPLATE, nodename, subid);\r
+ urls.add(url);\r
}\r
}\r
\r
* @author Robert Eby
* @version $Id: SynchronizerTask.java,v 1.10 2014/03/21 13:50:10 eby Exp $
*/
+
public class SynchronizerTask extends TimerTask {
/**
// Run once every 5 seconds to check DNS, etc.
long interval;
try {
- String s = props.getProperty("org.onap.dmaap.datarouter.provserver.sync_interval", "5000");
- interval = Long.parseLong(s);
+ String str = props.getProperty("org.onap.dmaap.datarouter.provserver.sync_interval", "5000");
+ interval = Long.parseLong(str);
} catch (NumberFormatException e) {
interval = 5000L;
}
Collection<Syncable> coll = new ArrayList<>();
for (int n = 0; n < ja.length(); n++) {
try {
- Feed f = new Feed(ja.getJSONObject(n));
- coll.add(f);
+ Feed feed = new Feed(ja.getJSONObject(n));
+ coll.add(feed);
} catch (Exception e) {
logger.warn("PROV5004: Invalid object in feed: " + ja.optJSONObject(n), e);
}
for (int n = 0; n < ja.length(); n++) {
try {
//Data Router Subscriber HTTPS Relaxation feature USERSTORYID:US674047.
- JSONObject j = ja.getJSONObject(n);
- j.put("sync", "true");
- Subscription s = new Subscription(j);
- coll.add(s);
+ JSONObject jsonObject = ja.getJSONObject(n);
+ jsonObject.put("sync", "true");
+ Subscription sub = new Subscription(jsonObject);
+ coll.add(sub);
} catch (Exception e) {
logger.warn("PROV5004: Invalid object in subscription: " + ja.optJSONObject(n), e);
}
Collection<Syncable> coll = new ArrayList<>();
for (int n = 0; n < ja.length(); n++) {
try {
- Group g = new Group(ja.getJSONObject(n));
- coll.add(g);
+ Group group = new Group(ja.getJSONObject(n));
+ coll.add(group);
} catch (Exception e) {
logger.warn("PROV5004: Invalid object in group: " + ja.optJSONObject(n), e);
}
private void syncParams(JSONObject jo) {
Collection<Syncable> coll = new ArrayList<>();
for (String k : jo.keySet()) {
- String v = "";
+ String val = "";
try {
- v = jo.getString(k);
+ val = jo.getString(k);
} catch (JSONException e) {
logger.warn("PROV5004: Invalid object in parameters: " + jo.optJSONObject(k), e);
try {
- v = "" + jo.getInt(k);
+ val = "" + jo.getInt(k);
} catch (JSONException e1) {
logger.warn("PROV5004: Invalid object in parameters: " + jo.optInt(k), e1);
JSONArray ja = jo.getJSONArray(k);
for (int i = 0; i < ja.length(); i++) {
if (i > 0) {
- v += "|";
+ val += "|";
}
- v += ja.getString(i);
+ val += ja.getString(i);
}
}
}
- coll.add(new Parameters(k, v));
+ coll.add(new Parameters(k, val));
}
if (sync(coll, Parameters.getParameterCollection())) {
BaseServlet.provisioningDataChanged();
return newobj.doInsert(conn);
}
- private Map<String, Syncable> getMap(Collection<? extends Syncable> c) {
+ private Map<String, Syncable> getMap(Collection<? extends Syncable> coll) {
Map<String, Syncable> map = new HashMap<>();
- for (Syncable v : c) {
+ for (Syncable v : coll) {
map.put(v.getKey(), v);
}
return map;
String url = URLUtilities.generatePeerLogsURL();
HttpPost post = new HttpPost(url);
try {
- String t = bs.toString();
- HttpEntity body = new ByteArrayEntity(t.getBytes(), ContentType.create(TEXT_CT));
+ String str = bs.toString();
+ HttpEntity body = new ByteArrayEntity(str.getBytes(), ContentType.create(TEXT_CT));
post.setEntity(body);
if (logger.isDebugEnabled()) {
- logger.debug("Requesting records: " + t);
+ logger.debug("Requesting records: " + str);
}
HttpResponse response = httpclient.execute(post);