From 45762e8d8a1555957c99f9c8dd995e8542f5d5c3 Mon Sep 17 00:00:00 2001 From: s00370346 Date: Mon, 20 May 2019 11:02:43 +0530 Subject: Issue-ID: DCAEGEN2-1511 Restconfcollector Access Token Renewal Signed-off-by: s00370346 Change-Id: I1b344e734221038bf0b843543f9bf317e9bc09fd --- .../java/org/onap/dcae/common/RestapiCallNode.java | 2 +- .../org/onap/dcae/controller/AccessController.java | 28 ++++++++++++++++++++-- .../dcae/controller/PersistentEventConnection.java | 23 ++++++++++++++++-- 3 files changed, 48 insertions(+), 5 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/org/onap/dcae/common/RestapiCallNode.java b/src/main/java/org/onap/dcae/common/RestapiCallNode.java index 4d1a776..387fa98 100755 --- a/src/main/java/org/onap/dcae/common/RestapiCallNode.java +++ b/src/main/java/org/onap/dcae/common/RestapiCallNode.java @@ -368,7 +368,7 @@ public class RestapiCallNode { log.info("Sending request:"); log.info(request); - log.info("URL: " + p.restapiUrl + " method " + p.httpMethod.toString() + " Custome headr " + p.customHttpHeaders); + log.info("URL: " + p.restapiUrl + " method " + p.httpMethod.toString() + " Custom header " + p.customHttpHeaders); long t1 = System.currentTimeMillis(); diff --git a/src/main/java/org/onap/dcae/controller/AccessController.java b/src/main/java/org/onap/dcae/controller/AccessController.java index b82b757..daf6237 100644 --- a/src/main/java/org/onap/dcae/controller/AccessController.java +++ b/src/main/java/org/onap/dcae/controller/AccessController.java @@ -19,6 +19,9 @@ */ package org.onap.dcae.controller; +import java.util.concurrent.ScheduledFuture; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; import org.json.JSONArray; import org.json.JSONObject; import org.onap.dcae.ApplicationException; @@ -59,6 +62,10 @@ public class AccessController { ControllerActivationState state; + private static ScheduledFuture accesstokenRenewal; + private static ScheduledThreadPoolExecutor scheduledThreadPoolExecutor; + + public AccessController(JSONObject controller, ApplicationSettings properties) { this.cfgInfo = new ControllerConfigInfo.ControllerConfigInfoBuilder() @@ -79,7 +86,7 @@ public class AccessController { this.paraMap = new HashMap<>(); this.state = ControllerActivationState.INIT; prepareControllerParamMap(); - + this.scheduledThreadPoolExecutor = new ScheduledThreadPoolExecutor(1); log.info("AccesController Created {} {} {} {} {} {}", this.cfgInfo.getController_name(), this.cfgInfo.getController_restapiUrl(), this.cfgInfo.getController_restapiPassword(), this.cfgInfo.getController_restapiUser(), this.cfgInfo.getController_accessTokenUrl(), @@ -153,7 +160,11 @@ public class AccessController { public void activate() { fetchTokenId(); - + AccessTokenRenewalTask task = new AccessTokenRenewalTask(); + accesstokenRenewal = scheduledThreadPoolExecutor.scheduleAtFixedRate(task, + 5, + 10, + TimeUnit.MINUTES); if (getState() == ControllerActivationState.ACTIVE) { printControllerParamMap(); /* Create eventlist from properties */ @@ -270,4 +281,17 @@ public class AccessController { log.info(name + " : " + value); } } + + private class AccessTokenRenewalTask implements Runnable + { + public AccessTokenRenewalTask() { + } + + @Override + public void run() + { + /* Renew token Id */ + fetchTokenId(); + } + } } diff --git a/src/main/java/org/onap/dcae/controller/PersistentEventConnection.java b/src/main/java/org/onap/dcae/controller/PersistentEventConnection.java index 391da76..48d5448 100644 --- a/src/main/java/org/onap/dcae/controller/PersistentEventConnection.java +++ b/src/main/java/org/onap/dcae/controller/PersistentEventConnection.java @@ -20,8 +20,13 @@ package org.onap.dcae.controller; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; import org.glassfish.jersey.media.sse.EventSource; import org.glassfish.jersey.media.sse.SseFeature; +import org.json.JSONArray; +import org.json.JSONObject; import org.onap.dcae.common.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -187,8 +192,13 @@ public class PersistentEventConnection implements Runnable { parentCtrllr.getRestApiCallNode().sendRequest(eventParaMap, ctx, null); } catch (Exception e) { - log.error("Exception occured!", e); - Thread.currentThread().interrupt(); + log.error("Failed to receive sbscription notiication, trying again", e); + try { + parentCtrllr.getRestApiCallNode().sendRequest(eventParaMap, ctx, null); + }catch (Exception ex){ + log.error("Exception occured again! Trying again", e); + Thread.currentThread().interrupt(); + } } /* Retrieve url from result and construct SSE url */ @@ -222,6 +232,7 @@ public class PersistentEventConnection implements Runnable { eventSource.register(new DataChangeEventListener(this)); eventSource.open(); log.info("Connected to SSE source"); + while (running) { try { log.info("SSE state " + eventSource.isOpen()); @@ -302,4 +313,12 @@ public class PersistentEventConnection implements Runnable { log.info(name + " : " + value); } } + + public Map getEventParaMap() { + return eventParaMap; + } + + public RestConfContext getCtx() { + return ctx; + } } -- cgit 1.2.3-korg