DelItem[] items = cv.toArray(new DelItem[cv.size()]);
Arrays.sort(items);
long stop = (long) (tspace * fdstop);
- logger.info(
+ logger.warn(
"NODE0501 Free disk space below red threshold. current=" + cur + " red=" + start + TOTAL + tspace);
if (determineFreeDiskSpace(spoolfile, tspace, stop, cur, items)) {
return;
}
cur = spoolfile.getUsableSpace();
if (cur >= stop) {
- logger.info("NODE0503 Free disk space at or above yellow threshold. current=" + cur + YELLOW + stop
+ logger.warn("NODE0503 Free disk space at or above yellow threshold. current=" + cur + YELLOW + stop
+ TOTAL + tspace);
return;
}
private boolean determineFreeDiskSpace(File spoolfile, long tspace, long stop, long cur, DelItem[] items) {
for (DelItem item : items) {
long amount = dqs.get(item.getSpool()).cancelTask(item.getPublishId());
- logger.info("NODE0502 Attempting to discard " + item.getSpool() + "/" + item.getPublishId()
+ logger.debug("NODE0502 Attempting to discard " + item.getSpool() + "/" + item.getPublishId()
+ " to free up disk");
if (amount > 0) {
cur += amount;
cur = spoolfile.getUsableSpace();
}
if (cur >= stop) {
- logger.info(
+ logger.warn(
"NODE0503 Free disk space at or above yellow threshold. current=" + cur + YELLOW + stop
+ TOTAL + tspace);
return true;
*/
private synchronized void markSuccess(DeliveryTask task) {
working.remove(task.getPublishId());
- logger.debug(task.getPublishId() + " marked as success.");
+ logger.info(task.getPublishId() + " marked as success.");
task.clean();
failed = false;
failduration = 0;
* Mark that a delivery task has expired.
*/
private synchronized void markExpired(DeliveryTask task) {
- logger.debug(task.getPublishId() + " marked as expired.");
+ logger.info(task.getPublishId() + " marked as expired.");
task.clean();
}
*/
private synchronized void markFailNoRetry(DeliveryTask task) {
working.remove(task.getPublishId());
- logger.debug(task.getPublishId() + " marked as failed permanently");
+ logger.info(task.getPublishId() + " marked as failed permanently");
task.clean();
failed = false;
failduration = 0;
*/
private synchronized void markRedirect(DeliveryTask task) {
working.remove(task.getPublishId());
- logger.debug(task.getPublishId() + " marked as redirected.");
+ logger.info(task.getPublishId() + " marked as redirected.");
retry.put(task.getPublishId(), task);
}
*/
private synchronized void markFailWithRetry(DeliveryTask task) {
working.remove(task.getPublishId());
- logger.debug(task.getPublishId() + " marked as temporarily failed.");
+ logger.info(task.getPublishId() + " marked as temporarily failed.");
retry.put(task.getPublishId(), task);
fdupdate();
}
long endtime = System.currentTimeMillis() + deliveryQueueHelper.getFairTimeLimit();
int filestogo = deliveryQueueHelper.getFairFileLimit();
while ((task = getNext()) != null) {
- logger.debug("Processing file: " + task.getPublishId());
+ logger.info("Processing file: " + task.getPublishId());
task.run();
if (--filestogo <= 0 || System.currentTimeMillis() > endtime) {
break;
logger.error("IsFrom: UnknownHostEx: " + e.toString(), e);
}
ips = hostAddrArray.toArray(new String[0]);
- logger.info("IsFrom: DNS ENTRIES FOR FQDN " + fqdn + " : " + Arrays.toString(ips));
+ logger.debug("IsFrom: DNS ENTRIES FOR FQDN " + fqdn + " : " + Arrays.toString(ips));
}
for (String ipAddr : ips) {
if (ipAddr.equals(ip)) {
Properties drNodeProperties = new Properties();
try {
- eelfLogger.info("NODE0301 Loading local config file node.properties");
+ eelfLogger.debug("NODE0301 Loading local config file node.properties");
drNodeProperties.load(new FileInputStream(System
.getProperty("org.onap.dmaap.datarouter.node.properties", "/opt/app/datartr/etc/node.properties")));
} catch (Exception e) {
eelfLogger.error(EelfMsgs.MESSAGE_BAD_PROV_URL, e, provurl);
exit(1);
}
- eelfLogger.info("NODE0303 Provisioning server is " + provhost);
+ eelfLogger.debug("NODE0303 Provisioning server is " + provhost);
eventlogurl = drNodeProperties.getProperty("LogUploadURL", "https://feeds-drtr.web.att.com/internal/logs");
provcheck = new IsFrom(provhost);
gfport = Integer.parseInt(drNodeProperties.getProperty("IntHttpPort", "8080"));
eelfLogger.error("NODE0309 Unable to fetch canonical name from keystore file " + ksfile);
exit(1);
}
- eelfLogger.info("NODE0304 My certificate says my name is " + myname);
+ eelfLogger.debug("NODE0304 My certificate says my name is " + myname);
pid = new PublishId(myname);
long minrsinterval = Long.parseLong(drNodeProperties.getProperty("MinRedirSaveInterval", "10000"));
long minpfinterval = Long.parseLong(drNodeProperties.getProperty("MinProvFetchInterval", "10000"));
fetchconfig();
}
};
- eelfLogger.info("NODE0305 Attempting to fetch configuration at " + provurl);
+ eelfLogger.debug("NODE0305 Attempting to fetch configuration at " + provurl);
pfetcher.request();
}
private void fetchconfig() {
try {
- eelfLogger.info("NodeConfigMan.fetchConfig: provurl:: " + provurl);
+ eelfLogger.debug("NodeConfigMan.fetchConfig: provurl:: " + provurl);
Reader reader = new InputStreamReader((new URL(provurl)).openStream());
config = new NodeConfig(new ProvData(reader), myname, spooldir, port, nak);
localconfig();
*/
public synchronized void gofetch(String remoteAddr) {
if (provcheck.isReachable(remoteAddr)) {
- eelfLogger.info("NODE0307 Received configuration fetch request from provisioning server " + remoteAddr);
+ eelfLogger.debug("NODE0307 Received configuration fetch request from provisioning server " + remoteAddr);
pfetcher.request();
} else {
- eelfLogger.info("NODE0308 Received configuration fetch request from unexpected server " + remoteAddr);
+ eelfLogger.debug("NODE0308 Received configuration fetch request from unexpected server " + remoteAddr);
}
}
if (provcheck.isFrom(remoteaddr)) {
String sdir = config.getSpoolDir(subid);
if (sdir != null) {
- eelfLogger.info("NODE0310 Received subscription reset request for subscription " + subid
+ eelfLogger.debug("NODE0310 Received subscription reset request for subscription " + subid
+ " from provisioning server " + remoteaddr);
} else {
- eelfLogger.info("NODE0311 Received subscription reset request for unknown subscription " + subid
+ eelfLogger.debug("NODE0311 Received subscription reset request for unknown subscription " + subid
+ " from provisioning server " + remoteaddr);
}
return (sdir);
} else {
- eelfLogger.info("NODE0312 Received subscription reset request from unexpected server " + remoteaddr);
+ eelfLogger.debug("NODE0312 Received subscription reset request from unexpected server " + remoteaddr);
return (null);
}
}
* system property. By default, it is "/opt/app/datartr/etc/node.properties".
*/
public static void main(String[] args) throws Exception {
- nodeMainLogger.info("NODE0001 Data Router Node Starting");
+ nodeMainLogger.debug("NODE0001 Data Router Node Starting");
IsFrom.setDNSCache();
nodeConfigManager = NodeConfigManager.getInstance();
- nodeMainLogger.info("NODE0002 I am " + nodeConfigManager.getMyName());
+ nodeMainLogger.debug("NODE0002 I am " + nodeConfigManager.getMyName());
(new WaitForConfig(nodeConfigManager)).waitForConfig();
delivery = new Delivery(nodeConfigManager);
new LogManager(nodeConfigManager);
sslContextFactory.addExcludeProtocols("SSLv3");
sslContextFactory.setIncludeProtocols(nodeConfigManager.getEnabledprotocols());
- nodeMainLogger.info("NODE00004 Unsupported protocols node server:-"
+ nodeMainLogger.debug("NODE00004 Unsupported protocols node server:-"
+ String.join(",", sslContextFactory.getExcludeProtocols()));
- nodeMainLogger.info("NODE00004 Supported protocols node server:-"
+ nodeMainLogger.debug("NODE00004 Supported protocols node server:-"
+ String.join(",", sslContextFactory.getIncludeProtocols()));
- nodeMainLogger.info("NODE00004 Unsupported ciphers node server:-"
+ nodeMainLogger.debug("NODE00004 Unsupported ciphers node server:-"
+ String.join(",", sslContextFactory.getExcludeCipherSuites()));
HttpConfiguration httpsConfiguration = new HttpConfiguration(httpConfiguration);
try {
server.start();
- nodeMainLogger.info("NODE00006 Node Server started-" + server.getState());
+ nodeMainLogger.debug("NODE00006 Node Server started-" + server.getState());
} catch (Exception e) {
- nodeMainLogger.info("NODE00006 Jetty failed to start. Reporting will we unavailable: " + e.getMessage(), e);
+ nodeMainLogger.error("NODE00006 Jetty failed to start. Reporting will we unavailable: " + e.getMessage(), e);
}
server.join();
- nodeMainLogger.info("NODE00007 Node Server joined - " + server.getState());
+ nodeMainLogger.debug("NODE00007 Node Server joined - " + server.getState());
}
private static void enableCadi(ServletContextHandler servletContextHandler) throws ServletException {
.error("NODE00005 Exception in NodeMain.Main() loading CADI properties " + e1.getMessage(), e1);
}
cadiProperties.setProperty("aaf_locate_url", nodeConfigManager.getAafURL());
- nodeMainLogger.info("NODE00005 aaf_url set to - " + cadiProperties.getProperty("aaf_url"));
+ nodeMainLogger.debug("NODE00005 aaf_url set to - " + cadiProperties.getProperty("aaf_url"));
PropAccess access = new PropAccess(cadiProperties);
servletContextHandler.addFilter(new FilterHolder(new DRNodeCadiFilter(true, access)), "/*", EnumSet
synchronized void waitForConfig() {
localNodeConfigManager.registerConfigTask(this);
while (!localNodeConfigManager.isConfigured()) {
- nodeMainLogger.info("NODE0003 Waiting for Node Configuration");
+ nodeMainLogger.debug("NODE0003 Waiting for Node Configuration");
try {
wait();
} catch (Exception exception) {
}
}
localNodeConfigManager.deregisterConfigTask(this);
- nodeMainLogger.info("NODE0004 Node Configuration Data Received");
+ nodeMainLogger.debug("NODE0004 Node Configuration Data Received");
}
}
@Override
public void init() {
config = NodeConfigManager.getInstance();
- eelfLogger.info("NODE0101 Node Servlet Configured");
+ eelfLogger.debug("NODE0101 Node Servlet Configured");
}
private boolean down(HttpServletResponse resp) {
if (config.isShutdown() || !config.isConfigured()) {
sendResponseError(resp, HttpServletResponse.SC_SERVICE_UNAVAILABLE, eelfLogger);
- eelfLogger.info("NODE0102 Rejecting request: Service is being quiesced");
+ eelfLogger.error("NODE0102 Rejecting request: Service is being quiesced");
return true;
}
return false;
NodeUtils.setRequestIdAndInvocationId(req);
eelfLogger.info(EelfMsgs.ENTRY);
try {
- eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID, req.getHeader(ON_BEHALF_OF),
+ eelfLogger.debug(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID, req.getHeader(ON_BEHALF_OF),
getIdFromPath(req) + "");
if (down(resp)) {
return;
}
}
- eelfLogger.info("NODE0103 Rejecting invalid GET of " + path + FROM + ip);
+ eelfLogger.debug("NODE0103 Rejecting invalid GET of " + path + FROM + ip);
sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, eelfLogger);
} finally {
eelfLogger.info(EelfMsgs.EXIT);
NodeUtils.setIpAndFqdnForEelf("doPut");
NodeUtils.setRequestIdAndInvocationId(req);
eelfLogger.info(EelfMsgs.ENTRY);
- eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID, req.getHeader(ON_BEHALF_OF),
+ eelfLogger.debug(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID, req.getHeader(ON_BEHALF_OF),
getIdFromPath(req) + "");
try {
common(req, resp, true);
NodeUtils.setIpAndFqdnForEelf("doDelete");
NodeUtils.setRequestIdAndInvocationId(req);
eelfLogger.info(EelfMsgs.ENTRY);
- eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID, req.getHeader(ON_BEHALF_OF),
+ eelfLogger.debug(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID, req.getHeader(ON_BEHALF_OF),
getIdFromPath(req) + "");
try {
common(req, resp, false);
if (!("legacy".equalsIgnoreCase(aafInstance))) {
isAAFFeed = true;
String permission = config.getPermission(aafInstance);
- eelfLogger.info("NodeServlet.common() permission string - " + permission);
+ eelfLogger.debug("NodeServlet.common() permission string - " + permission);
//Check in CADI Framework API if user has AAF permission or not
if (!req.isUserInRole(permission)) {
String message = "AAF disallows access to permission string - " + permission;
.cleanString(feedid) + " fileid " + PathUtil.cleanString(fileid) + FROM + PathUtil
.cleanString(ip) + " reason Invalid AAF user- " + PathUtil.cleanString(reason));
String message = "Invalid AAF user- " + PathUtil.cleanString(reason);
- eelfLogger.info("NODE0308 Rejecting unauthenticated PUT or DELETE of " + PathUtil
+ eelfLogger.debug("NODE0308 Rejecting unauthenticated PUT or DELETE of " + PathUtil
.cleanString(req.getPathInfo()) + FROM + PathUtil.cleanString(req.getRemoteAddr()));
resp.sendError(HttpServletResponse.SC_FORBIDDEN, message);
return;
}
String redirto = HTTPS + newnode + port + PUBLISH + feedid + "/" + fileid;
eelfLogger
- .info("NODE0108 Redirecting publish attempt for feed " + PathUtil.cleanString(feedid) + USER
+ .debug("NODE0108 Redirecting publish attempt for feed " + PathUtil.cleanString(feedid) + USER
+ PathUtil.cleanString(user) + " ip " + PathUtil.cleanString(ip) + " to " + PathUtil
.cleanString(redirto)); //Fortify scan fixes - log forging
resp.sendRedirect(PathUtil.cleanString(redirto)); //Fortify scan fixes-open redirect - 2 issues
}
boolean result = delivery.markTaskSuccess(config.getSpoolBase() + "/s/" + subIdDir + "/" + subId, pubid);
if (result) {
- eelfLogger.info("NODE0115 Successfully deleted files (" + pubid + ", " + pubid + FROM_DR_MESSAGE
+ eelfLogger.debug("NODE0115 Successfully deleted files (" + pubid + ", " + pubid + FROM_DR_MESSAGE
+ config.getMyName());
resp.setStatus(HttpServletResponse.SC_OK);
eelfLogger.info(EelfMsgs.EXIT);
instance.log(
"PUB|" + pubid + "|" + feedid + "|" + requrl + "|" + method + "|" + ctype + "|" + clen + "|" + srcip
+ "|" + user + "|" + status);
+ eelfLogger.info("PUB|" + pubid + "|" + feedid + "|" + requrl + "|" + method + "|" + ctype + "|" + clen + "|" + srcip
+ + "|" + user + "|" + status);
}
/**
long rcvd, String srcip, String user, String error) {
instance.log("PBF|" + pubid + "|" + feedid + "|" + requrl + "|" + method + "|" + ctype + "|" + clen + "|" + rcvd
+ "|" + srcip + "|" + user + "|" + error);
+ eelfLogger.info("PBF|" + pubid + "|" + feedid + "|" + requrl + "|" + method + "|" + ctype + "|" + clen + "|" + rcvd
+ + "|" + srcip + "|" + user + "|" + error);
}
/**
instance.log(
"DEL|" + pubid + "|" + feedid + "|" + subid + "|" + requrl + "|" + method + "|" + ctype + "|" + clen
+ "|" + user + "|" + status + "|" + xpubid);
+ eelfLogger.info("DEL|" + pubid + "|" + feedid + "|" + subid + "|" + requrl + "|" + method + "|" + ctype + "|" + clen
+ + "|" + user + "|" + status + "|" + xpubid);
}
/**
instance.log(
"EXP|" + pubid + "|" + feedid + "|" + subid + "|" + requrl + "|" + method + "|" + ctype + "|" + clen
+ "|" + reason + "|" + attempts);
+ eelfLogger.info("EXP|" + pubid + "|" + feedid + "|" + subid + "|" + requrl + "|" + method + "|" + ctype + "|" + clen
+ + "|" + reason + "|" + attempts);
}
/**
return;
}
instance.log("DLX|" + pubid + "|" + feedid + "|" + subid + "|" + clen + "|" + sent);
+ eelfLogger.info("DLX|" + pubid + "|" + feedid + "|" + subid + "|" + clen + "|" + sent);
}
private synchronized void checkRoll(long now) throws IOException {
--- /dev/null
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.dmaap.datarouter.node.eelf;
+
+import ch.qos.logback.classic.Level;
+import ch.qos.logback.classic.spi.ILoggingEvent;
+import ch.qos.logback.core.filter.Filter;
+import ch.qos.logback.core.spi.FilterReply;
+
+
+public class DebugFilter extends Filter<ILoggingEvent> {
+ @Override
+ public FilterReply decide(ILoggingEvent event) {
+ if (event.getLevel().equals(Level.DEBUG) && !event.getMessage().contains("org.eclipse.jetty")) {
+ return FilterReply.ACCEPT;
+ } else {
+ return FilterReply.DENY;
+ }
+ }
+}
--- /dev/null
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.dmaap.datarouter.node.eelf;
+
+import ch.qos.logback.classic.Level;
+import ch.qos.logback.classic.spi.ILoggingEvent;
+import ch.qos.logback.core.filter.Filter;
+import ch.qos.logback.core.spi.FilterReply;
+
+
+public class ErrorFilter extends Filter<ILoggingEvent> {
+ @Override
+ public FilterReply decide(ILoggingEvent event) {
+ if ((event.getLevel().equals(Level.ERROR) || event.getLevel().equals(Level.WARN)) && !event.getMessage().contains("org.eclipse.jetty")) {
+ return FilterReply.ACCEPT;
+ } else {
+ return FilterReply.DENY;
+ }
+ }
+}
public class JettyFilter extends Filter<ILoggingEvent> {
@Override
public FilterReply decide(ILoggingEvent event) {
- if (event.getMessage().contains("org.eclipse.jetty")) {
+ if (event.getMessage().contains("org.eclipse.jetty") || event.getLoggerName().contains("org.eclipse.jetty")) {
return FilterReply.ACCEPT;
} else {
return FilterReply.DENY;
public class MetricsFilter extends Filter<ILoggingEvent> {
@Override
public FilterReply decide(ILoggingEvent event) {
- if (event.getLevel().equals(Level.INFO) && !event.getMessage().contains("jetty")) {
+ if (event.getLevel().equals(Level.INFO) && !event.getMessage().contains("org.eclipse.jetty") && !event.getLoggerName().contains("org.eclipse.jetty")) {
if (!event.getMessage().contains("DEL|") && !event.getMessage().contains("PUB|") && !event.getMessage().contains(
"PBF|") && !event.getMessage().contains("EXP|") && !event.getMessage().contains("DLX|")) {
return FilterReply.ACCEPT;
<appender name="Debug"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${logDirectory}/${debugLog}.log</file>
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <level>DEBUG</level>
- <onMatch>ACCEPT</onMatch>
- <onMismatch>DENY</onMismatch>
+ <filter class="org.onap.dmaap.datarouter.node.eelf.DebugFilter">
</filter>
<rollingPolicy
class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<appender name="Error"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${logDirectory}/${errorLog}.log</file>
- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
- <level>WARN</level>
- <onMatch>ACCEPT</onMatch>
- <onMismatch>DENY</onMismatch>
+ <filter class="org.onap.dmaap.datarouter.node.eelf.ErrorFilter">
</filter>
<rollingPolicy
class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<appender-ref ref="asyncAudit" />
</logger>
- <logger name="com.att.eelf" level="info" additivity="false">
+ <logger name="com.att.eelf" additivity="false">
<appender-ref ref="asyncMetrics" />
</logger>
- <logger name="com.att.eelf" level="debug" additivity="false">
+ <logger name="com.att.eelf" additivity="false">
<appender-ref ref="asyncDebug" />
</logger>
- <logger name="com.att.eelf.error" level="error" additivity="false">
- <appender-ref ref="asyncError" />
- </logger>
+ <logger name="com.att.eelf.error" additivity="false">
+ <appender-ref ref="asyncError" />
+ </logger>
- <logger name="log4j.logger.org.eclipse.jetty" additivity="false" level="info">
- <appender-ref ref="asyncJettyLog"/>
- </logger>
+ <logger name="log4j.logger.org.eclipse.jetty" additivity="false">
+ <appender-ref ref="asyncJettyLog"/>
+ </logger>
--- /dev/null
+/*******************************************************************************
+ * ============LICENSE_START==================================================
+ * * org.onap.dmaap
+ * * ===========================================================================
+ * * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * * ===========================================================================
+ * * Licensed under the Apache License, Version 2.0 (the "License");
+ * * you may not use this file except in compliance with the License.
+ * * You may obtain a copy of the License at
+ * *
+ * * http://www.apache.org/licenses/LICENSE-2.0
+ * *
+ * * Unless required by applicable law or agreed to in writing, software
+ * * distributed under the License is distributed on an "AS IS" BASIS,
+ * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * * See the License for the specific language governing permissions and
+ * * limitations under the License.
+ * * ============LICENSE_END====================================================
+ * *
+ * * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ * *
+ ******************************************************************************/
+
+package org.onap.dmaap.datarouter.node;
+
+import static java.util.Arrays.asList;
+import static org.junit.Assert.assertEquals;
+import static org.onap.dmaap.datarouter.node.eelf.EelfMsgs.MESSAGE_WITH_BEHALF;
+
+import ch.qos.logback.classic.Level;
+import ch.qos.logback.classic.spi.LoggingEvent;
+import ch.qos.logback.core.spi.FilterReply;
+import java.util.List;
+import org.junit.Test;
+import org.onap.dmaap.datarouter.node.eelf.AuditFilter;
+import org.onap.dmaap.datarouter.node.eelf.DebugFilter;
+import org.onap.dmaap.datarouter.node.eelf.ErrorFilter;
+import org.onap.dmaap.datarouter.node.eelf.JettyFilter;
+import org.onap.dmaap.datarouter.node.eelf.MetricsFilter;
+
+public class LogbackFilterTest {
+
+ @Test
+ public void Given_Event_with_valid_status_then_audit_Filter_ACCEPT() {
+ final List<String> validStatus = asList("DEL|", "PUB|", "PBF|", "EXP|", "DLX|");
+ final AuditFilter filter = new AuditFilter();
+ filter.start();
+
+ for (final String status : validStatus) {
+ final LoggingEvent event = new LoggingEvent();
+ event.setMessage("Test " + status);
+ assertEquals(FilterReply.ACCEPT, filter.decide(event));
+ }
+ }
+
+ @Test
+ public void Given_Event_with_invalid_status_then_audit_Filter_DENY() {
+ final AuditFilter filter = new AuditFilter();
+ filter.start();
+ final LoggingEvent event = new LoggingEvent();
+ event.setMessage("Invalid status");
+ assertEquals(FilterReply.DENY, filter.decide(event));
+ }
+
+ @Test
+ public void Given_Event_with_valid_jetty_string_and_invalid_logger_then_jetty_Filter_ACCEPT() {
+ final JettyFilter filter = new JettyFilter();
+ filter.start();
+ final LoggingEvent event = new LoggingEvent();
+ event.setMessage("org.eclipse.jetty");
+ event.setLoggerName("org.invalid.jetty");
+ assertEquals(FilterReply.ACCEPT, filter.decide(event));
+ }
+
+ @Test
+ public void Given_Event_with_valid_jetty_string_and_valid_logger_then_jetty_Filter_ACCEPT() {
+ final JettyFilter filter = new JettyFilter();
+ filter.start();
+ final LoggingEvent event = new LoggingEvent();
+ event.setMessage("org.eclipse.jetty");
+ event.setLoggerName("org.eclipse.jetty");
+ assertEquals(FilterReply.ACCEPT, filter.decide(event));
+ }
+
+ @Test
+ public void Given_Event_with_invalid_jetty_string_and_valid_logger_then_jetty_Filter_DENY() {
+ final JettyFilter filter = new JettyFilter();
+ filter.start();
+ final LoggingEvent event = new LoggingEvent();
+ event.setMessage("org.invalid.jetty");
+ event.setLoggerName("org.invalid.jetty");
+ assertEquals(FilterReply.DENY, filter.decide(event));
+ }
+
+ @Test
+ public void Given_Event_with_level_info_and_valid_jetty_string_then_metrics_filter_DENY() {
+ final MetricsFilter filter = new MetricsFilter();
+ filter.start();
+ final LoggingEvent event = new LoggingEvent();
+ event.setLevel(Level.INFO);
+ event.setMessage("org.eclipse.jetty");
+ assertEquals(FilterReply.DENY, filter.decide(event));
+
+ }
+
+ @Test
+ public void Given_Event_with_level_not_info_and_valid_jetty_string_then_metrics_filter_DENY() {
+ final MetricsFilter filter = new MetricsFilter();
+ filter.start();
+ final LoggingEvent event = new LoggingEvent();
+ event.setLevel(Level.DEBUG);
+ event.setMessage("org.eclipse.jetty");
+ assertEquals(FilterReply.DENY, filter.decide(event));
+
+ }
+
+ @Test
+ public void Given_Event_with_level_not_info_and_invalid_jetty_string_and_valid_logger_then_metrics_filter_DENY() {
+ final MetricsFilter filter = new MetricsFilter();
+ filter.start();
+ final LoggingEvent event = new LoggingEvent();
+ event.setLevel(Level.DEBUG);
+ event.setMessage("org.invalid.jetty");
+ event.setLoggerName("org.eclipse.jetty");
+ assertEquals(FilterReply.DENY, filter.decide(event));
+ }
+
+ @Test
+ public void Given_Event_with_level_not_info_and_invalid_jetty_string_and_invalid_logger_then_metrics_filter_DENY() {
+ final MetricsFilter filter = new MetricsFilter();
+ filter.start();
+ final LoggingEvent event = new LoggingEvent();
+ event.setLevel(Level.DEBUG);
+ event.setMessage("org.invalid.jetty");
+ event.setLoggerName("org.eclipse.jetty");
+ event.setLoggerName("org.invalid.jetty");
+ assertEquals(FilterReply.DENY, filter.decide(event));
+ }
+
+ @Test
+ public void Given_Event_with_level_info_and_invalid_jetty_string_and_status_in_status_list_and_valid_logger_then_metrics_filter_DENY() {
+ final List<String> validStatus = asList("DEL|", "PUB|", "PBF|", "EXP|", "DLX|");
+ final MetricsFilter filter = new MetricsFilter();
+ filter.start();
+
+ for (final String status : validStatus) {
+ final LoggingEvent event = new LoggingEvent();
+ event.setLevel(Level.INFO);
+ event.setMessage(status);
+ event.setLoggerName("org.eclipse.jetty");
+ assertEquals(FilterReply.DENY, filter.decide(event));
+ }
+ }
+
+ @Test
+ public void Given_Event_with_level_info_and_invalid_jetty_string_and_status_in_status_list_and_invalid_logger_then_metrics_filter_DENY() {
+ final List<String> validStatus = asList("DEL|", "PUB|", "PBF|", "EXP|", "DLX|");
+ final MetricsFilter filter = new MetricsFilter();
+ filter.start();
+
+ for (final String status : validStatus) {
+ final LoggingEvent event = new LoggingEvent();
+ event.setLevel(Level.INFO);
+ event.setMessage(status);
+ event.setLoggerName("org.invalid.jetty");
+ assertEquals(FilterReply.DENY, filter.decide(event));
+ }
+ }
+
+ @Test
+ public void Given_Event_with_level_info_and_invalid_jetty_string_and_status_not_in_status_list_and_valid_logger_then_metrics_filter_DENY() {
+ final MetricsFilter filter = new MetricsFilter();
+ filter.start();
+ final LoggingEvent event = new LoggingEvent();
+ event.setLevel(Level.INFO);
+ event.setMessage("Invalid status");
+ event.setLoggerName("org.eclipse.jetty");
+ assertEquals(FilterReply.DENY, filter.decide(event));
+ }
+
+ @Test
+ public void Given_Event_with_level_info_and_invalid_jetty_string_and_status_not_in_status_list_and_invalid_logger_then_metrics_filter_ACCEPT() {
+ final MetricsFilter filter = new MetricsFilter();
+ filter.start();
+ final LoggingEvent event = new LoggingEvent();
+ event.setLevel(Level.INFO);
+ event.setMessage("Invalid status");
+ event.setLoggerName("org.invalid.jetty");
+ assertEquals(FilterReply.ACCEPT, filter.decide(event));
+ }
+
+ @Test
+ public void Given_Event_with_level_debug_and_valid_jetty_string_then_debug_filter_DENY() {
+ final DebugFilter filter = new DebugFilter();
+ filter.start();
+ final LoggingEvent event = new LoggingEvent();
+ event.setLevel(Level.DEBUG);
+ event.setMessage("org.eclipse.jetty");
+ assertEquals(FilterReply.DENY, filter.decide(event));
+
+ }
+
+ @Test
+ public void Given_Event_with_level_not_debug_and_valid_jetty_string_then_debug_filter_DENY() {
+ final DebugFilter filter = new DebugFilter();
+ filter.start();
+ final LoggingEvent event = new LoggingEvent();
+ event.setLevel(Level.INFO);
+ event.setMessage("org.eclipse.jetty");
+ assertEquals(FilterReply.DENY, filter.decide(event));
+
+ }
+
+ @Test
+ public void Given_Event_with_level_not_debug_and_not_valid_jetty_string_then_debug_filter_DENY() {
+ final DebugFilter filter = new DebugFilter();
+ filter.start();
+ final LoggingEvent event = new LoggingEvent();
+ event.setLevel(Level.INFO);
+ event.setMessage("org.invalid.jetty");
+ assertEquals(FilterReply.DENY, filter.decide(event));
+
+ }
+
+ @Test
+ public void Given_Event_with_level_debug_and_not_valid_jetty_string_then_debug_filter_ACCEPT() {
+ final DebugFilter filter = new DebugFilter();
+ filter.start();
+ final LoggingEvent event = new LoggingEvent();
+ event.setLevel(Level.DEBUG);
+ event.setMessage("org.invalid.jetty");
+ assertEquals(FilterReply.ACCEPT, filter.decide(event));
+
+ }
+
+ @Test
+ public void Given_Event_with_level_error_and_valid_jetty_string_then_error_filter_DENY() {
+ final ErrorFilter filter = new ErrorFilter();
+ filter.start();
+ final LoggingEvent event = new LoggingEvent();
+ event.setLevel(Level.ERROR);
+ event.setMessage("org.eclipse.jetty");
+ assertEquals(FilterReply.DENY, filter.decide(event));
+
+ }
+
+ @Test
+ public void Given_Event_with_level_warn_and_valid_jetty_string_then_error_filter_DENY() {
+ final ErrorFilter filter = new ErrorFilter();
+ filter.start();
+ final LoggingEvent event = new LoggingEvent();
+ event.setLevel(Level.WARN);
+ event.setMessage("org.eclipse.jetty");
+ assertEquals(FilterReply.DENY, filter.decide(event));
+
+ }
+
+ @Test
+ public void Given_Event_with_level_not_warn_or_error_and_valid_jetty_string_then_error_filter_DENY() {
+ final ErrorFilter filter = new ErrorFilter();
+ filter.start();
+ final LoggingEvent event = new LoggingEvent();
+ event.setLevel(Level.INFO);
+ event.setMessage("org.eclipse.jetty");
+ assertEquals(FilterReply.DENY, filter.decide(event));
+
+ }
+
+ @Test
+ public void Given_Event_with_level_not_warn_or_error_and_invalid_jetty_string_then_error_filter_DENY() {
+ final ErrorFilter filter = new ErrorFilter();
+ filter.start();
+ final LoggingEvent event = new LoggingEvent();
+ event.setLevel(Level.INFO);
+ event.setMessage("org.invalid.jetty");
+ assertEquals(FilterReply.DENY, filter.decide(event));
+
+ }
+
+ @Test
+ public void Given_Event_with_level_warn_and_invalid_jetty_string_then_error_filter_ACCEPT() {
+ final ErrorFilter filter = new ErrorFilter();
+ filter.start();
+ final LoggingEvent event = new LoggingEvent();
+ event.setLevel(Level.WARN);
+ event.setMessage("org.invalid.jetty");
+ assertEquals(FilterReply.ACCEPT, filter.decide(event));
+
+ }
+
+ @Test
+ public void Given_Event_with_level_error_and_invalid_jetty_string_then_error_filter_ACCEPT() {
+ final ErrorFilter filter = new ErrorFilter();
+ filter.start();
+ final LoggingEvent event = new LoggingEvent();
+ event.setLevel(Level.ERROR);
+ event.setMessage("org.invalid.jetty");
+ assertEquals(FilterReply.ACCEPT, filter.decide(event));
+
+ }
+
+
+ @Test
+ public void Given_call_to_EelfMsgs_return_the_correct_enum(){
+ assertEquals(MESSAGE_WITH_BEHALF.toString(), "MESSAGE_WITH_BEHALF");
+ }
+
+}
--- /dev/null
+/*******************************************************************************
+ * ============LICENSE_START==================================================
+ * * org.onap.dmaap
+ * * ===========================================================================
+ * * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * * ===========================================================================
+ * * Licensed under the Apache License, Version 2.0 (the "License");
+ * * you may not use this file except in compliance with the License.
+ * * You may obtain a copy of the License at
+ * *
+ * * http://www.apache.org/licenses/LICENSE-2.0
+ * *
+ * * Unless required by applicable law or agreed to in writing, software
+ * * distributed under the License is distributed on an "AS IS" BASIS,
+ * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * * See the License for the specific language governing permissions and
+ * * limitations under the License.
+ * * ============LICENSE_END====================================================
+ * *
+ * * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ * *
+ ******************************************************************************/
+
+package org.onap.dmaap.datarouter.provisioning.eelf;
+
+import static org.junit.Assert.assertEquals;
+import static org.onap.dmaap.datarouter.provisioning.eelf.EelfMsgs.MESSAGE_WITH_BEHALF;
+
+import ch.qos.logback.classic.Level;
+import ch.qos.logback.classic.spi.LoggingEvent;
+import ch.qos.logback.core.spi.FilterReply;
+import org.junit.Test;
+
+
+
+public class LogbackFilterTest {
+
+ @Test
+ public void Given_Event_with_invalid_logger_name_and_debug_level_then_debugtracefilter_DENY(){
+ final DebugTraceFilter filter = new DebugTraceFilter();
+ filter.start();
+ final LoggingEvent event = new LoggingEvent();
+ event.setLoggerName("InvalidLogger");
+ event.setLevel(Level.DEBUG);
+ assertEquals(FilterReply.DENY, filter.decide(event));
+
+ }
+
+ @Test
+ public void Given_Event_with_valid_logger_name_and_info_level_then_debugtracefilter_DENY(){
+ final DebugTraceFilter filter = new DebugTraceFilter();
+ filter.start();
+ final LoggingEvent event = new LoggingEvent();
+ event.setLoggerName("InternalLog");
+ event.setLevel(Level.INFO);
+ assertEquals(FilterReply.DENY, filter.decide(event));
+
+ }
+
+ @Test
+ public void Given_Event_with_valid_logger_name_and_debug_level_then_debugtracefilter_ACCEPT(){
+ final DebugTraceFilter filter = new DebugTraceFilter();
+ filter.start();
+ final LoggingEvent event = new LoggingEvent();
+ event.setLoggerName("InternalLog");
+ event.setLevel(Level.DEBUG);
+ assertEquals(FilterReply.ACCEPT, filter.decide(event));
+
+ }
+
+ @Test
+ public void Given_Event_with_valid_logger_name_and_trace_level_then_debugtracefilter_ACCEPT(){
+ final DebugTraceFilter filter = new DebugTraceFilter();
+ filter.start();
+ final LoggingEvent event = new LoggingEvent();
+ event.setLoggerName("InternalLog");
+ event.setLevel(Level.TRACE);
+ assertEquals(FilterReply.ACCEPT, filter.decide(event));
+
+ }
+
+ @Test
+ public void Given_Event_with_valid_jetty_string_then_jettyfilter_ACCEPT(){
+ final JettyFilter filter = new JettyFilter();
+ filter.start();
+ final LoggingEvent event = new LoggingEvent();
+ event.setLoggerName("org.eclipse.jetty");
+ assertEquals(FilterReply.ACCEPT, filter.decide(event));
+ }
+
+ @Test
+ public void Given_Event_with_invalid_jetty_string_then_jettyfilter_DENY(){
+ final JettyFilter filter = new JettyFilter();
+ filter.start();
+ final LoggingEvent event = new LoggingEvent();
+ event.setLoggerName("org.invalid.jetty");
+ assertEquals(FilterReply.DENY, filter.decide(event));
+ }
+
+ @Test
+ public void Given_Call_to_EelfMsgs_return_the_correct_enum(){
+ assertEquals(MESSAGE_WITH_BEHALF.toString(), "MESSAGE_WITH_BEHALF");
+ }
+}