diff options
Diffstat (limited to 'policy-utils')
4 files changed, 93 insertions, 240 deletions
diff --git a/policy-utils/pom.xml b/policy-utils/pom.xml index 649317f9..6a7c9fbd 100644 --- a/policy-utils/pom.xml +++ b/policy-utils/pom.xml @@ -42,6 +42,11 @@ <artifactId>junit</artifactId> <scope>test</scope> </dependency> + <dependency> + <groupId>org.onap.policy.common</groupId> + <artifactId>utils</artifactId> + <version>${project.version}</version> + </dependency> </dependencies> diff --git a/policy-utils/src/main/java/org/onap/policy/drools/utils/NetworkUtil.java b/policy-utils/src/main/java/org/onap/policy/drools/utils/NetworkUtil.java deleted file mode 100644 index 229927e5..00000000 --- a/policy-utils/src/main/java/org/onap/policy/drools/utils/NetworkUtil.java +++ /dev/null @@ -1,113 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - * ================================================================================ - * Copyright (C) 2017-2018 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========================================================= - */ - -package org.onap.policy.drools.utils; - -import java.io.IOException; -import java.net.ConnectException; -import java.net.InetAddress; -import java.net.Socket; - -import java.net.UnknownHostException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * Network Utilities - */ -public class NetworkUtil { - - public static final Logger logger = LoggerFactory.getLogger(NetworkUtil.class.getName()); - - /** - * IPv4 Wildcard IP address - */ - public static final String IPv4_WILDCARD_ADDRESS = "0.0.0.0"; - - private NetworkUtil() { - // Empty constructor - } - - /** - * try to connect to $host:$port $retries times while we are getting connection failures. - * - * @param host host - * @param port port - * @param retries number of attempts - * @return true is port is open, false otherwise - * @throws InterruptedException if execution has been interrupted - */ - public static boolean isTcpPortOpen(String host, int port, int retries, long interval) - throws InterruptedException, IOException { - int retry = 0; - while (retry < retries) { - try (Socket s = new Socket(host, port)) { - logger.debug("{}:{} connected - retries={} interval={}", host, port, retries, interval); - return true; - } catch (final ConnectException e) { - retry++; - logger.trace("{}:{} connected - retries={} interval={}", host, port, retries, interval, e); - Thread.sleep(interval); - } - } - - logger.warn("{}:{} closed = retries={} interval={}", host, port, retries, interval); - return false; - } - - /** - * gets host name - * - * @return host name - */ - public static String getHostname() { - - String hostname = System.getenv("HOSTNAME"); - if (hostname != null && !hostname.isEmpty()) { - return hostname; - } - - try { - return InetAddress.getLocalHost().getHostName(); - } catch (UnknownHostException e) { - logger.warn("cannot resolve local hostname", e); - /* continue */ - } - - return "localhost"; - } - - /** - * gets host's IP - * - * @return host IP - */ - public static String getHostIp() { - - try { - return InetAddress.getLocalHost().getHostAddress(); - } catch (UnknownHostException e) { - logger.warn("cannot resolve local hostname", e); - /* continue */ - } - - return "127.0.0.1"; - } -} diff --git a/policy-utils/src/main/java/org/onap/policy/drools/utils/logging/MDCTransaction.java b/policy-utils/src/main/java/org/onap/policy/drools/utils/logging/MDCTransaction.java index 1a27dde6..39fbe8fb 100644 --- a/policy-utils/src/main/java/org/onap/policy/drools/utils/logging/MDCTransaction.java +++ b/policy-utils/src/main/java/org/onap/policy/drools/utils/logging/MDCTransaction.java @@ -24,7 +24,8 @@ import java.time.Duration; import java.time.Instant; import java.util.Date; import java.util.UUID; -import org.onap.policy.drools.utils.NetworkUtil; + +import org.onap.policy.common.utils.network.NetworkUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.MDC; @@ -32,51 +33,28 @@ import org.slf4j.MDC; /** * MDC Transaction Utility Class. * - * There is an implicit 2-level tree of Transactions in ONAP: transactions - * and subtransactions. + * There is an implicit 2-level tree of Transactions in ONAP: transactions and subtransactions. * - * 1. The top level transaction relates to the overarching transaction - * id (ie. RequestId) and should be made available to subtransactions - * for reuse in the ThreadLocal MDC structure. + * 1. The top level transaction relates to the overarching transaction id (ie. RequestId) and should + * be made available to subtransactions for reuse in the ThreadLocal MDC structure. * - * This is the data to be inherited and common to all subtransactions - * (not a common case but could be modified by subtransactions): + * This is the data to be inherited and common to all subtransactions (not a common case but could + * be modified by subtransactions): * - * Request ID - * Virtual Server Name - * Partner Name - * Server - * Server IP Address - * Server FQDN + * Request ID Virtual Server Name Partner Name Server Server IP Address Server FQDN * - * 2. The second level at the leaves is formed by subtransactions and the key - * identifier is the invocation id. + * 2. The second level at the leaves is formed by subtransactions and the key identifier is the + * invocation id. * - * Begin Timestamp - * End Timestamp - * Elapsed Time - * Service Instance ID - * Service Name - * Status Code - * Response Code - * Response Description - * Instance UUID - * Severity - * Target Entity - * Target Service Name - * Server - * Server IP Address - * Server FQDN - * Client IP Address - * Process Key - * Remote Host - * Alert Severity - * Target Virtual Entity + * Begin Timestamp End Timestamp Elapsed Time Service Instance ID Service Name Status Code Response + * Code Response Description Instance UUID Severity Target Entity Target Service Name Server Server + * IP Address Server FQDN Client IP Address Process Key Remote Host Alert Severity Target Virtual + * Entity * * * The naming convention for the fields must match the naming given at * - * https://wiki.onap.org/pages/viewpage.action?pageId=20087036 + * https://wiki.onap.org/pages/viewpage.action?pageId=20087036 */ public interface MDCTransaction { /* @@ -165,8 +143,8 @@ public interface MDCTransaction { String TARGET_SERVICE_NAME = "TargetServiceName"; /** - * Server Subtransactions inherit this value. if (this.getSources().size() == 1) - this.getSources().get(0).getTopic(); + * Server Subtransactions inherit this value. if (this.getSources().size() == 1) + * this.getSources().get(0).getTopic(); */ String SERVER = "Server"; @@ -246,16 +224,14 @@ public interface MDCTransaction { MDCTransaction flush(); /** - * convenience method to log a metric. Alternatively caller - * could call flush() and the logging statement directly for - * further granularity. + * convenience method to log a metric. Alternatively caller could call flush() and the logging + * statement directly for further granularity. */ MDCTransaction metric(); /** - * convenience method to log a transaction record. Alternatively caller - * could call flush() and the logging statement directly for - * further granularity. + * convenience method to log a transaction record. Alternatively caller could call flush() and + * the logging statement directly for further granularity. */ MDCTransaction transaction(); @@ -348,6 +324,7 @@ public interface MDCTransaction { * set virtual server */ MDCTransaction setVirtualServerName(String virtualServerName); + /** * sets end time */ @@ -549,6 +526,7 @@ public interface MDCTransaction { } + class MDCTransactionImpl implements MDCTransaction { private final static Logger logger = LoggerFactory.getLogger(MDCTransactionImpl.class.getName()); @@ -602,8 +580,8 @@ class MDCTransactionImpl implements MDCTransaction { /** * MDC Transaction * - * @param requestId transaction id - * @param partner transaction origin + * @param requestId transaction id + * @param partner transaction origin */ public MDCTransactionImpl(String requestId, String partner) { MDC.clear(); @@ -680,24 +658,24 @@ class MDCTransactionImpl implements MDCTransaction { */ @Override public MDCTransaction resetSubTransaction() { - MDC.remove(INVOCATION_ID); - MDC.remove(BEGIN_TIMESTAMP); - MDC.remove(END_TIMESTAMP); - MDC.remove(ELAPSED_TIME); - MDC.remove(SERVICE_INSTANCE_ID); - MDC.remove(STATUS_CODE); - MDC.remove(RESPONSE_CODE); - MDC.remove(RESPONSE_DESCRIPTION); - MDC.remove(INSTANCE_UUID); - MDC.remove(TARGET_ENTITY); - MDC.remove(TARGET_SERVICE_NAME); - MDC.remove(PROCESS_KEY); - MDC.remove(CLIENT_IP_ADDRESS); - MDC.remove(REMOTE_HOST); - MDC.remove(ALERT_SEVERITY); - MDC.remove(TARGET_VIRTUAL_ENTITY); - - return this; + MDC.remove(INVOCATION_ID); + MDC.remove(BEGIN_TIMESTAMP); + MDC.remove(END_TIMESTAMP); + MDC.remove(ELAPSED_TIME); + MDC.remove(SERVICE_INSTANCE_ID); + MDC.remove(STATUS_CODE); + MDC.remove(RESPONSE_CODE); + MDC.remove(RESPONSE_DESCRIPTION); + MDC.remove(INSTANCE_UUID); + MDC.remove(TARGET_ENTITY); + MDC.remove(TARGET_SERVICE_NAME); + MDC.remove(PROCESS_KEY); + MDC.remove(CLIENT_IP_ADDRESS); + MDC.remove(REMOTE_HOST); + MDC.remove(ALERT_SEVERITY); + MDC.remove(TARGET_VIRTUAL_ENTITY); + + return this; } @Override @@ -711,32 +689,41 @@ class MDCTransactionImpl implements MDCTransaction { */ @Override public MDCTransaction flush() { - if (this.requestId != null && !this.requestId.isEmpty()) + if (this.requestId != null && !this.requestId.isEmpty()) { MDC.put(REQUEST_ID, this.requestId); + } - if (this.invocationId != null && !this.invocationId.isEmpty()) + if (this.invocationId != null && !this.invocationId.isEmpty()) { MDC.put(INVOCATION_ID, this.invocationId); + } - if (this.partner != null) + if (this.partner != null) { MDC.put(PARTNER_NAME, this.partner); + } - if (this.virtualServerName != null) + if (this.virtualServerName != null) { MDC.put(VIRTUAL_SERVER_NAME, this.virtualServerName); + } - if (this.server != null) + if (this.server != null) { MDC.put(SERVER, this.server); + } - if (this.serverIpAddress != null) + if (this.serverIpAddress != null) { MDC.put(SERVER_IP_ADDRESS, this.serverIpAddress); + } - if (this.serverFqdn != null) + if (this.serverFqdn != null) { MDC.put(SERVER_FQDN, this.serverFqdn); + } - if (this.serviceName != null) + if (this.serviceName != null) { MDC.put(SERVICE_NAME, this.serviceName); + } - if (this.startTime != null) + if (this.startTime != null) { MDC.put(BEGIN_TIMESTAMP, timestamp(this.startTime)); + } if (this.endTime != null) { MDC.put(END_TIMESTAMP, timestamp(this.endTime)); @@ -749,49 +736,62 @@ class MDCTransactionImpl implements MDCTransaction { MDC.put(ELAPSED_TIME, String.valueOf(this.elapsedTime)); } else { if (endTime != null && startTime != null) { - this.elapsedTime = Duration.between(startTime, endTime).toMillis(); + this.elapsedTime = Duration.between(startTime, endTime).toMillis(); MDC.put(ELAPSED_TIME, String.valueOf(this.elapsedTime)); } } - if (this.serviceInstanceId != null) + if (this.serviceInstanceId != null) { MDC.put(SERVICE_INSTANCE_ID, this.serviceInstanceId); + } - if (this.instanceUUID != null) + if (this.instanceUUID != null) { MDC.put(INSTANCE_UUID, this.instanceUUID); + } - if (this.processKey != null) + if (this.processKey != null) { MDC.put(PROCESS_KEY, this.processKey); + } - if (this.statusCode != null) + if (this.statusCode != null) { MDC.put(STATUS_CODE, this.statusCode); + } - if (this.responseCode != null) + if (this.responseCode != null) { MDC.put(RESPONSE_CODE, this.responseCode); + } - if (this.responseDescription != null) + if (this.responseDescription != null) { MDC.put(RESPONSE_DESCRIPTION, this.responseDescription); + } - if (this.severity != null) + if (this.severity != null) { MDC.put(SEVERITY, this.severity); + } - if (this.alertSeverity != null) + if (this.alertSeverity != null) { MDC.put(ALERT_SEVERITY, this.alertSeverity); + } - if (this.targetEntity != null) + if (this.targetEntity != null) { MDC.put(TARGET_ENTITY, this.targetEntity); + } - if (this.targetServiceName != null) + if (this.targetServiceName != null) { MDC.put(TARGET_SERVICE_NAME, this.targetServiceName); + } - if (this.targetVirtualEntity != null) + if (this.targetVirtualEntity != null) { MDC.put(TARGET_VIRTUAL_ENTITY, this.targetVirtualEntity); + } - if (this.clientIpAddress != null) + if (this.clientIpAddress != null) { MDC.put(CLIENT_IP_ADDRESS, this.clientIpAddress); + } - if (this.remoteHost != null) + if (this.remoteHost != null) { MDC.put(REMOTE_HOST, this.remoteHost); + } return this; } diff --git a/policy-utils/src/test/java/org/onap/policy/drools/utils/NetworkUtilTest.java b/policy-utils/src/test/java/org/onap/policy/drools/utils/NetworkUtilTest.java deleted file mode 100644 index 406cdae9..00000000 --- a/policy-utils/src/test/java/org/onap/policy/drools/utils/NetworkUtilTest.java +++ /dev/null @@ -1,39 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * policy-utils - * ================================================================================ - * Copyright (C) 2018 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========================================================= - */ -package org.onap.policy.drools.utils; - -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; - -import java.io.IOException; - -import org.junit.Test; - -public class NetworkUtilTest { - - @Test - public void test() throws InterruptedException, IOException { - assertNotNull(NetworkUtil.IPv4_WILDCARD_ADDRESS); - assertFalse(NetworkUtil.isTcpPortOpen("localhost", 8080, 1, 5)); - assertNotNull(NetworkUtil.getHostname()); - assertNotNull(NetworkUtil.getHostIp()); - } - -} |