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=c3e58008dca1d09a414561f619d59400b99ee57a;hb=6a39814272307d0207222c9229b0d765ac062bf0;hp=0d49833f5c6d52d77a7c222264c08d766f338899;hpb=be84d0b846398b9684f9ddba2ef4f60a23cd5eb0;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 0d49833f..c3e58008 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 @@ -25,13 +25,15 @@ import com.google.gson.GsonBuilder; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; +import java.util.ArrayList; +import java.util.List; import java.util.Optional; -import java.util.Vector; -import org.oransc.policyagent.configuration.ApplicationConfig; +import org.oransc.policyagent.repository.PolicyTypes; import org.oransc.policyagent.repository.Ric; import org.oransc.policyagent.repository.Rics; import org.springframework.beans.factory.annotation.Autowired; @@ -42,65 +44,62 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController -@Api(value = "RIC Management API") +@Api(tags = "RIC Repository") public class RicRepositoryController { @Autowired private Rics rics; + @Autowired + PolicyTypes types; + private static Gson gson = new GsonBuilder() // .serializeNulls() // .create(); // - @Autowired - RicRepositoryController(ApplicationConfig appConfig) { - } - /** - * Example: http://localhost:8080/rics?managedElementId=kista_1 + * Example: http://localhost:8081/rics?managedElementId=kista_1 */ @GetMapping("/ric") - @ApiOperation(value = "Returns the name of a RIC managing one Mananged Element", response = String.class) + @ApiOperation(value = "Returns the name of a RIC managing one Mananged Element") @ApiResponses( value = { // - @ApiResponse(code = 200, message = "RIC is fond"), // - @ApiResponse(code = 404, message = "RIC is not fond") // + @ApiResponse(code = 200, message = "RIC is found", response = String.class), // + @ApiResponse(code = 404, message = "RIC is not found", response = String.class) // }) - public ResponseEntity getRic( - @RequestParam(name = "managedElementId", required = false, defaultValue = "") String managedElementId) { - + public ResponseEntity getRic( // + @ApiParam(name = "managedElementId", required = true, value = "The ID of the Managed Element") // + @RequestParam(name = "managedElementId", required = true) String managedElementId) { Optional ric = this.rics.lookupRicForManagedElement(managedElementId); if (ric.isPresent()) { return new ResponseEntity<>(ric.get().name(), HttpStatus.OK); } else { - return new ResponseEntity<>("", HttpStatus.NOT_FOUND); + return new ResponseEntity<>("No RIC found", HttpStatus.NOT_FOUND); } } /** - * @return a Json array of all RIC data - * Example: http://localhost:8080/ric + * @return a Json array of all RIC data Example: http://localhost:8081/ric */ @GetMapping("/rics") - @ApiOperation(value = "Returns defined NearRT RIC:s as Json", response = RicInfo.class) + @ApiOperation(value = "Query Near-RT RIC information") @ApiResponses( value = { // - @ApiResponse(code = 200, message = "OK", response = RicInfo.class) // - }) - public ResponseEntity getRics( + @ApiResponse(code = 200, message = "OK", response = RicInfo.class, responseContainer = "List"), // + @ApiResponse(code = 404, message = "Policy type is not found", response = String.class)}) + public ResponseEntity getRics( // + @ApiParam(name = "policyType", required = false, value = "The name of the policy type") // @RequestParam(name = "policyType", required = false) String supportingPolicyType) { + if ((supportingPolicyType != null) && (this.types.get(supportingPolicyType) == null)) { + return new ResponseEntity<>("Policy type not found", HttpStatus.NOT_FOUND); + } - 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()); - } + List result = new ArrayList<>(); + for (Ric ric : rics.getRics()) { + if (supportingPolicyType == null || ric.isSupportingType(supportingPolicyType)) { + result.add(new RicInfo(ric.name(), ric.getManagedElementIds(), ric.getSupportedPolicyTypeNames(), + ric.getState().toString())); } }