Fix HealthCheck 33/44833/1
authorDeterme, Sebastien (sd378r) <sd378r@intl.att.com>
Thu, 26 Apr 2018 09:06:36 +0000 (11:06 +0200)
committerDeterme, Sebastien (sd378r) <sd378r@intl.att.com>
Thu, 26 Apr 2018 09:06:36 +0000 (11:06 +0200)
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) <sd378r@intl.att.com>
src/main/java/org/onap/clamp/clds/service/CldsService.java
src/test/java/org/onap/clamp/clds/it/CldsServiceItCase.java

index dc6ff43..c3eb83b 100644 (file)
@@ -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();
+        }
     }
 
     /**
index 23df19c..1450af9 100644 (file)
@@ -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());