From: Determe, Sebastien (sd378r) Date: Thu, 26 Apr 2018 09:06:36 +0000 (+0200) Subject: Fix HealthCheck X-Git-Tag: v2.0.0~29 X-Git-Url: https://gerrit.onap.org/r/gitweb?p=clamp.git;a=commitdiff_plain;h=90fcd198e69fca04ed57f05ef88f83662d9349bf Fix HealthCheck Change the healthcheck method to answer by http code according to the status Issue-ID: CLAMP-157 Change-Id: I82b11cb385e346e23e2fa3ae82f8e099d0ca10ac Signed-off-by: Determe, Sebastien (sd378r) --- diff --git a/src/main/java/org/onap/clamp/clds/service/CldsService.java b/src/main/java/org/onap/clamp/clds/service/CldsService.java index dc6ff432..c3eb83bf 100644 --- a/src/main/java/org/onap/clamp/clds/service/CldsService.java +++ b/src/main/java/org/onap/clamp/clds/service/CldsService.java @@ -214,27 +214,34 @@ public class CldsService extends SecureServiceBase { @GET @Path("/healthcheck") @Produces(MediaType.APPLICATION_JSON) - public CldsHealthCheck gethealthcheck() { + public Response gethealthcheck() { CldsHealthCheck cldsHealthCheck = new CldsHealthCheck(); Date startTime = new Date(); - LoggingUtils.setRequestContext("CldsService: GET healthcheck", getPrincipalName()); + LoggingUtils.setRequestContext("CldsService: GET healthcheck", "Clamp-Health-Check"); LoggingUtils.setTimeContext(startTime, new Date()); + boolean healthcheckFailed = false; try { cldsDao.doHealthCheck(); cldsHealthCheck.setHealthCheckComponent("CLDS-APP"); cldsHealthCheck.setHealthCheckStatus("UP"); cldsHealthCheck.setDescription("OK"); + LoggingUtils.setResponseContext("0", "Get healthcheck success", this.getClass().getName()); } catch (Exception e) { + healthcheckFailed = true; logger.error("CLAMP application DB Error", e); + LoggingUtils.setResponseContext("999", "Get healthcheck failed", this.getClass().getName()); cldsHealthCheck.setHealthCheckComponent("CLDS-APP"); cldsHealthCheck.setHealthCheckStatus("DOWN"); cldsHealthCheck.setDescription("NOT-OK"); } // audit log LoggingUtils.setTimeContext(startTime, new Date()); - LoggingUtils.setResponseContext("0", "Get healthcheck success", this.getClass().getName()); - securityLogger.info("GET healthcheck completed"); - return cldsHealthCheck; + logger.info("GET healthcheck completed"); + if (healthcheckFailed) { + return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(cldsHealthCheck).build(); + } else { + return Response.status(Response.Status.OK).entity(cldsHealthCheck).build(); + } } /** diff --git a/src/test/java/org/onap/clamp/clds/it/CldsServiceItCase.java b/src/test/java/org/onap/clamp/clds/it/CldsServiceItCase.java index 23df19c6..1450af90 100644 --- a/src/test/java/org/onap/clamp/clds/it/CldsServiceItCase.java +++ b/src/test/java/org/onap/clamp/clds/it/CldsServiceItCase.java @@ -37,6 +37,7 @@ import java.security.GeneralSecurityException; import java.security.Principal; import java.util.Properties; +import javax.ws.rs.core.Response; import javax.ws.rs.core.SecurityContext; import org.apache.commons.codec.DecoderException; @@ -127,7 +128,8 @@ public class CldsServiceItCase { @Test public void testGetHealthCheck() { - CldsHealthCheck cldsHealthCheck = cldsService.gethealthcheck(); + Response response = cldsService.gethealthcheck(); + CldsHealthCheck cldsHealthCheck = (CldsHealthCheck) response.getEntity(); assertNotNull(cldsHealthCheck); assertEquals("UP", cldsHealthCheck.getHealthCheckStatus()); assertEquals("CLDS-APP", cldsHealthCheck.getHealthCheckComponent());