X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=policy-agent%2Fsrc%2Fmain%2Fjava%2Forg%2Foransc%2Fpolicyagent%2Ftasks%2FStartupService.java;h=8bfa81ea17dfa1e322a70dd87c687d1c18aa6559;hb=e6f2305abd791d003d4729c3bd8c8652d89eed70;hp=f7420a027668420f53bfc1b1804c5729b5011b92;hpb=805681f9c4f555fd905af4ecd4f0beea8d657327;p=nonrtric.git diff --git a/policy-agent/src/main/java/org/oransc/policyagent/tasks/StartupService.java b/policy-agent/src/main/java/org/oransc/policyagent/tasks/StartupService.java index f7420a02..8bfa81ea 100644 --- a/policy-agent/src/main/java/org/oransc/policyagent/tasks/StartupService.java +++ b/policy-agent/src/main/java/org/oransc/policyagent/tasks/StartupService.java @@ -32,7 +32,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; - import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; @@ -71,9 +70,8 @@ public class StartupService { Flux.fromIterable(applicationConfig.getRicConfigs()) // .map(ricConfig -> new Ric(ricConfig)) // .doOnNext(ric -> logger.debug("Handling ric: {}", ric.getConfig().name())) // - .flatMap(this::addPolicyTypesForRic) + .flatMap(this::addPolicyTypesForRic) // .flatMap(this::deletePoliciesForRic) // - .flatMap(this::setRicToActive) // .flatMap(this::addRicToRepo) // .subscribe(); } @@ -83,7 +81,7 @@ public class StartupService { .doOnNext(typeId -> logger.debug("For ric: {}, handling type: {}", ric.getConfig().name(), typeId)) .flatMap(this::addTypeToRepo) // .flatMap(type -> addTypeToRic(ric, type)) // - .subscribe(); + .subscribe(null, cause -> setRicToNotReachable(ric, cause), () -> setRicToActive(ric)); return Mono.just(ric); } @@ -101,18 +99,24 @@ public class StartupService { } private Mono deletePoliciesForRic(Ric ric) { - a1Client.getPolicyIdentities(ric.getConfig().baseUrl()) // - .doOnNext(policyId -> logger.debug("deleting policy: {}, for ric: {}", policyId, ric.getConfig().name())) // - .flatMap(policyId -> a1Client.deletePolicy(ric.getConfig().baseUrl(), policyId)) // - .subscribe(); + if (!Ric.RicState.NOT_REACHABLE.equals(ric.state())) { + a1Client.getPolicyIdentities(ric.getConfig().baseUrl()) // + .doOnNext( + policyId -> logger.debug("Deleting policy: {}, for ric: {}", policyId, ric.getConfig().name())) + .flatMap(policyId -> a1Client.deletePolicy(ric.getConfig().baseUrl(), policyId)) // + .subscribe(null, cause -> setRicToNotReachable(ric, cause), null); + } return Mono.just(ric); } - private Mono setRicToActive(Ric ric) { - ric.setState(RicState.ACTIVE); + private void setRicToNotReachable(Ric ric, Throwable t) { + ric.setState(Ric.RicState.NOT_REACHABLE); + logger.info("Unable to connect to ric {}. Cause: {}", ric.name(), t.getMessage()); + } - return Mono.just(ric); + private void setRicToActive(Ric ric) { + ric.setState(RicState.ACTIVE); } private Mono addRicToRepo(Ric ric) {