aboutsummaryrefslogtreecommitdiffstats
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
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>
-rw-r--r--docs/swagger/swagger.json94
-rw-r--r--docs/swagger/swagger.pdf6
-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
8 files changed, 91 insertions, 100 deletions
diff --git a/docs/swagger/swagger.json b/docs/swagger/swagger.json
index 0bd2b077e..80ffc2a9e 100644
--- a/docs/swagger/swagger.json
+++ b/docs/swagger/swagger.json
@@ -4,7 +4,7 @@
"version" : "4.1.2-SNAPSHOT",
"title" : "Clamp Rest API"
},
- "host" : "localhost:40147",
+ "host" : "localhost:36829",
"basePath" : "/restservices/clds/",
"schemes" : [ "http" ],
"paths" : {
@@ -419,12 +419,12 @@
"asString" : {
"type" : "string"
},
- "asBoolean" : {
- "type" : "boolean"
- },
"asNumber" : {
"$ref" : "#/definitions/Number"
},
+ "asBoolean" : {
+ "type" : "boolean"
+ },
"asDouble" : {
"type" : "number",
"format" : "double"
@@ -464,23 +464,23 @@
"asJsonPrimitive" : {
"$ref" : "#/definitions/JsonPrimitive"
},
- "jsonObject" : {
+ "jsonPrimitive" : {
"type" : "boolean"
},
- "jsonNull" : {
- "type" : "boolean"
+ "asJsonArray" : {
+ "$ref" : "#/definitions/JsonArray"
},
- "jsonArray" : {
+ "jsonObject" : {
"type" : "boolean"
},
- "jsonPrimitive" : {
+ "jsonNull" : {
"type" : "boolean"
},
- "asJsonArray" : {
- "$ref" : "#/definitions/JsonArray"
- },
"asJsonNull" : {
"$ref" : "#/definitions/JsonNull"
+ },
+ "jsonArray" : {
+ "type" : "boolean"
}
},
"x-className" : {
@@ -529,12 +529,12 @@
"asString" : {
"type" : "string"
},
- "asBoolean" : {
- "type" : "boolean"
- },
"asNumber" : {
"$ref" : "#/definitions/Number"
},
+ "asBoolean" : {
+ "type" : "boolean"
+ },
"asDouble" : {
"type" : "number",
"format" : "double"
@@ -577,23 +577,23 @@
"asJsonPrimitive" : {
"$ref" : "#/definitions/JsonPrimitive"
},
- "jsonObject" : {
+ "jsonPrimitive" : {
"type" : "boolean"
},
- "jsonNull" : {
- "type" : "boolean"
+ "asJsonArray" : {
+ "$ref" : "#/definitions/JsonArray"
},
- "jsonArray" : {
+ "jsonObject" : {
"type" : "boolean"
},
- "jsonPrimitive" : {
+ "jsonNull" : {
"type" : "boolean"
},
- "asJsonArray" : {
- "$ref" : "#/definitions/JsonArray"
- },
"asJsonNull" : {
"$ref" : "#/definitions/JsonNull"
+ },
+ "jsonArray" : {
+ "type" : "boolean"
}
}
},
@@ -643,29 +643,29 @@
"asString" : {
"type" : "string"
},
- "jsonObject" : {
+ "jsonPrimitive" : {
"type" : "boolean"
},
- "jsonNull" : {
- "type" : "boolean"
+ "asJsonArray" : {
+ "$ref" : "#/definitions/JsonArray"
},
- "jsonArray" : {
+ "jsonObject" : {
"type" : "boolean"
},
- "asBoolean" : {
- "type" : "boolean"
+ "asNumber" : {
+ "$ref" : "#/definitions/Number"
},
- "jsonPrimitive" : {
+ "jsonNull" : {
"type" : "boolean"
},
- "asJsonArray" : {
- "$ref" : "#/definitions/JsonArray"
- },
"asJsonNull" : {
"$ref" : "#/definitions/JsonNull"
},
- "asNumber" : {
- "$ref" : "#/definitions/Number"
+ "jsonArray" : {
+ "type" : "boolean"
+ },
+ "asBoolean" : {
+ "type" : "boolean"
},
"asDouble" : {
"type" : "number",
@@ -761,29 +761,29 @@
"asString" : {
"type" : "string"
},
- "jsonObject" : {
+ "jsonPrimitive" : {
"type" : "boolean"
},
- "jsonNull" : {
- "type" : "boolean"
+ "asJsonArray" : {
+ "$ref" : "#/definitions/JsonArray"
},
- "jsonArray" : {
+ "jsonObject" : {
"type" : "boolean"
},
- "asBoolean" : {
- "type" : "boolean"
+ "asNumber" : {
+ "$ref" : "#/definitions/Number"
},
- "jsonPrimitive" : {
+ "jsonNull" : {
"type" : "boolean"
},
- "asJsonArray" : {
- "$ref" : "#/definitions/JsonArray"
- },
"asJsonNull" : {
"$ref" : "#/definitions/JsonNull"
},
- "asNumber" : {
- "$ref" : "#/definitions/Number"
+ "jsonArray" : {
+ "type" : "boolean"
+ },
+ "asBoolean" : {
+ "type" : "boolean"
},
"asDouble" : {
"type" : "number",
diff --git a/docs/swagger/swagger.pdf b/docs/swagger/swagger.pdf
index 967dc9a89..9ae7d6e31 100644
--- a/docs/swagger/swagger.pdf
+++ b/docs/swagger/swagger.pdf
@@ -4,8 +4,8 @@
<< /Title (Clamp Rest API)
/Creator (Asciidoctor PDF 1.5.0.alpha.10, based on Prawn 1.3.0)
/Producer (Asciidoctor PDF 1.5.0.alpha.10, based on Prawn 1.3.0)
-/CreationDate (D:20190909171618+02'00')
-/ModDate (D:20190909171618+02'00')
+/CreationDate (D:20190910155046+02'00')
+/ModDate (D:20190910155046+02'00')
>>
endobj
2 0 obj
@@ -3407,7 +3407,7 @@ ET
BT
71.30850000000001 592.176 Td
/F1.0 10.5 Tf
-<203a206c6f63616c686f73743a3430313437> Tj
+<203a206c6f63616c686f73743a3336383239> Tj
ET
0.000 0.000 0.000 SCN
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 f16791681..39c12c8f5 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 7d41e489a..72726fa3f 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 d2ec96601..d3b38b693 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 6ee44cade..cf99625ee 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 b3061dc42..dd3a4bfdc 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 1dbea376d..587b7c915 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());