From: Liam Fallon Date: Wed, 23 Mar 2022 09:50:46 +0000 (+0000) Subject: Merge "Fix spring transaction issue in getNodetemplates" X-Git-Tag: 2.6.2~3 X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=846d86dea4f60f6cb2596ce5ec6d877fe4ac9b76;hp=b66daa5aa2d3fa3645f579bfd7a69ccf5a48be2f;p=policy%2Fapi.git Merge "Fix spring transaction issue in getNodetemplates" --- diff --git a/main/src/main/java/org/onap/policy/api/main/exception/ServiceExceptionHandler.java b/main/src/main/java/org/onap/policy/api/main/exception/ServiceExceptionHandler.java index f75013c9..1909e199 100644 --- a/main/src/main/java/org/onap/policy/api/main/exception/ServiceExceptionHandler.java +++ b/main/src/main/java/org/onap/policy/api/main/exception/ServiceExceptionHandler.java @@ -26,7 +26,6 @@ import org.aspectj.lang.annotation.AfterThrowing; import org.aspectj.lang.annotation.Aspect; import org.onap.policy.models.base.PfModelRuntimeException; import org.onap.policy.models.errors.concepts.ErrorResponse; -import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Component; import org.springframework.transaction.TransactionException; @@ -42,7 +41,7 @@ public class ServiceExceptionHandler { * @param exception the exception */ @AfterThrowing(pointcut = "execution(* org.onap.policy.api.main.service.*.*(..))", throwing = "exception") - public ResponseEntity handleServiceException(JoinPoint joinPoint, RuntimeException exception) { + public void handleServiceException(JoinPoint joinPoint, RuntimeException exception) { if (exception instanceof PolicyApiRuntimeException || exception instanceof PfModelRuntimeException) { throw exception; } else { @@ -64,10 +63,10 @@ public class ServiceExceptionHandler { */ @AfterThrowing(pointcut = "execution(* org.onap.policy.api.main..*.*(..))" + " && !execution(* org.onap.policy.api.main.rest.provider.statistics.*.*(..))", throwing = "exception") - public ResponseEntity handleTransactionException(JoinPoint joinPoint, TransactionException exception) { + public void handleTransactionException(JoinPoint joinPoint, TransactionException exception) { final var errorResponse = new ErrorResponse(); errorResponse.setResponseCode(Response.Status.INTERNAL_SERVER_ERROR); errorResponse.setErrorMessage(exception.getMessage()); throw new PolicyApiRuntimeException(exception.getMessage(), exception.getCause(), errorResponse, null); } -} \ No newline at end of file +} diff --git a/main/src/main/java/org/onap/policy/api/main/rest/ApiRestController.java b/main/src/main/java/org/onap/policy/api/main/rest/ApiRestController.java index d6f6d6af..a734b2d6 100644 --- a/main/src/main/java/org/onap/policy/api/main/rest/ApiRestController.java +++ b/main/src/main/java/org/onap/policy/api/main/rest/ApiRestController.java @@ -136,8 +136,9 @@ public class ApiRestController extends CommonRestController { public ResponseEntity getHealthCheck( @RequestHeader(name = REQUEST_ID_NAME, required = false) @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) UUID requestId) { - updateApiStatisticsCounter(Target.OTHER, HttpStatus.OK, HttpMethod.GET); - return makeOkResponse(requestId, healthCheckProvider.performHealthCheck()); + final var report = healthCheckProvider.performHealthCheck(); + updateApiStatisticsCounter(Target.OTHER, HttpStatus.resolve(report.getCode()), HttpMethod.GET); + return makeResponse(requestId, report, report.getCode()); } /** @@ -1151,4 +1152,4 @@ public class ApiRestController extends CommonRestController { } } } -} \ No newline at end of file +} diff --git a/main/src/main/java/org/onap/policy/api/main/rest/CommonRestController.java b/main/src/main/java/org/onap/policy/api/main/rest/CommonRestController.java index ce479bc0..ef288e47 100644 --- a/main/src/main/java/org/onap/policy/api/main/rest/CommonRestController.java +++ b/main/src/main/java/org/onap/policy/api/main/rest/CommonRestController.java @@ -31,6 +31,7 @@ import org.onap.policy.common.utils.coder.CoderException; import org.onap.policy.common.utils.coder.StandardCoder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.context.request.WebRequest; @@ -79,7 +80,12 @@ public class CommonRestController { protected final Coder coder = new StandardCoder(); protected ResponseEntity makeOkResponse(UUID requestId, T respEntity) { - return CommonRestController.addLoggingHeaders(addVersionControlHeaders(ResponseEntity.ok()), requestId) + return makeResponse(requestId, respEntity, HttpStatus.OK.value()); + } + + protected ResponseEntity makeResponse(UUID requestId, T respEntity, int status) { + return CommonRestController + .addLoggingHeaders(addVersionControlHeaders(ResponseEntity.status(status)), requestId) .body(respEntity); } @@ -138,4 +144,4 @@ public class CommonRestController { CommonRestController.addVersionControlHeaders(ResponseEntity.status(status)), requestId != null ? UUID.fromString(requestId) : ex.getRequestId()).body(ex.getErrorResponse()); } -} \ No newline at end of file +} diff --git a/main/src/main/java/org/onap/policy/api/main/rest/provider/healthcheck/HealthCheckProvider.java b/main/src/main/java/org/onap/policy/api/main/rest/provider/healthcheck/HealthCheckProvider.java index 88bb1c93..bbcfcd54 100644 --- a/main/src/main/java/org/onap/policy/api/main/rest/provider/healthcheck/HealthCheckProvider.java +++ b/main/src/main/java/org/onap/policy/api/main/rest/provider/healthcheck/HealthCheckProvider.java @@ -29,7 +29,6 @@ import lombok.RequiredArgsConstructor; import org.onap.policy.api.main.service.ToscaServiceTemplateService; import org.onap.policy.common.endpoints.report.HealthCheckReport; import org.onap.policy.common.utils.network.NetworkUtil; -import org.onap.policy.models.base.PfModelRuntimeException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; @@ -75,9 +74,9 @@ public class HealthCheckProvider { try { toscaServiceTemplateService.getDefaultJpaToscaServiceTemplate(); return true; - } catch (PfModelRuntimeException pfme) { - LOGGER.warn("Api to database connection check failed. Details - ", pfme); + } catch (Exception ex) { + LOGGER.warn("Api to database connection check failed. Details: ", ex); return false; } } -} \ No newline at end of file +}