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=ebfa288c54e3de9ffb6e170b599e23ab0dbe479c;hp=34fc4c1edf35e9310ebfbb6a8934e4e41846658c;hpb=3ed724aaef96d30347f9a60ca111627b28133721;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..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 @@ -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; @@ -30,7 +32,8 @@ 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; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -39,23 +42,25 @@ 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) { } /** * 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"), // @@ -64,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); } @@ -78,20 +83,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); }