aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorsebdet <sebastien.determe@intl.att.com>2019-09-10 15:57:10 +0200
committersebdet <sebastien.determe@intl.att.com>2019-09-10 16:50:30 +0200
commitc85d40b0cc8f40e5d0e17019878df82170f7bb35 (patch)
treea99cefc721df797a485c3ca57b0f85ad3ef4ae3d /src
parentceaa2fc1fee98ca995e1952f107d098633f01eb7 (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')
-rw-r--r--src/main/java/org/onap/clamp/clds/service/CldsHealthcheckService.java15
-rw-r--r--src/main/java/org/onap/clamp/loop/LoopController.java42
-rw-r--r--src/main/resources/META-INF/resources/swagger.html2
-rw-r--r--src/main/resources/clds/camel/rest/clamp-api-v2.xml2
-rw-r--r--src/main/resources/clds/camel/rest/clds-services.xml26
-rw-r--r--src/test/java/org/onap/clamp/clds/it/CldsHealthcheckServiceItCase.java4
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());