X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=policy-agent%2Fsrc%2Fmain%2Fjava%2Forg%2Foransc%2Fpolicyagent%2Fcontrollers%2FRicRepositoryController.java;h=0d49833f5c6d52d77a7c222264c08d766f338899;hb=934a146caf5c9d0f735f913375d55b59041b9db5;hp=cae588a82cbf85c19951687bfb33e219d3eee45b;hpb=218b9d1686e76c4ded2d39e21f6667375f3b72d7;p=nonrtric.git diff --git a/policy-agent/src/main/java/org/oransc/policyagent/controllers/RicRepositoryController.java b/policy-agent/src/main/java/org/oransc/policyagent/controllers/RicRepositoryController.java index cae588a8..0d49833f 100644 --- a/policy-agent/src/main/java/org/oransc/policyagent/controllers/RicRepositoryController.java +++ b/policy-agent/src/main/java/org/oransc/policyagent/controllers/RicRepositoryController.java @@ -22,6 +22,7 @@ package org.oransc.policyagent.controllers; import com.google.gson.Gson; import com.google.gson.GsonBuilder; + import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; @@ -31,7 +32,6 @@ import java.util.Optional; import java.util.Vector; import org.oransc.policyagent.configuration.ApplicationConfig; -import org.oransc.policyagent.configuration.RicConfig; import org.oransc.policyagent.repository.Ric; import org.oransc.policyagent.repository.Rics; import org.springframework.beans.factory.annotation.Autowired; @@ -45,8 +45,6 @@ import org.springframework.web.bind.annotation.RestController; @Api(value = "RIC Management API") public class RicRepositoryController { - private final ApplicationConfig appConfig; - @Autowired private Rics rics; @@ -56,14 +54,13 @@ public class RicRepositoryController { @Autowired RicRepositoryController(ApplicationConfig appConfig) { - this.appConfig = appConfig; } /** * Example: http://localhost:8080/rics?managedElementId=kista_1 */ @GetMapping("/ric") - @ApiOperation(value = "Returns the name of a RIC managing one Mananged Element") + @ApiOperation(value = "Returns the name of a RIC managing one Mananged Element", response = String.class) @ApiResponses( value = { // @ApiResponse(code = 200, message = "RIC is fond"), // @@ -72,10 +69,10 @@ public class RicRepositoryController { public ResponseEntity getRic( @RequestParam(name = "managedElementId", required = false, defaultValue = "") String managedElementId) { - Optional config = appConfig.lookupRicConfigForManagedElement(managedElementId); + Optional ric = this.rics.lookupRicForManagedElement(managedElementId); - if (config.isPresent()) { - return new ResponseEntity<>(config.get().name(), HttpStatus.OK); + if (ric.isPresent()) { + return new ResponseEntity<>(ric.get().name(), HttpStatus.OK); } else { return new ResponseEntity<>("", HttpStatus.NOT_FOUND); } @@ -86,18 +83,25 @@ public class RicRepositoryController { * Example: http://localhost:8080/ric */ @GetMapping("/rics") - @ApiOperation(value = "Returns defined NearRT RIC:s as Json") + @ApiOperation(value = "Returns defined NearRT RIC:s as Json", response = RicInfo.class) @ApiResponses( value = { // - @ApiResponse(code = 200, message = "OK") // + @ApiResponse(code = 200, message = "OK", response = RicInfo.class) // }) - public ResponseEntity getRics() { + public ResponseEntity getRics( + @RequestParam(name = "policyType", required = false) String supportingPolicyType) { + Vector result = new Vector<>(); - for (Ric ric : rics.getRics()) { - result.add(ImmutableRicInfo.builder() // - .name(ric.name()) // - .nodeNames(ric.getManagedNodes()) // - .build()); + synchronized (rics) { + for (Ric ric : rics.getRics()) { + if (supportingPolicyType == null || ric.isSupportingType(supportingPolicyType)) { + result.add(ImmutableRicInfo.builder() // + .name(ric.name()) // + .managedElementIds(ric.getManagedElementIds()) // + .policyTypes(ric.getSupportedPolicyTypeNames()) // + .build()); + } + } } return new ResponseEntity<>(gson.toJson(result), HttpStatus.OK);