package org.onap.ccsdk.cds.blueprintsprocessor.actuator.indicator
+import kotlinx.coroutines.runBlocking
import org.onap.ccsdk.cds.blueprintsprocessor.healthapi.domain.HealthApiResponse
import org.onap.ccsdk.cds.blueprintsprocessor.healthapi.domain.HealthCheckStatus
import org.onap.ccsdk.cds.blueprintsprocessor.healthapi.service.health.BluePrintProcessorHealthCheck
+import org.slf4j.LoggerFactory
import org.springframework.boot.actuate.health.AbstractHealthIndicator
import org.springframework.boot.actuate.health.Health
import org.springframework.stereotype.Component
*/
@Component
open class BluePrintCustomIndicator(private val bluePrintProcessorHealthCheck: BluePrintProcessorHealthCheck) :
- AbstractHealthIndicator() {
+ AbstractHealthIndicator() {
+
+ private var logger = LoggerFactory.getLogger(BluePrintCustomIndicator::class.java)
@Throws(Exception::class)
override fun doHealthCheck(builder: Health.Builder) {
- var result: HealthApiResponse? = bluePrintProcessorHealthCheck!!.retrieveEndpointExecutionStatus()
- if (result?.status == HealthCheckStatus.UP) {
- builder.up()
- } else {
- builder.down()
+ runBlocking {
+ var result: HealthApiResponse? = null
+ try {
+ result = bluePrintProcessorHealthCheck!!.retrieveEndpointExecutionStatus()
+ if (result?.status == HealthCheckStatus.UP) {
+ builder.up()
+ } else {
+ builder.down()
+ }
+ builder.withDetail("Services", result?.checks)
+ } catch (exception: IllegalArgumentException) {
+ logger.error(exception.message)
+ }
}
- builder.withDetail("Services", result?.checks)
}
}
@PropertySource("classpath:application.properties")
open class HealthCheckProperties {
- @Value("\${blueprintprocessor.healthcheck.baseUrl}")
+ @Value("\${blueprintprocessor.healthcheck.baseUrl:}")
private val bluePrintProcessorBaseURL: String? = null
- @Value("#{'\${blueprintprocessor.healthcheck.mapping-service-name-with-service-link}'.split(']')}")
+ @Value("#{'\${blueprintprocessor.healthcheck.mapping-service-name-with-service-link:}'.split(']')}")
private val blueprintprocessorServiceMapping: List<String>? = null
- @Value("\${cdslistener.healthcheck.baseUrl}")
+ @Value("\${cdslistener.healthcheck.baseUrl:}")
private val cdsListenerBaseURL: String? = null
- @Value("#{'\${cdslistener.healthcheck.mapping-service-name-with-service-link}'.split(']')}")
+ @Value("#{'\${cdslistener.healthcheck.mapping-service-name-with-service-link:}'.split(']')}")
private val cdsListenerServiceMapping: List<String>? = null
open fun getBluePrintBaseURL(): String? {