X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fonap%2Fclamp%2Fclds%2Fservice%2FCldsService.java;h=c3eb83bffd343e10aff63d719be6e3f565ca68f2;hb=90fcd198e69fca04ed57f05ef88f83662d9349bf;hp=2b6862dc5bbabf01959dea5bb8e5f03d032d0b4e;hpb=f672d393226629afe58b660eaec92d487206f519;p=clamp.git 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 2b6862dc..c3eb83bf 100644 --- a/src/main/java/org/onap/clamp/clds/service/CldsService.java +++ b/src/main/java/org/onap/clamp/clds/service/CldsService.java @@ -18,7 +18,7 @@ * limitations under the License. * ============LICENSE_END============================================ * =================================================================== - * ECOMP is a trademark and service mark of AT&T Intellectual Property. + * */ package org.onap.clamp.clds.service; @@ -32,7 +32,6 @@ import com.fasterxml.jackson.databind.node.ObjectNode; import java.io.IOException; import java.io.InputStream; import java.security.GeneralSecurityException; -import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Properties; @@ -121,6 +120,7 @@ public class CldsService extends SecureServiceBase { private SecureServicePermission permissionUpdateCl; private SecureServicePermission permissionReadTemplate; private SecureServicePermission permissionUpdateTemplate; + private static final long DCAE_DEPLOY_WAITING_TIME = TimeUnit.SECONDS.toNanos(30); @PostConstruct private final void afterConstruction() { @@ -161,8 +161,7 @@ public class CldsService extends SecureServiceBase { public List getCLDSDetails() { Date startTime = new Date(); LoggingUtils.setRequestContext("CldsService: GET model details", getPrincipalName()); - List cldsMonitoringDetailsList = new ArrayList(); - cldsMonitoringDetailsList = cldsDao.getCLDSMonitoringDetails(); + List cldsMonitoringDetailsList = cldsDao.getCLDSMonitoringDetails(); // audit log LoggingUtils.setTimeContext(startTime, new Date()); LoggingUtils.setResponseContext("0", "Get cldsDetails success", this.getClass().getName()); @@ -215,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(); + } } /** @@ -831,12 +837,14 @@ public class CldsService extends SecureServiceBase { String createNewDeploymentStatusUrl = dcaeDispatcherServices.createNewDeployment(deploymentId, model.getTypeId(), modelProp.getGlobal().getDeployParameters()); String operationStatus = "processing"; - long waitingTime = System.nanoTime() + TimeUnit.MINUTES.toNanos(10); + long waitingTime = System.nanoTime() + DCAE_DEPLOY_WAITING_TIME; while ("processing".equalsIgnoreCase(operationStatus)) { - // Break the loop if waiting for more than 10 mins if (waitingTime < System.nanoTime()) { + logger.info("Waiting is over for DCAE deployment"); break; } + logger.info("Waiting 5s before sending query to DCAE"); + Thread.sleep(5000); operationStatus = dcaeDispatcherServices.getOperationStatus(createNewDeploymentStatusUrl); } if ("succeeded".equalsIgnoreCase(operationStatus)) {