X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=policy-agent%2Fsrc%2Fmain%2Fjava%2Forg%2Foransc%2Fpolicyagent%2Ftasks%2FRefreshConfigTask.java;h=f44c8d5ccbbd65f7555ca2f17a39b73a07d8c4b7;hb=c9a6805df30f6282ace0285df26107b5518d4e2b;hp=05bcb0f25e7fcaea2327e4c844e94979dc85cfda;hpb=97aaf161d02804c08cffff826f3afdb7690ee5bb;p=nonrtric.git diff --git a/policy-agent/src/main/java/org/oransc/policyagent/tasks/RefreshConfigTask.java b/policy-agent/src/main/java/org/oransc/policyagent/tasks/RefreshConfigTask.java index 05bcb0f2..f44c8d5c 100644 --- a/policy-agent/src/main/java/org/oransc/policyagent/tasks/RefreshConfigTask.java +++ b/policy-agent/src/main/java/org/oransc/policyagent/tasks/RefreshConfigTask.java @@ -22,8 +22,10 @@ package org.oransc.policyagent.tasks; import com.google.gson.GsonBuilder; import com.google.gson.JsonElement; +import com.google.gson.JsonIOException; import com.google.gson.JsonObject; import com.google.gson.JsonParser; +import com.google.gson.JsonSyntaxException; import com.google.gson.TypeAdapterFactory; import java.io.BufferedInputStream; @@ -69,8 +71,7 @@ import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; /** - * Regularly refreshes the configuration from Consul or from a local - * configuration file. + * Regularly refreshes the configuration from Consul or from a local configuration file. */ @Component public class RefreshConfigTask { @@ -80,6 +81,11 @@ public class RefreshConfigTask { @Value("#{systemEnvironment}") public Properties systemEnvironment; + /** + * The time between refreshes of the configuration. + */ + static final Duration CONFIG_REFRESH_INTERVAL = Duration.ofMinutes(1); + final ApplicationConfig appConfig; @Getter(AccessLevel.PROTECTED) private Disposable refreshTask = null; @@ -90,8 +96,6 @@ public class RefreshConfigTask { private final Policies policies; private final Services services; private final PolicyTypes policyTypes; - private static final Duration FILE_CONFIG_REFRESH_INTERVAL = Duration.ofMinutes(1); - private static final Duration CONSUL_CONFIG_REFRESH_INTERVAL = Duration.ofMinutes(1); @Autowired public RefreshConfigTask(ApplicationConfig appConfig, Rics rics, Policies policies, Services services, @@ -120,14 +124,14 @@ public class RefreshConfigTask { } Flux createRefreshTask() { - Flux loadFromFile = Flux.interval(Duration.ZERO, FILE_CONFIG_REFRESH_INTERVAL) // + Flux loadFromFile = Flux.interval(Duration.ZERO, CONFIG_REFRESH_INTERVAL) // .filter(notUsed -> !this.isConsulUsed) // .flatMap(notUsed -> loadConfigurationFromFile()) // .onErrorResume(this::ignoreErrorFlux) // .doOnNext(json -> logger.debug("loadFromFile succeeded")) // .doOnTerminate(() -> logger.error("loadFromFile Terminate")); - Flux loadFromConsul = Flux.interval(Duration.ZERO, CONSUL_CONFIG_REFRESH_INTERVAL) // + Flux loadFromConsul = Flux.interval(Duration.ZERO, CONFIG_REFRESH_INTERVAL) // .flatMap(i -> getEnvironment(systemEnvironment)) // .flatMap(this::createCbsClient) // .flatMap(this::getFromCbs) // @@ -155,8 +159,8 @@ public class RefreshConfigTask { } private Mono getFromCbs(CbsClient cbsClient) { - final CbsRequest getConfigRequest = CbsRequests.getAll(RequestDiagnosticContext.create()); try { + final CbsRequest getConfigRequest = CbsRequests.getAll(RequestDiagnosticContext.create()); return cbsClient.get(getConfigRequest) // .onErrorResume(this::ignoreErrorMono); } catch (Exception e) { @@ -246,7 +250,7 @@ public class RefreshConfigTask { appParser.parse(rootObject); logger.debug("Local configuration file loaded: {}", filepath); return Flux.just(rootObject); - } catch (IOException | ServiceException e) { + } catch (Exception e) { logger.error("Local configuration file not loaded: {}, {}", filepath, e.getMessage()); return Flux.empty(); }