diff options
author | sebdet <sebastien.determe@intl.att.com> | 2019-09-10 15:57:10 +0200 |
---|---|---|
committer | sebdet <sebastien.determe@intl.att.com> | 2019-09-10 16:50:30 +0200 |
commit | c85d40b0cc8f40e5d0e17019878df82170f7bb35 (patch) | |
tree | a99cefc721df797a485c3ca57b0f85ad3ef4ae3d /src | |
parent | ceaa2fc1fee98ca995e1952f107d098633f01eb7 (diff) |
Repair healthcheck
HealthCheck was always returning 200 even if the db was not up and
running
Issue-ID: CLAMP-494
Change-Id: I85aa427a212c6cde568d3863d1ab1a1a11c71f16
Signed-off-by: sebdet <sebastien.determe@intl.att.com>
Diffstat (limited to 'src')
6 files changed, 41 insertions, 50 deletions
diff --git a/src/main/java/org/onap/clamp/clds/service/CldsHealthcheckService.java b/src/main/java/org/onap/clamp/clds/service/CldsHealthcheckService.java index f1679168..39c12c8f 100644 --- a/src/main/java/org/onap/clamp/clds/service/CldsHealthcheckService.java +++ b/src/main/java/org/onap/clamp/clds/service/CldsHealthcheckService.java @@ -34,7 +34,6 @@ import org.onap.clamp.loop.LoopController; import org.slf4j.event.Level; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Component; /** @@ -54,36 +53,28 @@ public class CldsHealthcheckService { * * @return CldsHealthCheck class containing healthcheck info */ - public ResponseEntity<CldsHealthCheck> gethealthcheck() { + public CldsHealthCheck gethealthcheck() { CldsHealthCheck cldsHealthCheck = new CldsHealthCheck(); Date startTime = new Date(); LoggingUtils util = new LoggingUtils(logger); LoggingUtils.setRequestContext("CldsService: GET healthcheck", "Clamp-Health-Check"); LoggingUtils.setTimeContext(startTime, new Date()); - boolean healthcheckFailed = false; try { loopController.getLoopNames(); cldsHealthCheck.setHealthCheckComponent("CLDS-APP"); cldsHealthCheck.setHealthCheckStatus("UP"); cldsHealthCheck.setDescription("OK"); LoggingUtils.setResponseContext("0", "Get healthcheck success", this.getClass().getName()); + util.exiting("200", "Healthcheck success", Level.INFO, ONAPLogConstants.ResponseStatus.COMPLETED); } catch (Exception e) { - healthcheckFailed = true; logger.error("CLAMP application Heath check failed", 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()); - if (healthcheckFailed) { util.exiting(HttpStatus.INTERNAL_SERVER_ERROR.toString(), "Healthcheck failed", Level.INFO, ONAPLogConstants.ResponseStatus.ERROR); - return new ResponseEntity<>(cldsHealthCheck, HttpStatus.INTERNAL_SERVER_ERROR); - } else { - util.exiting("200", "Healthcheck failed", Level.INFO, ONAPLogConstants.ResponseStatus.COMPLETED); - return new ResponseEntity<>(cldsHealthCheck, HttpStatus.OK); } + return cldsHealthCheck; } }
\ No newline at end of file diff --git a/src/main/java/org/onap/clamp/loop/LoopController.java b/src/main/java/org/onap/clamp/loop/LoopController.java index 7d41e489..72726fa3 100644 --- a/src/main/java/org/onap/clamp/loop/LoopController.java +++ b/src/main/java/org/onap/clamp/loop/LoopController.java @@ -61,40 +61,35 @@ public class LoopController { /** * Update the Operational Policy properties. * - * @param loopName - * The loop name - * @param operationalPoliciesJson - * The new Operational Policy properties + * @param loopName The loop name + * @param operationalPoliciesJson The new Operational Policy properties * @return The updated loop */ public Loop updateOperationalPolicies(String loopName, JsonArray operationalPoliciesJson) { List<OperationalPolicy> operationalPolicies = JsonUtils.GSON.fromJson(operationalPoliciesJson, - OPERATIONAL_POLICY_TYPE); + OPERATIONAL_POLICY_TYPE); return loopService.updateAndSaveOperationalPolicies(loopName, operationalPolicies); } /** - * Update the whole array of MicroService policies properties + * Update the whole array of MicroService policies properties. * - * @param loopName - * The loop name - * @param microServicePoliciesJson - * The array of all MicroService policies properties + * @param loopName The loop name + * @param microServicePoliciesJson The array of all MicroService policies + * properties * @return The updated loop */ public Loop updateMicroservicePolicies(String loopName, JsonArray microServicePoliciesJson) { List<MicroServicePolicy> microservicePolicies = JsonUtils.GSON.fromJson(microServicePoliciesJson, - MICROSERVICE_POLICY_TYPE); + MICROSERVICE_POLICY_TYPE); return loopService.updateAndSaveMicroservicePolicies(loopName, microservicePolicies); } /** - * Update the global properties + * Update the global properties. * - * @param loopName - * The loop name - * @param globalProperties - * The updated global properties + * @param loopName The loop name + * @param globalProperties The updated global properties * @return The updated loop */ public Loop updateGlobalPropertiesJson(String loopName, JsonObject globalProperties) { @@ -102,12 +97,10 @@ public class LoopController { } /** - * Update one MicroService policy properties + * Update one MicroService policy properties. * - * @param loopName - * The loop name - * @param newMicroservicePolicy - * The new MicroService policy properties + * @param loopName The loop name + * @param newMicroservicePolicy The new MicroService policy properties * @return The updated MicroService policy */ public MicroServicePolicy updateMicroservicePolicy(String loopName, MicroServicePolicy newMicroservicePolicy) { @@ -115,13 +108,12 @@ public class LoopController { } /** - * Get the SVG representation of the loop + * Get the SVG representation of the loop. * - * @param loopName - * The loop name + * @param loopName The loop name * @return The SVG representation */ - public String getSVGRepresentation(String loopName) { + public String getSvgRepresentation(String loopName) { Loop loop = loopService.getLoop(loopName); return loop != null ? loop.getSvgRepresentation() : null; } diff --git a/src/main/resources/META-INF/resources/swagger.html b/src/main/resources/META-INF/resources/swagger.html index d2ec9660..d3b38b69 100644 --- a/src/main/resources/META-INF/resources/swagger.html +++ b/src/main/resources/META-INF/resources/swagger.html @@ -588,7 +588,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b <div class="sect2"> <h3 id="_uri_scheme"><a class="anchor" href="#_uri_scheme"></a><a class="link" href="#_uri_scheme">1.2. URI scheme</a></h3> <div class="paragraph"> -<p><em>Host</em> : localhost:40147<br> +<p><em>Host</em> : localhost:36829<br> <em>BasePath</em> : /restservices/clds/<br> <em>Schemes</em> : HTTP</p> </div> diff --git a/src/main/resources/clds/camel/rest/clamp-api-v2.xml b/src/main/resources/clds/camel/rest/clamp-api-v2.xml index 6ee44cad..cf99625e 100644 --- a/src/main/resources/clds/camel/rest/clamp-api-v2.xml +++ b/src/main/resources/clds/camel/rest/clamp-api-v2.xml @@ -68,7 +68,7 @@ <to uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'cl','','read')" /> <to - uri="bean:org.onap.clamp.loop.LoopController?method=getSVGRepresentation(${header.loopName})" /> + uri="bean:org.onap.clamp.loop.LoopController?method=getSvgRepresentation(${header.loopName})" /> <to uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" /> <doCatch> diff --git a/src/main/resources/clds/camel/rest/clds-services.xml b/src/main/resources/clds/camel/rest/clds-services.xml index b3061dc4..dd3a4bfd 100644 --- a/src/main/resources/clds/camel/rest/clds-services.xml +++ b/src/main/resources/clds/camel/rest/clds-services.xml @@ -1,19 +1,29 @@ <rests xmlns="http://camel.apache.org/schema/spring"> - <rest > - <get uri="/v1/clds/cldsInfo" - outType="org.onap.clamp.clds.model.CldsInfo" + <rest> + <get uri="/v1/clds/cldsInfo" outType="org.onap.clamp.clds.model.CldsInfo" produces="application/json"> <to uri="bean:org.onap.clamp.clds.service.CldsService?method=getCldsInfo()" /> </get> - <get uri="/v1/healthcheck" produces="application/json"> - <to - uri="bean:org.onap.clamp.clds.service.CldsHealthcheckService?method=gethealthcheck()" /> + <get uri="/v1/healthcheck" produces="application/json" + outType="org.onap.clamp.clds.model.CldsHealthCheck"> + <route> + <setBody> + <method ref="org.onap.clamp.clds.service.CldsHealthcheckService" + method="gethealthcheck()" /> + </setBody> + <when> + <simple> ${body} == 'NOT-OK'</simple> + <setHeader headerName="CamelHttpResponseCode"> + <constant>404</constant> + </setHeader> + <log loggingLevel="ERROR" message="HealthCheck failed" /> + </when> + </route> </get> <get uri="/v1/user/getUser" produces="text/plain"> - <to - uri="bean:org.onap.clamp.clds.service.UserService?method=getUser()" /> + <to uri="bean:org.onap.clamp.clds.service.UserService?method=getUser()" /> </get> </rest> </rests> diff --git a/src/test/java/org/onap/clamp/clds/it/CldsHealthcheckServiceItCase.java b/src/test/java/org/onap/clamp/clds/it/CldsHealthcheckServiceItCase.java index 1dbea376..587b7c91 100644 --- a/src/test/java/org/onap/clamp/clds/it/CldsHealthcheckServiceItCase.java +++ b/src/test/java/org/onap/clamp/clds/it/CldsHealthcheckServiceItCase.java @@ -32,7 +32,6 @@ import org.onap.clamp.clds.service.CldsHealthcheckService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; -import org.springframework.http.ResponseEntity; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /** @@ -47,8 +46,7 @@ public class CldsHealthcheckServiceItCase { @Test public void testGetHealthCheck() { - ResponseEntity response = cldsHealthcheckService.gethealthcheck(); - CldsHealthCheck cldsHealthCheck = (CldsHealthCheck) response.getBody(); + CldsHealthCheck cldsHealthCheck = cldsHealthcheckService.gethealthcheck(); assertNotNull(cldsHealthCheck); assertEquals("UP", cldsHealthCheck.getHealthCheckStatus()); assertEquals("CLDS-APP", cldsHealthCheck.getHealthCheckComponent()); |