X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=main%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fpolicy%2Fpap%2Fmain%2Frest%2FPolicyStatusControllerV1.java;h=43227475cdb8637158868778f566ff7dadad0bac;hb=4694c152f69380f4d3d64bde0a13d15fb59a71f3;hp=7333432ed23b4da9277f7eb0e08b6579805df923;hpb=c51fa0d4e953518571a115af4afdea80a17ed605;p=policy%2Fpap.git diff --git a/main/src/main/java/org/onap/policy/pap/main/rest/PolicyStatusControllerV1.java b/main/src/main/java/org/onap/policy/pap/main/rest/PolicyStatusControllerV1.java index 7333432e..43227475 100644 --- a/main/src/main/java/org/onap/policy/pap/main/rest/PolicyStatusControllerV1.java +++ b/main/src/main/java/org/onap/policy/pap/main/rest/PolicyStatusControllerV1.java @@ -33,12 +33,7 @@ import io.swagger.annotations.ExtensionProperty; import io.swagger.annotations.ResponseHeader; import java.util.Collection; import java.util.UUID; -import javax.ws.rs.GET; -import javax.ws.rs.HeaderParam; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.QueryParam; -import javax.ws.rs.core.Response; +import lombok.RequiredArgsConstructor; import org.onap.policy.models.base.PfModelException; import org.onap.policy.models.base.PfModelRuntimeException; import org.onap.policy.models.pap.concepts.PolicyStatus; @@ -46,11 +41,22 @@ import org.onap.policy.models.pdp.concepts.PdpPolicyStatus; import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifierOptVersion; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestHeader; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; /** * Class to provide REST end points for PAP component to retrieve the status of deployed * policies. */ +@RestController +@RequestMapping(path = "/policy/pap/v1") +@RequiredArgsConstructor public class PolicyStatusControllerV1 extends PapRestControllerV1 { private static final String EMPTY_REGEX_ERROR_MESSAGE = "An empty string passed as a regex is not allowed"; private static final String EMPTY_REGEX_WARNING = ". Empty string passed as Regex."; @@ -58,7 +64,7 @@ public class PolicyStatusControllerV1 extends PapRestControllerV1 { private static final Logger logger = LoggerFactory.getLogger(PolicyStatusControllerV1.class); - private final PolicyStatusProvider provider = new PolicyStatusProvider(); + private final PolicyStatusProvider provider; /** * Queries status of all deployed policies. If regex is not null or empty, the function will only return @@ -69,8 +75,7 @@ public class PolicyStatusControllerV1 extends PapRestControllerV1 { * @return a response */ // @formatter:off - @GET - @Path("policies/deployed") + @GetMapping("policies/deployed") @ApiOperation(value = "Queries status of all deployed policies", notes = "Queries status of all deployed policies, returning success and failure counts of the PDPs", responseContainer = "List", response = PolicyStatus.class, @@ -99,9 +104,11 @@ public class PolicyStatusControllerV1 extends PapRestControllerV1 { }) // @formatter:on - public Response queryAllDeployedPolicies( - @HeaderParam(REQUEST_ID_NAME) @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) final UUID requestId, - @ApiParam(value = "Regex for a policy name") @QueryParam("regex") String regex) { + public ResponseEntity queryAllDeployedPolicies( + @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) @RequestHeader( + required = false, + value = REQUEST_ID_NAME) final UUID requestId, + @ApiParam(value = "Regex for a policy name") @RequestParam(required = false, value = "regex") String regex) { try { final Collection result; if (regex == null) { @@ -115,16 +122,16 @@ public class PolicyStatusControllerV1 extends PapRestControllerV1 { } catch (PfModelException | PfModelRuntimeException e) { logger.warn(GET_DEPLOYMENTS_FAILED, e); - return addLoggingHeaders(addVersionControlHeaders(Response.status(e.getErrorResponse().getResponseCode())), - requestId).entity(e.getErrorResponse().getErrorMessage()).build(); + return addLoggingHeaders( + addVersionControlHeaders(ResponseEntity.status(e.getErrorResponse().getResponseCode().getStatusCode())), + requestId).body(e.getErrorResponse().getErrorMessage()); } catch (PatternSyntaxException e) { logger.warn(GET_DEPLOYMENTS_FAILED, e); - return addLoggingHeaders(addVersionControlHeaders(Response.status(Response.Status.BAD_REQUEST)), requestId) - .entity(e.getMessage()).build(); + return addLoggingHeaders(addVersionControlHeaders(ResponseEntity.status(HttpStatus.BAD_REQUEST)), requestId) + .body(e.getMessage()); } } - /** * Queries status of specific deployed policies. * @@ -132,8 +139,7 @@ public class PolicyStatusControllerV1 extends PapRestControllerV1 { * @return a response */ // @formatter:off - @GET - @Path("policies/deployed/{name}") + @GetMapping("policies/deployed/{name}") @ApiOperation(value = "Queries status of specific deployed policies", notes = "Queries status of specific deployed policies, returning success and failure counts of the PDPs", responseContainer = "List", response = PolicyStatus.class, @@ -162,9 +168,11 @@ public class PolicyStatusControllerV1 extends PapRestControllerV1 { }) // @formatter:on - public Response queryDeployedPolicies( - @ApiParam(value = "Policy Id", required = true) @PathParam("name") String name, - @HeaderParam(REQUEST_ID_NAME) @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) final UUID requestId) { + public ResponseEntity queryDeployedPolicies( + @ApiParam(value = "Policy Id") @PathVariable("name") String name, + @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) @RequestHeader( + required = false, + value = REQUEST_ID_NAME) final UUID requestId) { try { Collection result = provider.getStatus(new ToscaConceptIdentifierOptVersion(name, null)); @@ -172,14 +180,14 @@ public class PolicyStatusControllerV1 extends PapRestControllerV1 { return makeNotFoundResponse(requestId); } else { - return addLoggingHeaders(addVersionControlHeaders(Response.status(Response.Status.OK)), requestId) - .entity(result).build(); + return addLoggingHeaders(addVersionControlHeaders(ResponseEntity.ok()), requestId).body(result); } } catch (PfModelException | PfModelRuntimeException e) { logger.warn(GET_DEPLOYMENTS_FAILED, e); - return addLoggingHeaders(addVersionControlHeaders(Response.status(e.getErrorResponse().getResponseCode())), - requestId).entity(e.getErrorResponse().getErrorMessage()).build(); + return addLoggingHeaders( + addVersionControlHeaders(ResponseEntity.status(e.getErrorResponse().getResponseCode().getStatusCode())), + requestId).body(e.getErrorResponse().getErrorMessage()); } } @@ -191,8 +199,7 @@ public class PolicyStatusControllerV1 extends PapRestControllerV1 { * @return a response */ // @formatter:off - @GET - @Path("policies/deployed/{name}/{version}") + @GetMapping("policies/deployed/{name}/{version}") @ApiOperation(value = "Queries status of a specific deployed policy", notes = "Queries status of a specific deployed policy, returning success and failure counts of the PDPs", response = PolicyStatus.class, @@ -221,9 +228,11 @@ public class PolicyStatusControllerV1 extends PapRestControllerV1 { }) // @formatter:on - public Response queryDeployedPolicy(@ApiParam(value = "Policy Id", required = true) @PathParam("name") String name, - @ApiParam(value = "Policy Version", required = true) @PathParam("version") String version, - @HeaderParam(REQUEST_ID_NAME) @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) final UUID requestId) { + public ResponseEntity queryDeployedPolicy(@ApiParam(value = "Policy Id") @PathVariable("name") String name, + @ApiParam(value = "Policy Version") @PathVariable("version") String version, + @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) @RequestHeader( + required = false, + value = REQUEST_ID_NAME) final UUID requestId) { try { Collection result = provider.getStatus(new ToscaConceptIdentifierOptVersion(name, version)); @@ -231,14 +240,15 @@ public class PolicyStatusControllerV1 extends PapRestControllerV1 { return makeNotFoundResponse(requestId); } else { - return addLoggingHeaders(addVersionControlHeaders(Response.status(Response.Status.OK)), requestId) - .entity(result.iterator().next()).build(); + return addLoggingHeaders(addVersionControlHeaders(ResponseEntity.ok()), requestId) + .body(result.iterator().next()); } } catch (PfModelException | PfModelRuntimeException e) { logger.warn(GET_DEPLOYMENTS_FAILED, e); - return addLoggingHeaders(addVersionControlHeaders(Response.status(e.getErrorResponse().getResponseCode())), - requestId).entity(e.getErrorResponse().getErrorMessage()).build(); + return addLoggingHeaders( + addVersionControlHeaders(ResponseEntity.status(e.getErrorResponse().getResponseCode().getStatusCode())), + requestId).body(e.getErrorResponse().getErrorMessage()); } } @@ -250,8 +260,7 @@ public class PolicyStatusControllerV1 extends PapRestControllerV1 { * @return a response */ // @formatter:off - @GET - @Path("policies/status") + @GetMapping("policies/status") @ApiOperation(value = "Queries status of policies in all PdpGroups", notes = "Queries status of policies in all PdpGroups, " + "returning status of policies in all the PDPs belonging to all PdpGroups", @@ -281,17 +290,20 @@ public class PolicyStatusControllerV1 extends PapRestControllerV1 { }) // @formatter:on - public Response getStatusOfAllPolicies( - @HeaderParam(REQUEST_ID_NAME) @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) final UUID requestId) { + public ResponseEntity getStatusOfAllPolicies( + @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) @RequestHeader( + required = false, + value = REQUEST_ID_NAME) final UUID requestId) { try { - return addLoggingHeaders(addVersionControlHeaders(Response.status(Response.Status.OK)), requestId) - .entity(provider.getPolicyStatus()).build(); + return addLoggingHeaders(addVersionControlHeaders(ResponseEntity.ok()), requestId) + .body(provider.getPolicyStatus()); } catch (PfModelException | PfModelRuntimeException e) { logger.warn(GET_DEPLOYMENTS_FAILED, e); - return addLoggingHeaders(addVersionControlHeaders(Response.status(e.getErrorResponse().getResponseCode())), - requestId).entity(e.getErrorResponse().getErrorMessage()).build(); + return addLoggingHeaders( + addVersionControlHeaders(ResponseEntity.status(e.getErrorResponse().getResponseCode().getStatusCode())), + requestId).body(e.getErrorResponse().getErrorMessage()); } } @@ -305,8 +317,7 @@ public class PolicyStatusControllerV1 extends PapRestControllerV1 { * @return a response */ // @formatter:off - @GET - @Path("policies/status/{pdpGroupName}") + @GetMapping("policies/status/{pdpGroupName}") @ApiOperation(value = "Queries status of policies in a specific PdpGroup", notes = "Queries status of policies in a specific PdpGroup, " + "returning status of policies in all the PDPs belonging to the PdpGroup", @@ -336,10 +347,12 @@ public class PolicyStatusControllerV1 extends PapRestControllerV1 { }) // @formatter:on - public Response getStatusOfPoliciesByGroup( - @ApiParam(value = "PDP Group Name", required = true) @PathParam("pdpGroupName") String pdpGroupName, - @HeaderParam(REQUEST_ID_NAME) @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) final UUID requestId, - @ApiParam(value = "Regex for a policy name") @QueryParam("regex") String regex) { + public ResponseEntity getStatusOfPoliciesByGroup( + @ApiParam(value = "PDP Group Name") @PathVariable("pdpGroupName") String pdpGroupName, + @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) @RequestHeader( + required = false, + value = REQUEST_ID_NAME) final UUID requestId, + @ApiParam(value = "Regex for a policy name") @RequestParam(required = false, value = "regex") String regex) { try { final Collection result; @@ -354,12 +367,13 @@ public class PolicyStatusControllerV1 extends PapRestControllerV1 { } catch (PfModelException | PfModelRuntimeException e) { logger.warn(GET_DEPLOYMENTS_FAILED, e); - return addLoggingHeaders(addVersionControlHeaders(Response.status(e.getErrorResponse().getResponseCode())), - requestId).entity(e.getErrorResponse().getErrorMessage()).build(); + return addLoggingHeaders( + addVersionControlHeaders(ResponseEntity.status(e.getErrorResponse().getResponseCode().getStatusCode())), + requestId).body(e.getErrorResponse().getErrorMessage()); } catch (PatternSyntaxException e) { logger.warn(GET_DEPLOYMENTS_FAILED, e); - return addLoggingHeaders(addVersionControlHeaders(Response.status(Response.Status.BAD_REQUEST)), requestId) - .entity(e.getMessage()).build(); + return addLoggingHeaders(addVersionControlHeaders(ResponseEntity.status(HttpStatus.BAD_REQUEST)), requestId) + .body(e.getMessage()); } } @@ -372,8 +386,7 @@ public class PolicyStatusControllerV1 extends PapRestControllerV1 { * @return a response */ // @formatter:off - @GET - @Path("policies/status/{pdpGroupName}/{policyName}") + @GetMapping("policies/status/{pdpGroupName}/{policyName}") @ApiOperation(value = "Queries status of all versions of a specific policy in a specific PdpGroup", notes = "Queries status of all versions of a specific policy in a specific PdpGroup," + " returning status of all versions of the policy in the PDPs belonging to the PdpGroup", @@ -403,10 +416,12 @@ public class PolicyStatusControllerV1 extends PapRestControllerV1 { }) // @formatter:on - public Response getStatusOfPolicies( - @ApiParam(value = "PDP Group Name", required = true) @PathParam("pdpGroupName") String pdpGroupName, - @ApiParam(value = "Policy Id", required = true) @PathParam("policyName") String policyName, - @HeaderParam(REQUEST_ID_NAME) @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) final UUID requestId) { + public ResponseEntity getStatusOfPolicies( + @ApiParam(value = "PDP Group Name") @PathVariable("pdpGroupName") String pdpGroupName, + @ApiParam(value = "Policy Id") @PathVariable("policyName") String policyName, + @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) @RequestHeader( + required = false, + value = REQUEST_ID_NAME) final UUID requestId) { try { Collection result = @@ -415,14 +430,15 @@ public class PolicyStatusControllerV1 extends PapRestControllerV1 { return makeNotFoundResponse(requestId); } else { - return addLoggingHeaders(addVersionControlHeaders(Response.status(Response.Status.OK)), requestId) - .entity(result).build(); + return addLoggingHeaders(addVersionControlHeaders(ResponseEntity.ok()), requestId) + .body(result); } } catch (PfModelException | PfModelRuntimeException e) { logger.warn(GET_DEPLOYMENTS_FAILED, e); - return addLoggingHeaders(addVersionControlHeaders(Response.status(e.getErrorResponse().getResponseCode())), - requestId).entity(e.getErrorResponse().getErrorMessage()).build(); + return addLoggingHeaders( + addVersionControlHeaders(ResponseEntity.status(e.getErrorResponse().getResponseCode().getStatusCode())), + requestId).body(e.getErrorResponse().getErrorMessage()); } } @@ -437,8 +453,7 @@ public class PolicyStatusControllerV1 extends PapRestControllerV1 { * @return a response */ // @formatter:off - @GET - @Path("policies/status/{pdpGroupName}/{policyName}/{policyVersion}") + @GetMapping("policies/status/{pdpGroupName}/{policyName}/{policyVersion}") @ApiOperation(value = "Queries status of a specific version of a specific policy in a specific PdpGroup", notes = "Queries status of a specific version of a specific policy in a specific PdpGroup," + " returning status of the policy in the PDPs belonging to the PdpGroup", @@ -468,11 +483,13 @@ public class PolicyStatusControllerV1 extends PapRestControllerV1 { }) // @formatter:on - public Response getStatusOfPolicy( - @ApiParam(value = "PDP Group Name", required = true) @PathParam("pdpGroupName") String pdpGroupName, - @ApiParam(value = "Policy Id", required = true) @PathParam("policyName") String policyName, - @ApiParam(value = "Policy Version", required = true) @PathParam("policyVersion") String policyVersion, - @HeaderParam(REQUEST_ID_NAME) @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) final UUID requestId) { + public ResponseEntity getStatusOfPolicy( + @ApiParam(value = "PDP Group Name") @PathVariable("pdpGroupName") String pdpGroupName, + @ApiParam(value = "Policy Id") @PathVariable("policyName") String policyName, + @ApiParam(value = "Policy Version") @PathVariable("policyVersion") String policyVersion, + @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) @RequestHeader( + required = false, + value = REQUEST_ID_NAME) final UUID requestId) { try { Collection result = provider.getPolicyStatus(pdpGroupName, @@ -481,14 +498,15 @@ public class PolicyStatusControllerV1 extends PapRestControllerV1 { return makeNotFoundResponse(requestId); } else { - return addLoggingHeaders(addVersionControlHeaders(Response.status(Response.Status.OK)), requestId) - .entity(result.iterator().next()).build(); + return addLoggingHeaders(addVersionControlHeaders(ResponseEntity.ok()), requestId) + .body(result.iterator().next()); } } catch (PfModelException | PfModelRuntimeException e) { logger.warn(GET_DEPLOYMENTS_FAILED, e); - return addLoggingHeaders(addVersionControlHeaders(Response.status(e.getErrorResponse().getResponseCode())), - requestId).entity(e.getErrorResponse().getErrorMessage()).build(); + return addLoggingHeaders( + addVersionControlHeaders(ResponseEntity.status(e.getErrorResponse().getResponseCode().getStatusCode())), + requestId).body(e.getErrorResponse().getErrorMessage()); } } @@ -498,23 +516,22 @@ public class PolicyStatusControllerV1 extends PapRestControllerV1 { * @param requestId request ID * @return a "not found" response */ - private Response makeNotFoundResponse(final UUID requestId) { - return addLoggingHeaders(addVersionControlHeaders(Response.status(Response.Status.NOT_FOUND)), requestId) + private ResponseEntity makeNotFoundResponse(final UUID requestId) { + return addLoggingHeaders(addVersionControlHeaders(ResponseEntity.status(HttpStatus.NOT_FOUND)), requestId) .build(); } - private Response makeRegexNotFoundResponse(UUID requestId) { + private ResponseEntity makeRegexNotFoundResponse(UUID requestId) { logger.warn(GET_DEPLOYMENTS_FAILED + EMPTY_REGEX_WARNING); - return addLoggingHeaders(addVersionControlHeaders(Response.status(Response.Status.BAD_REQUEST)), - requestId).entity(EMPTY_REGEX_ERROR_MESSAGE).build(); + return addLoggingHeaders(addVersionControlHeaders(ResponseEntity.status(HttpStatus.BAD_REQUEST)), + requestId).body(EMPTY_REGEX_ERROR_MESSAGE); } - private Response makeListOrNotFoundResponse(UUID requestId, Collection result) { + private ResponseEntity makeListOrNotFoundResponse(UUID requestId, Collection result) { if (result.isEmpty()) { return makeNotFoundResponse(requestId); } else { - return addLoggingHeaders(addVersionControlHeaders(Response.status(Response.Status.OK)), requestId) - .entity(result).build(); + return addLoggingHeaders(addVersionControlHeaders(ResponseEntity.ok()), requestId).body(result); } } }