Bugfix
[nonrtric.git] / policy-agent / src / main / java / org / oransc / policyagent / tasks / RicSupervision.java
index d368fc4..2666d60 100644 (file)
@@ -43,7 +43,8 @@ import reactor.core.publisher.Mono;
 
 /**
  * Regularly checks the existing rics towards the local repository to keep it
- * consistent.
+ * consistent. When the policy types or instances in the Near-RT RIC is not
+ * consistent, a synchronization is performed.
  */
 @Component
 @EnableScheduling
@@ -73,20 +74,15 @@ public class RicSupervision {
     @Scheduled(fixedRate = 1000 * 60)
     public void checkAllRics() {
         logger.debug("Checking Rics starting");
-        createTask().subscribe( //
-            ric -> logger.debug("Ric: {} checked", ric.ric.name()), //
-            null, //
-            () -> logger.debug("Checking Rics completed") //
-        );
+        createTask().subscribe(null, null, () -> logger.debug("Checking all RICs completed"));
     }
 
     private Flux<RicData> createTask() {
-        synchronized (this.rics) {
-            return Flux.fromIterable(rics.getRics()) //
-                .flatMap(this::createRicData) //
-                .flatMap(this::checkOneRic) //
-                .onErrorResume(throwable -> Mono.empty());
-        }
+        return Flux.fromIterable(rics.getRics()) //
+            .flatMap(this::createRicData) //
+            .flatMap(this::checkOneRic) //
+            .onErrorResume(throwable -> Mono.empty());
+
     }
 
     private Mono<RicData> checkOneRic(RicData ricData) {
@@ -95,7 +91,9 @@ public class RicSupervision {
             .flatMap(x -> checkRicPolicies(ricData)) //
             .flatMap(x -> ricData.ric.getLock().unlock()) //
             .doOnError(throwable -> ricData.ric.getLock().unlockBlocking()) //
-            .flatMap(x -> checkRicPolicyTypes(ricData)); //
+            .flatMap(x -> checkRicPolicyTypes(ricData)) //
+            .doOnNext(x -> logger.debug("Ric: {} checked OK", ricData.ric.name())) //
+            .doOnError(t -> logger.debug("Ric: {} check Failed, exception: {}", ricData.ric.name(), t.getMessage()));
     }
 
     private static class RicData {
@@ -115,7 +113,7 @@ public class RicSupervision {
     }
 
     private Mono<RicData> checkRicState(RicData ric) {
-        if (ric.ric.getState() == RicState.UNDEFINED) {
+        if (ric.ric.getState() == RicState.UNAVAILABLE) {
             return startSynchronization(ric) //
                 .onErrorResume(t -> Mono.empty());
         } else if (ric.ric.getState() == RicState.SYNCHRONIZING) {