aboutsummaryrefslogtreecommitdiffstats
path: root/appc-event-listener
diff options
context:
space:
mode:
Diffstat (limited to 'appc-event-listener')
-rw-r--r--appc-event-listener/appc-event-listener-bundle/src/main/java/org/onap/appc/listener/EventHandler.java53
-rw-r--r--appc-event-listener/appc-event-listener-bundle/src/main/java/org/onap/appc/listener/ListenerProperties.java37
-rw-r--r--appc-event-listener/appc-event-listener-bundle/src/main/java/org/onap/appc/listener/impl/EventHandlerImpl.java92
-rw-r--r--appc-event-listener/appc-event-listener-bundle/src/test/java/org/onap/appc/listener/ListenerPropertiesTest.java4
-rw-r--r--appc-event-listener/appc-event-listener-bundle/src/test/resources/org/onap/appc/default.properties7
5 files changed, 161 insertions, 32 deletions
diff --git a/appc-event-listener/appc-event-listener-bundle/src/main/java/org/onap/appc/listener/EventHandler.java b/appc-event-listener/appc-event-listener-bundle/src/main/java/org/onap/appc/listener/EventHandler.java
index 20d4a6ad4..c2b7c4bbf 100644
--- a/appc-event-listener/appc-event-listener-bundle/src/main/java/org/onap/appc/listener/EventHandler.java
+++ b/appc-event-listener/appc-event-listener-bundle/src/main/java/org/onap/appc/listener/EventHandler.java
@@ -2,22 +2,22 @@
* ============LICENSE_START=======================================================
* ONAP : APPC
* ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Copyright (C) 2017 Amdocs
* =============================================================================
* 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=========================================================
*/
@@ -36,14 +36,14 @@ public interface EventHandler {
/**
* Gets a list of messages as Strings on the read topic.
- *
+ *
* @return A list of String messages. Never returns null.
*/
public List<String> getIncomingEvents();
/**
* Gets a list of messages as String on the read topic.
- *
+ *
* @param limit
* The maximum amount of entries to return
* @return A list of String messages. Never returns null.
@@ -72,7 +72,7 @@ public interface EventHandler {
/**
* Posts the String message to the write topic(s).
- *
+ *
* @param event
* The String to post.
*/
@@ -96,7 +96,7 @@ public interface EventHandler {
/**
* Set the client/group id used to read messages
- *
+ *
* @param clientId
* The new clientId to use
*/
@@ -109,7 +109,7 @@ public interface EventHandler {
/**
* Set the client/group name used to read messages.
- *
+ *
* @param clientName
* The new clientName to use
*/
@@ -122,7 +122,7 @@ public interface EventHandler {
/**
* Set the name of the topic to read from.
- *
+ *
* @param topic
* The new topic to read from
*/
@@ -135,7 +135,7 @@ public interface EventHandler {
/**
* Set the name of the topic to write to
- *
+ *
* @param topic
* The new topic to write to
*/
@@ -143,7 +143,7 @@ public interface EventHandler {
/**
* Adds a DMaaP host to the host pool
- *
+ *
* @param host
* The host to add to the pool in &lt;host&gt;:&lt;port&gt; format
*/
@@ -151,7 +151,7 @@ public interface EventHandler {
/**
* Remove the host name from the pool if it exists
- *
+ *
* @param host
* The host to add to the pool in &lt;host&gt;:&lt;port&gt; format
*/
@@ -159,7 +159,7 @@ public interface EventHandler {
/**
* Get all of the hosts in the DMaaP pool
- *
+ *
* @return A collection of host in &lt;host&gt;:&lt;port&gt; format
*/
public Collection<String> getPool();
@@ -170,15 +170,36 @@ public interface EventHandler {
public void clearCredentials();
/**
+ * Sets Blacklist time for a server with response problem in seconds
+ */
+ void setResponseProblemBlacklistTime(String duration);
+
+ /**
+ * Sets Blacklist time for a server with server problem in seconds
+ */
+ void setServerProblemBlacklistTime(String duration);
+
+ /**
+ * Sets Blacklist time for a server with DNS problem in seconds
+ */
+ void setDnsIssueBlacklistTime(String duration);
+
+ /**
+ * Sets Blacklist time for a server with IO Exception problem in seconds
+ */
+ void setIOExceptionBlacklistTime(String duration);
+ /**
* Set the api credentials and make future requests as an authenticated user
- *
+ *
* @param access
* The access portion of the credentials (either user name or api key)
* @param secret
* The secret portion of the credentials (either password or api secret)
*/
+
+
public void setCredentials(String access, String secret);
-
+
/**
* Close consumer/producer DMaaP clients
*/
diff --git a/appc-event-listener/appc-event-listener-bundle/src/main/java/org/onap/appc/listener/ListenerProperties.java b/appc-event-listener/appc-event-listener-bundle/src/main/java/org/onap/appc/listener/ListenerProperties.java
index 107b0f67e..74ead9485 100644
--- a/appc-event-listener/appc-event-listener-bundle/src/main/java/org/onap/appc/listener/ListenerProperties.java
+++ b/appc-event-listener/appc-event-listener-bundle/src/main/java/org/onap/appc/listener/ListenerProperties.java
@@ -2,22 +2,22 @@
* ============LICENSE_START=======================================================
* ONAP : APPC
* ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Copyright (C) 2017 Amdocs
* =============================================================================
* 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=========================================================
*/
@@ -89,7 +89,7 @@ public class ListenerProperties {
/**
* Returns a property matching a given KEYS
- *
+ *
* @param key
* The KEYS object who's value to return.
* @return The value of the property or null if none exists
@@ -100,7 +100,7 @@ public class ListenerProperties {
/**
* Returns a property matching a given string.
- *
+ *
* @param key
* The key who's value to return.
* @return The value of the property or null if none exists
@@ -111,7 +111,7 @@ public class ListenerProperties {
/**
* Returns a property matching a given KEYS
- *
+ *
* @param key
* The KEYS object who's value to return.
* @param defaultValue
@@ -124,7 +124,7 @@ public class ListenerProperties {
/**
* Returns a property matching a given string.
- *
+ *
* @param key
* The key who's value to return.
* @param defaultValue
@@ -218,6 +218,27 @@ public class ListenerProperties {
TOPIC_READ_TIMEOUT("topic.read.timeout"),
/**
+ * Blacklist time for a server with response problem in seconds
+ */
+
+ PROBLEM_WITH_RESPONSE_BLACKLIST_TIME("topic.responseProblem.blacklistTime"),
+ /**
+ * Blacklist time for a server with server problem in seconds
+ */
+
+ PROBLEM_SERVERSIDE_ERROR_BLACKLIST_TIME("topic.serverError.blacklistTime"),
+ /**
+ * Blacklist time for a server with DNS problem in seconds
+ */
+
+ PROBLEM_DNS_BLACKLIST_TIME("topic.dnsIssue.blacklistTime"),
+ /**
+ * Blacklist time for a server with IO Exception problem in seconds
+ */
+
+ PROBLEM_IO_EXCEPTION_BLACKLIST_TIME("topic.ioException.blacklistTime"),
+
+ /**
* The name of the client to use. Should be unique to the application.
*/
CLIENT_NAME("client.name"),
diff --git a/appc-event-listener/appc-event-listener-bundle/src/main/java/org/onap/appc/listener/impl/EventHandlerImpl.java b/appc-event-listener/appc-event-listener-bundle/src/main/java/org/onap/appc/listener/impl/EventHandlerImpl.java
index 3019aaf33..74193c2b8 100644
--- a/appc-event-listener/appc-event-listener-bundle/src/main/java/org/onap/appc/listener/impl/EventHandlerImpl.java
+++ b/appc-event-listener/appc-event-listener-bundle/src/main/java/org/onap/appc/listener/impl/EventHandlerImpl.java
@@ -2,22 +2,22 @@
* ============LICENSE_START=======================================================
* ONAP : APPC
* ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Copyright (C) 2017 Amdocs
* =============================================================================
* 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=========================================================
*/
@@ -100,6 +100,27 @@ public class EventHandlerImpl implements EventHandler {
*/
private String filter_json;
+
+ /*
+ * Blacklist time for a server with response problem in seconds
+ */
+ private String responseProblemBlacklistTime;
+
+ /*
+ * Blacklist time for a server with server problem in seconds
+ */
+ private String serverProblemBlacklistTime;
+
+ /*
+ * Blacklist time for a server with DNS problem in seconds
+ */
+ private String dnsIssueBlacklistTime;
+
+ /*
+ * Blacklist time for a server with IO Exception problem in seconds
+ */
+ private String ioExceptionBlacklistTime;
+
private MessageService messageService;
private Consumer reader = null;
@@ -115,6 +136,10 @@ public class EventHandlerImpl implements EventHandler {
clientId = props.getProperty(ListenerProperties.KEYS.CLIENT_ID, "0");
apiKey = props.getProperty(ListenerProperties.KEYS.AUTH_USER_KEY);
apiSecret = props.getProperty(ListenerProperties.KEYS.AUTH_SECRET_KEY);
+ responseProblemBlacklistTime = props.getProperty(ListenerProperties.KEYS.PROBLEM_WITH_RESPONSE_BLACKLIST_TIME);
+ serverProblemBlacklistTime = props.getProperty(ListenerProperties.KEYS.PROBLEM_SERVERSIDE_ERROR_BLACKLIST_TIME);
+ dnsIssueBlacklistTime = props.getProperty(ListenerProperties.KEYS.PROBLEM_DNS_BLACKLIST_TIME);
+ ioExceptionBlacklistTime = props.getProperty(ListenerProperties.KEYS.PROBLEM_IO_EXCEPTION_BLACKLIST_TIME);
filter_json = props.getProperty(ListenerProperties.KEYS.TOPIC_READ_FILTER);
@@ -218,6 +243,26 @@ public class EventHandlerImpl implements EventHandler {
try {
out = ((MessageAdapterFactory) ctx.getService(svcRef))
.createConsumer(pool, readTopic, clientName, clientId, filter_json, apiKey, apiSecret);
+
+ if (out != null && responseProblemBlacklistTime != null && responseProblemBlacklistTime.length() > 0)
+ {
+ out.setResponseProblemBlacklistTime(responseProblemBlacklistTime);
+ }
+
+ if (out != null && serverProblemBlacklistTime != null && serverProblemBlacklistTime.length() > 0)
+ {
+ out.setServerProblemBlacklistTime(serverProblemBlacklistTime);
+ }
+
+ if (out != null && dnsIssueBlacklistTime != null && dnsIssueBlacklistTime.length() > 0)
+ {
+ out.setDnsIssueBlacklistTime(dnsIssueBlacklistTime);
+ }
+
+ if (out != null && ioExceptionBlacklistTime != null && ioExceptionBlacklistTime.length() > 0)
+ {
+ out.setIOExceptionBlacklistTime(ioExceptionBlacklistTime);
+ }
} catch (Exception e) {
//TODO:create eelf message
LOG.error("EvenHandlerImp.getConsumer calling MessageAdapterFactor.createConsumer", e);
@@ -250,6 +295,25 @@ public class EventHandlerImpl implements EventHandler {
if (svcRef != null) {
out = ((MessageAdapterFactory) ctx.getService(svcRef))
.createProducer(pool, writeTopics, apiKey, apiSecret);
+ if (out != null && responseProblemBlacklistTime != null && responseProblemBlacklistTime.length() > 0)
+ {
+ out.setResponseProblemBlacklistTime(responseProblemBlacklistTime);
+ }
+
+ if (out != null && serverProblemBlacklistTime != null && serverProblemBlacklistTime.length() > 0)
+ {
+ out.setServerProblemBlacklistTime(serverProblemBlacklistTime);
+ }
+
+ if (out != null && dnsIssueBlacklistTime != null && dnsIssueBlacklistTime.length() > 0)
+ {
+ out.setDnsIssueBlacklistTime(dnsIssueBlacklistTime);
+ }
+
+ if (out != null && ioExceptionBlacklistTime != null && ioExceptionBlacklistTime.length() > 0)
+ {
+ out.setIOExceptionBlacklistTime(ioExceptionBlacklistTime);
+ }
if (out != null) {
for (String url : pool) {
if (url.contains("3905") || url.contains("https")) {
@@ -331,6 +395,26 @@ public class EventHandlerImpl implements EventHandler {
}
@Override
+ public void setResponseProblemBlacklistTime(String duration){
+ this.responseProblemBlacklistTime = duration;
+ }
+
+ @Override
+ public void setServerProblemBlacklistTime(String duration){
+ this.serverProblemBlacklistTime = duration;
+ }
+
+ @Override
+ public void setDnsIssueBlacklistTime(String duration){
+ this.dnsIssueBlacklistTime = duration;
+ }
+
+ @Override
+ public void setIOExceptionBlacklistTime(String duration){
+ this.ioExceptionBlacklistTime = duration;
+ }
+
+ @Override
public void clearCredentials() {
apiKey = null;
apiSecret = null;
diff --git a/appc-event-listener/appc-event-listener-bundle/src/test/java/org/onap/appc/listener/ListenerPropertiesTest.java b/appc-event-listener/appc-event-listener-bundle/src/test/java/org/onap/appc/listener/ListenerPropertiesTest.java
index 088553e76..c83555c50 100644
--- a/appc-event-listener/appc-event-listener-bundle/src/test/java/org/onap/appc/listener/ListenerPropertiesTest.java
+++ b/appc-event-listener/appc-event-listener-bundle/src/test/java/org/onap/appc/listener/ListenerPropertiesTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP : APPC
* ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Copyright (C) 2017 Amdocs
* =============================================================================
@@ -121,7 +121,7 @@ public class ListenerPropertiesTest {
@Test
public void testKeys() {
// Hardcode count so tests must be updated when values are added
- assertEquals(15, ListenerProperties.KEYS.values().length);
+ assertEquals(19, ListenerProperties.KEYS.values().length);
Properties tmp = new Properties();
try {
diff --git a/appc-event-listener/appc-event-listener-bundle/src/test/resources/org/onap/appc/default.properties b/appc-event-listener/appc-event-listener-bundle/src/test/resources/org/onap/appc/default.properties
index bacbe53f3..c729c7b0a 100644
--- a/appc-event-listener/appc-event-listener-bundle/src/test/resources/org/onap/appc/default.properties
+++ b/appc-event-listener/appc-event-listener-bundle/src/test/resources/org/onap/appc/default.properties
@@ -2,7 +2,7 @@
# ============LICENSE_START=======================================================
# ONAP : APPC
# ================================================================================
-# Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
+# Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
# ================================================================================
# Copyright (C) 2017 Amdocs
# =============================================================================
@@ -58,7 +58,10 @@ appc.ClosedLoop.threads.queuesize.max=1000
appc.ClosedLoop.threads.poolsize.min=1
appc.ClosedLoop.threads.poolsize.max=2
appc.ClosedLoop.provider.url=https://admin:password@localhost:8443/restconf/operations/appc-provider:topology-operation
-
+appc.ClosedLoop.topic.responseProblem.blacklistTime=60
+appc.ClosedLoop.topic.serverError.blacklistTime=60
+appc.ClosedLoop.topic.dnsIssue.blacklistTime=60
+appc.ClosedLoop.topic.ioException.blacklistTime=60