summaryrefslogtreecommitdiffstats
path: root/feature-eelf
diff options
context:
space:
mode:
authorJorge Hernandez <jh1730@att.com>2017-07-18 01:06:39 -0500
committerJorge Hernandez <jh1730@att.com>2017-07-18 09:18:43 -0500
commitae4a935b835c0dc588c7a53aef846dd6506b732f (patch)
treece2371f6dde3ed453fc0db0affa00038b51ae242 /feature-eelf
parent8ce73e2fca0fdadd23e3557108742514af1205c3 (diff)
[POLICY-66] self-contained features support
installation/enable/disable of self contained package features: Feature 3rd party dependencies, configuration files, and custom installation scripts do not need to be packaged within the policy core base to be used. Change-Id: I35a472e63bd0f9f7aa6cd0c112d41d2b4604a892 Signed-off-by: Jorge Hernandez <jh1730@att.com>
Diffstat (limited to 'feature-eelf')
-rw-r--r--feature-eelf/src/assembly/assemble_zip.xml29
-rw-r--r--feature-eelf/src/main/feature/config/logback-eelf.xml (renamed from feature-eelf/src/main/install/config/logback.xml)9
-rw-r--r--feature-eelf/src/main/feature/install/disable33
-rw-r--r--feature-eelf/src/main/feature/install/enable35
-rw-r--r--feature-eelf/src/main/install/config/policyLogger.properties49
-rw-r--r--feature-eelf/src/main/java/org/openecomp/policy/drools/eelf/EelfFeature.java51
-rw-r--r--feature-eelf/src/test/java/org/openecomp/policy/drools/eelf/test/EElfTest.java32
7 files changed, 129 insertions, 109 deletions
diff --git a/feature-eelf/src/assembly/assemble_zip.xml b/feature-eelf/src/assembly/assemble_zip.xml
index 001d3c66..005d0389 100644
--- a/feature-eelf/src/assembly/assemble_zip.xml
+++ b/feature-eelf/src/assembly/assemble_zip.xml
@@ -35,33 +35,42 @@
<fileSets>
<fileSet>
<directory>target</directory>
- <outputDirectory>lib/opt</outputDirectory>
+ <outputDirectory>lib/feature</outputDirectory>
<includes>
<include>feature-eelf-${project.version}.jar</include>
</includes>
</fileSet>
<fileSet>
- <directory>target/assembly/</directory>
- <outputDirectory>.</outputDirectory>
- <excludes/>
- </fileSet>
- <fileSet>
- <directory>.</directory>
- <outputDirectory>lib</outputDirectory>
+ <directory>target/assembly/lib</directory>
+ <outputDirectory>lib/dependencies</outputDirectory>
<includes>
<include>*.jar</include>
</includes>
</fileSet>
<fileSet>
- <directory>src/main/install/config</directory>
+ <directory>src/main/feature/config</directory>
<outputDirectory>config</outputDirectory>
+ <fileMode>0644</fileMode>
+ <excludes/>
</fileSet>
<fileSet>
- <directory>src/main/install/bin</directory>
+ <directory>src/main/feature/bin</directory>
<outputDirectory>bin</outputDirectory>
<fileMode>0744</fileMode>
<excludes/>
</fileSet>
+ <fileSet>
+ <directory>src/main/feature/db</directory>
+ <outputDirectory>db</outputDirectory>
+ <fileMode>0744</fileMode>
+ <excludes/>
+ </fileSet>
+ <fileSet>
+ <directory>src/main/feature/install</directory>
+ <outputDirectory>install</outputDirectory>
+ <fileMode>0744</fileMode>
+ <excludes/>
+ </fileSet>
</fileSets>
</assembly>
diff --git a/feature-eelf/src/main/install/config/logback.xml b/feature-eelf/src/main/feature/config/logback-eelf.xml
index f4295628..7c2725d8 100644
--- a/feature-eelf/src/main/install/config/logback.xml
+++ b/feature-eelf/src/main/feature/config/logback-eelf.xml
@@ -18,7 +18,7 @@
============LICENSE_END=========================================================
-->
-<configuration scan="true" scanPeriod="30 seconds" debug="false">
+<configuration scan="true" scanPeriod="60 seconds" debug="false">
<property name="errorLogName" value="error" />
<property name="metricsLogName" value="metrics" />
@@ -33,9 +33,10 @@
<property name="defaultAuditPattern"
value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{ServerName}|%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}||%X{ProcessKey}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|%msg%n" />
<property name="defaultErrorPattern"
- value="%d{yyyy-MM-dd'T'HH:mm:ss.SSS+00:00, UTC}|%X{RequestId}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{ErrorCategory}|%X{ErrorCode}|%X{ErrorDesciption}|%msg%n" />
+ value="%d{yyyy-MM-dd'T'HH:mm:ss.SSS+00:00, UTC}|%X{RequestId}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{ErrorCategory}|%X{ErrorCode}|%X{ErrorDesciption}|%msg%replace(%xException){'\n',' - '}%nopex%n" />
+
<property name="networkPattern" value="[%d|%t]%m%n" />
- <property name="debugPattern" value="[%date|%level|%logger{0}|%thread] %msg%n" />
+ <property name="debugPattern" value="[%date|%level|%logger{0}|%thread] %replace(%msg){'\n', ' '}%n" />
<property name="logDirectory" value="logs/Policy" />
<property name="debugLogDirectory" value="logs/Policy" />
@@ -169,7 +170,7 @@
<appender-ref ref="asyncEELFError" />
</logger>
- <logger name="com.att.eelf.debug" level="info" additivity="false">
+ <logger name="com.att.eelf.debug" level="info">
<appender-ref ref="asyncEELFDebug" />
</logger>
diff --git a/feature-eelf/src/main/feature/install/disable b/feature-eelf/src/main/feature/install/disable
new file mode 100644
index 00000000..1eeb090e
--- /dev/null
+++ b/feature-eelf/src/main/feature/install/disable
@@ -0,0 +1,33 @@
+#! /bin/bash
+
+###
+# ============LICENSE_START=======================================================
+# ONAP POLICY
+# ================================================================================
+# Copyright (C) 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=========================================================
+##
+
+if [[ "${DEBUG}" == "y" ]]; then
+ set -x
+fi
+
+SYSTEM_PROPS="${POLICY_HOME}"/config/system.properties
+
+if [[ -f ${SYSTEM_PROPS} && -r ${SYSTEM_PROPS} ]]; then
+ if grep -q "^logback.configurationFile=.*$" "${SYSTEM_PROPS}"; then
+ sed -i -e "s|^logback.configurationFile=.*$|logback.configurationFile=config/logback.xml|" "${SYSTEM_PROPS}"
+ fi
+fi \ No newline at end of file
diff --git a/feature-eelf/src/main/feature/install/enable b/feature-eelf/src/main/feature/install/enable
new file mode 100644
index 00000000..55a2b99a
--- /dev/null
+++ b/feature-eelf/src/main/feature/install/enable
@@ -0,0 +1,35 @@
+#! /bin/bash
+
+###
+# ============LICENSE_START=======================================================
+# ONAP POLICY
+# ================================================================================
+# Copyright (C) 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=========================================================
+##
+
+if [[ "${DEBUG}" == "y" ]]; then
+ set -x
+fi
+
+SYSTEM_PROPS="${POLICY_HOME}"/config/system.properties
+
+if [[ -f ${SYSTEM_PROPS} && -r ${SYSTEM_PROPS} ]]; then
+ if grep -q "^logback.configurationFile=.*$" "${SYSTEM_PROPS}"; then
+ sed -i -e "s|^logback.configurationFile=.*$|logback.configurationFile=config/logback-eelf.xml|" "${SYSTEM_PROPS}"
+ else
+ echo "logback.configurationFile=config/logback-eelf.xml" >> "${SYSTEM_PROPS}"
+ fi
+fi \ No newline at end of file
diff --git a/feature-eelf/src/main/install/config/policyLogger.properties b/feature-eelf/src/main/install/config/policyLogger.properties
deleted file mode 100644
index d8987252..00000000
--- a/feature-eelf/src/main/install/config/policyLogger.properties
+++ /dev/null
@@ -1,49 +0,0 @@
-###
-# ============LICENSE_START=======================================================
-# feature-eelf
-# ================================================================================
-# Copyright (C) 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=========================================================
-###
-
-################################### Set concurrentHashMap and timer info #######################
-#Timer initial delay and the delay between in milliseconds before task is to be execute.
-timer.delay.time=1000
-#Timer scheduleAtFixedRate period - time in milliseconds between successive task executions.
-check.interval= 30000
-#Longest time an event info can be stored in the concurrentHashMap for logging - in seconds.
-event.expired.time=86400
-#Size of the concurrentHashMap which stores the event starting time, etc - when its size reaches this limit, the Timer gets executed
-#to remove all expired records from this concurrentHashMap.
-concurrentHashMap.limit=5000
-#Size of the concurrentHashMap - when its size drops to this point, stop the Timer
-stop.check.point=2500
-################################### Set logging format #############################################
-# set EELF for EELF logging format, set LOG4J for using log4j, set SYSTEMOUT for using system.out.println
-logger.type=EELF
-#################################### Set level for EELF or SYSTEMOUT logging ##################################
-# Set level for debug file. Set DEBUG to enable .info, .warn and .debug; set INFO for enable .info and .warn; set OFF to disable all
-# Set override flag. Set TRUE for override the level setups in logback.xml. Set FALSE for using the level setups of logback.xml
-override.logback.level.setup=FALSE
-debugLogger.level=INFO
-# Set level for metrics file. Set OFF to disable; set ON to enable
-metricsLogger.level=ON
-# Set level for error file. Set OFF to disable; set ON to enable
-error.level=ON
-# Set level for audit file. Set OFF to disable; set ON to enable
-audit.level=ON
-#################################### Set Policy Component ##################################
-# Set DROOLS for drools PDP. Set XACML to xacml PDP
-policy.component=DROOLS
diff --git a/feature-eelf/src/main/java/org/openecomp/policy/drools/eelf/EelfFeature.java b/feature-eelf/src/main/java/org/openecomp/policy/drools/eelf/EelfFeature.java
index de39f3a3..83e7a4be 100644
--- a/feature-eelf/src/main/java/org/openecomp/policy/drools/eelf/EelfFeature.java
+++ b/feature-eelf/src/main/java/org/openecomp/policy/drools/eelf/EelfFeature.java
@@ -23,63 +23,46 @@ package org.openecomp.policy.drools.eelf;
import java.nio.file.Path;
import java.nio.file.Paths;
+import org.openecomp.policy.common.logging.eelf.Configuration;
import org.openecomp.policy.common.logging.flexlogger.FlexLogger;
import org.openecomp.policy.common.logging.flexlogger.Logger;
import org.openecomp.policy.drools.features.PolicyEngineFeatureAPI;
import org.openecomp.policy.drools.system.Main;
import org.openecomp.policy.drools.system.PolicyEngine;
+/**
+ * Feature EELF : Enables EELF Logging Libraries
+ */
public class EelfFeature implements PolicyEngineFeatureAPI {
-
- /**
- * EELF logback configuration path system property
- */
- public static final String EELF_LOGBACK_PATH_SYSTEM_PROPERTY = "com.att.eelf.logging.file";
-
- /**
- * EELF logback configuration path value
- */
- public static final String EELF_LOGBACK_PATH_DEFAULT = "config";
-
- /**
- * EELF logback configuration file system property
- */
- public static final String EELF_LOGBACK_FILE_SYSTEM_PROPERTY = "com.att.eelf.logging.path";
-
- /**
- * EELF logback configuration file default value
- */
- public static final String EELF_LOGBACK_FILE_DEFAULT = "logback.xml";
@Override
public boolean beforeBoot(PolicyEngine engine, String cliArgs[]) {
String logback = System.getProperty(Main.LOGBACK_CONFIGURATION_FILE_SYSTEM_PROPERTY,
- Main.LOGBACK_CONFIGURATION_FILE_DEFAULT);
-
+ Main.LOGBACK_CONFIGURATION_FILE_DEFAULT);
Path logbackPath = Paths.get(logback);
- if (System.getProperty(EELF_LOGBACK_PATH_SYSTEM_PROPERTY) == null)
- System.setProperty(EELF_LOGBACK_PATH_SYSTEM_PROPERTY, logbackPath.getFileName().toString());
-
- if (System.getProperty(EELF_LOGBACK_FILE_SYSTEM_PROPERTY) == null)
- System.setProperty(EELF_LOGBACK_FILE_SYSTEM_PROPERTY,
+ if (System.getProperty(Configuration.PROPERTY_LOGGING_FILE_PATH) == null)
+ System.setProperty(Configuration.PROPERTY_LOGGING_FILE_PATH,
logbackPath.toAbsolutePath().getParent().toString());
+ if (System.getProperty(Configuration.PROPERTY_LOGGING_FILE_NAME) == null)
+ System.setProperty(Configuration.PROPERTY_LOGGING_FILE_NAME,
+ logbackPath.getFileName().toString());
+
Logger logger = FlexLogger.getLogger(this.getClass(), true);
- logger.warn("EELF/Common Frameworks Logging Enabled");
if (logger.isInfoEnabled()) {
- logger.info("EELFFeature: Property " + Main.LOGBACK_CONFIGURATION_FILE_SYSTEM_PROPERTY + "=" +
+ logger.info("eelf-feature: Property " + Main.LOGBACK_CONFIGURATION_FILE_SYSTEM_PROPERTY + "=" +
System.getProperty(Main.LOGBACK_CONFIGURATION_FILE_SYSTEM_PROPERTY));
- logger.info("EELFFeature: Property " + EELF_LOGBACK_PATH_SYSTEM_PROPERTY + "=" +
- System.getProperty(EELF_LOGBACK_PATH_SYSTEM_PROPERTY));
- logger.info("EELFFeature: Property " + EELF_LOGBACK_FILE_SYSTEM_PROPERTY + "=" +
- System.getProperty(EELF_LOGBACK_FILE_SYSTEM_PROPERTY));
+ logger.info("eelf-feature: Property " + Configuration.PROPERTY_LOGGING_FILE_PATH + "=" +
+ System.getProperty(Configuration.PROPERTY_LOGGING_FILE_PATH));
+ logger.info("eelf-feature: Property " + Configuration.PROPERTY_LOGGING_FILE_NAME + "=" +
+ System.getProperty(Configuration.PROPERTY_LOGGING_FILE_NAME));
}
return false;
- };
+ }
@Override
public int getSequenceNumber() {
diff --git a/feature-eelf/src/test/java/org/openecomp/policy/drools/eelf/test/EElfTest.java b/feature-eelf/src/test/java/org/openecomp/policy/drools/eelf/test/EElfTest.java
index 2ded0d0d..6023622d 100644
--- a/feature-eelf/src/test/java/org/openecomp/policy/drools/eelf/test/EElfTest.java
+++ b/feature-eelf/src/test/java/org/openecomp/policy/drools/eelf/test/EElfTest.java
@@ -48,7 +48,7 @@ public class EElfTest {
/**
* logback configuration location
*/
- public final static String LOGBACK_CONFIGURATION_FILE_DEFAULT = "src/main/install/config/logback.xml";
+ public final static String LOGBACK_CONFIGURATION_FILE_DEFAULT = "src/main/feature/config/logback-eelf.xml";
/**
* SLF4J Logger
@@ -73,15 +73,15 @@ public class EElfTest {
/**
* Assert Log Levels are the same between an EELF Logger and an SLF4J Logger
*
- * @param eelfAuditLogger
- * @param slf4jAuditLogger
+ * @param eelfLogger EELF Logger
+ * @param slf4jLogger SLF4J Logger
*/
- protected void assertLogLevels(EELFLogger eelfAuditLogger, Logger slf4jAuditLogger) {
- assertTrue(slf4jAuditLogger.isDebugEnabled() == eelfAuditLogger.isDebugEnabled());
- assertTrue(slf4jAuditLogger.isInfoEnabled() == eelfAuditLogger.isInfoEnabled());
- assertTrue(slf4jAuditLogger.isErrorEnabled() == eelfAuditLogger.isErrorEnabled());
- assertTrue(slf4jAuditLogger.isWarnEnabled() == eelfAuditLogger.isWarnEnabled());
- assertTrue(slf4jAuditLogger.isTraceEnabled() == eelfAuditLogger.isTraceEnabled());
+ protected void assertLogLevels(EELFLogger eelfLogger, Logger slf4jLogger) {
+ assertTrue(slf4jLogger.isDebugEnabled() == eelfLogger.isDebugEnabled());
+ assertTrue(slf4jLogger.isInfoEnabled() == eelfLogger.isInfoEnabled());
+ assertTrue(slf4jLogger.isErrorEnabled() == eelfLogger.isErrorEnabled());
+ assertTrue(slf4jLogger.isWarnEnabled() == eelfLogger.isWarnEnabled());
+ assertTrue(slf4jLogger.isTraceEnabled() == eelfLogger.isTraceEnabled());
}
@Test
@@ -117,14 +117,22 @@ public class EElfTest {
EELFLogger eelfAuditLogger = EELFManager.getInstance().getAuditLogger();
Logger slf4jAuditLogger = org.slf4j.LoggerFactory.getLogger(Configuration.AUDIT_LOGGER_NAME);
org.openecomp.policy.common.logging.flexlogger.Logger flexLogger =
- FlexLogger.getLogger(EElfTest.class);
+ FlexLogger.getLogger(EElfTest.class, true);
- /* generate an audit entry through both logs */
+ /* generate an error entry */
+
+ Exception testException = new IllegalStateException("exception test");
+ flexLogger.error("flex-logger exception", testException);
+ EELFManager.getInstance().getErrorLogger().error("eelf-logger exception", testException);
+ org.slf4j.LoggerFactory.getLogger(Configuration.ERROR_LOGGER_NAME).error("slf4j-logger", testException);
+
+
+ /* generate an audit entry through all logs */
flexLogger.audit("flexlogger audit");
eelfAuditLogger.info("eelf audit");
slf4jAuditLogger.info("slf4j audit");
-
+
/* check log levels in eelf and standard slf4j change in both directions */
/* eelf initiated */