X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=policy-agent%2Fsrc%2Fmain%2Fjava%2Forg%2Foransc%2Fpolicyagent%2Ftasks%2FServiceSupervision.java;h=1e7f2dc771d5bb4bae59b988a883a38c012ac694;hb=fb4bc7967a4733d10775351440a3af14327d5f20;hp=f2de7cf18d1a552020307f106fa6b640556917a8;hpb=4a112834cf7ea69f230fde864856093ecadb9cfe;p=nonrtric.git diff --git a/policy-agent/src/main/java/org/oransc/policyagent/tasks/ServiceSupervision.java b/policy-agent/src/main/java/org/oransc/policyagent/tasks/ServiceSupervision.java index f2de7cf1..1e7f2dc7 100644 --- a/policy-agent/src/main/java/org/oransc/policyagent/tasks/ServiceSupervision.java +++ b/policy-agent/src/main/java/org/oransc/policyagent/tasks/ServiceSupervision.java @@ -69,25 +69,29 @@ public class ServiceSupervision { } private Flux createTask() { - return Flux.fromIterable(services.getAll()) // - .filter(service -> service.isExpired()) // - .doOnNext(service -> logger.info("Service is expired:" + service.getName())) - .flatMap(service -> getAllPolicies(service)) // - .doOnNext(policy -> this.policies.remove(policy)) // - .flatMap(policy -> deletePolicyInRic(policy)); + synchronized (services) { + return Flux.fromIterable(services.getAll()) // + .filter(service -> service.isExpired()) // + .doOnNext(service -> logger.info("Service is expired:" + service.getName())) // + .flatMap(service -> getAllPolicies(service)) // + .doOnNext(policy -> this.policies.remove(policy)) // + .flatMap(policy -> deletePolicyInRic(policy)); + } } private Flux getAllPolicies(Service service) { - return Flux.fromIterable(policies.getForService(service.getName())); + synchronized (policies) { + return Flux.fromIterable(policies.getForService(service.getName())); + } } private Mono deletePolicyInRic(Policy policy) { return a1Client.deletePolicy(policy.ric().getConfig().baseUrl(), policy.id()) // .onErrorResume(exception -> handleDeleteFromRicFailure(policy, exception)) // - .flatMap((nothing) -> Mono.just(policy)); + .map((nothing) -> policy); } - private Mono handleDeleteFromRicFailure(Policy policy, Throwable e) { + private Mono handleDeleteFromRicFailure(Policy policy, Throwable e) { logger.warn("Could not delete policy: {} from ric: {}", policy.id(), policy.ric().name(), e); return Mono.empty(); }