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=6b413b2ff3716fb8b2efff072abbe85d9fc872fa;hb=4891734864ae374cf6ff357f41cc840c4f685300;hp=34fc4c1edf35e9310ebfbb6a8934e4e41846658c;hpb=2aa1689637366d03a1252afadf93be937c1ec644;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 34fc4c1e..6b413b2f 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 @@ -17,11 +17,13 @@ * limitations under the License. * ========================LICENSE_END=================================== */ + 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; import io.swagger.annotations.ApiResponses; @@ -31,6 +33,8 @@ 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; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -39,23 +43,28 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController +@Api(value = "RIC Management API") public class RicRepositoryController { private final ApplicationConfig appConfig; + + @Autowired + private Rics rics; + private static Gson gson = new GsonBuilder() // .serializeNulls() // .create(); // @Autowired - RicRepositoryController(ApplicationConfig config) { - this.appConfig = config; + 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"), // @@ -78,20 +87,27 @@ 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() { - Vector result = new Vector(); - for (RicConfig ricConfig : this.appConfig.getRicConfigs()) { - RicInfo ric = ImmutableRicInfo.builder() // - .managedElementIds(ricConfig.managedElementIds()) // - .name(ricConfig.name()) // - .build(); - result.add(ric); + public ResponseEntity getRics( + @RequestParam(name = "policyType", required = false) String supportingPolicyType) { + + Vector result = new Vector<>(); + 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); }