X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=policy-agent%2Fsrc%2Fmain%2Fjava%2Forg%2Foransc%2Fpolicyagent%2Fcontrollers%2FPolicyController.java;h=b102964c26f014b5049301435aa94e7a748f568f;hb=8936c783ff4f362fbc9b96b658b5defb0701da54;hp=afd3a5bc7257345e9f3ac5a7a8cabe5cd315cda4;hpb=89e139b32a18dfffe03a25107584e9d9cfa59fda;p=nonrtric.git diff --git a/policy-agent/src/main/java/org/oransc/policyagent/controllers/PolicyController.java b/policy-agent/src/main/java/org/oransc/policyagent/controllers/PolicyController.java index afd3a5bc..b102964c 100644 --- a/policy-agent/src/main/java/org/oransc/policyagent/controllers/PolicyController.java +++ b/policy-agent/src/main/java/org/oransc/policyagent/controllers/PolicyController.java @@ -27,10 +27,10 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; + import java.util.ArrayList; import java.util.Collection; import java.util.List; -import java.util.Vector; import org.oransc.policyagent.clients.A1ClientFactory; import org.oransc.policyagent.configuration.ApplicationConfig; @@ -188,7 +188,9 @@ public class PolicyController { .ownerServiceName(service) // .lastModified(getTimeStampUtc()) // .build(); - return a1ClientFactory.createA1Client(ric) // + + return validateModifiedPolicy(policy) // + .flatMap(x -> a1ClientFactory.createA1Client(ric)) // .flatMap(client -> client.putPolicy(policy)) // .doOnNext(notUsed -> policies.put(policy)) // .flatMap(notUsed -> Mono.just(new ResponseEntity<>(HttpStatus.OK))); @@ -196,6 +198,17 @@ public class PolicyController { return Mono.just(new ResponseEntity<>(HttpStatus.NOT_FOUND)); } + private Mono validateModifiedPolicy(Policy policy) { + // Check that ric is not updated + Policy current = this.policies.get(policy.id()); + if (current != null) { + if (!current.ric().name().equals(policy.ric().name())) { + return Mono.error(new Exception("Policy cannot change RIC or service")); + } + } + return Mono.just("OK"); + } + @GetMapping("/policies") @ApiOperation(value = "Query policies") @ApiResponses(