summaryrefslogtreecommitdiffstats
path: root/ueb-listener/src/main
diff options
context:
space:
mode:
authorDan Timoney <dtimoney@att.com>2017-10-09 10:02:22 -0400
committerDan Timoney <dtimoney@att.com>2017-10-09 10:02:22 -0400
commit73d1bd7ab120c112f0febbcfa5b549be7e9754ea (patch)
tree28382936cdb47fcfef1e2fbbca34ecaa60e80b2b /ueb-listener/src/main
parent1aab3d043fca73edbdb5da1972a947d92ce85a77 (diff)
Add retry to ueb-listener
Added retry mechanism to ueb-listener to handle case where ueb-listener comes up before DMaap or SDC. Change-Id: I0d96bd1fe4d3d0fdb5e01d9f42304b54bea0a550 Issue-ID: CCSDK-112 Signed-off-by: Dan Timoney <dtimoney@att.com>
Diffstat (limited to 'ueb-listener/src/main')
-rw-r--r--ueb-listener/src/main/java/org/onap/ccsdk/sli/northbound/uebclient/SdncUebClient.java35
-rw-r--r--ueb-listener/src/main/java/org/onap/ccsdk/sli/northbound/uebclient/SdncUebConfiguration.java13
2 files changed, 44 insertions, 4 deletions
diff --git a/ueb-listener/src/main/java/org/onap/ccsdk/sli/northbound/uebclient/SdncUebClient.java b/ueb-listener/src/main/java/org/onap/ccsdk/sli/northbound/uebclient/SdncUebClient.java
index d2989048..1d1f4763 100644
--- a/ueb-listener/src/main/java/org/onap/ccsdk/sli/northbound/uebclient/SdncUebClient.java
+++ b/ueb-listener/src/main/java/org/onap/ccsdk/sli/northbound/uebclient/SdncUebClient.java
@@ -39,6 +39,7 @@ public class SdncUebClient {
SdncUebCallback cb = new SdncUebCallback(client, config);
+
LOG.info("Scanning for local distribution artifacts before starting client");
cb.deployDownloadedFiles(null, null, null);
@@ -48,13 +49,39 @@ public class SdncUebClient {
LOG.info("Initialized ASDC distribution client - results = {}", result.getDistributionMessageResult());
- if (result.getDistributionActionResult() == DistributionActionResultEnum.SUCCESS) {
- LOG.info("Starting client...");
- IDistributionClientResult start = client.start();
- LOG.info("Client startup result = {}", start.getDistributionMessageResult());
+ long startTm = System.currentTimeMillis();
+ int sleepTm = config.getPollingInterval() * 1000;
+ long maxWaitTm = config.getClientStartupTimeout() * 1000;
+
+ boolean keepWaiting = true;
+
+ while (keepWaiting) {
+ if (result.getDistributionActionResult() == DistributionActionResultEnum.SUCCESS) {
+ LOG.info("Starting client...");
+ try {
+ IDistributionClientResult start = client.start();
+ LOG.info("Client startup result = {}", start.getDistributionMessageResult());
+ keepWaiting = false;
+ } catch(Exception e) {
+ LOG.info("Client startup failure", e);
+ }
+
+ if (System.currentTimeMillis() - startTm < maxWaitTm) {
+ keepWaiting = false;
+ } else {
+
+ try {
+ Thread.sleep(sleepTm);
+ } catch (InterruptedException e) {
+ // Ignore
+ }
+ }
+ }
+
}
+
}
}
diff --git a/ueb-listener/src/main/java/org/onap/ccsdk/sli/northbound/uebclient/SdncUebConfiguration.java b/ueb-listener/src/main/java/org/onap/ccsdk/sli/northbound/uebclient/SdncUebConfiguration.java
index 75cb9c97..bf7dc88a 100644
--- a/ueb-listener/src/main/java/org/onap/ccsdk/sli/northbound/uebclient/SdncUebConfiguration.java
+++ b/ueb-listener/src/main/java/org/onap/ccsdk/sli/northbound/uebclient/SdncUebConfiguration.java
@@ -46,6 +46,7 @@ public class SdncUebConfiguration implements IConfiguration{
private String password = null;
private int pollingInterval = 30;
private int pollingTimeout = 15;
+ private int clientStartupTimeout = 900;
private List<String> relevantArtifactTypes = null;
private String user = null;
@@ -154,6 +155,14 @@ public class SdncUebConfiguration implements IConfiguration{
}
}
+ curval = props.getProperty("org.onap.ccsdk.sli.northbound.uebclient.client-startup-timeout");
+ if ((curval != null) && (curval.length() > 0)) {
+ try {
+ clientStartupTimeout = Integer.parseInt(curval);
+ } catch (Exception e) {
+ LOG.warn("Illegal value for org.onap.ccsdk.sli.northbound.uebclient.polling-timeout ({}) ", curval, e);
+ }
+ }
curval = props.getProperty("org.onap.ccsdk.sli.northbound.uebclient.relevant-artifact-types");
if ((curval != null) && (curval.length() > 0)) {
String[] artifactTypes = curval.split(",");
@@ -225,6 +234,10 @@ public class SdncUebConfiguration implements IConfiguration{
return relevantArtifactTypes;
}
+ public int getClientStartupTimeout() {
+ return clientStartupTimeout;
+ }
+
@Override
public String getUser() {
return user;