X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=cps-ncmp-service%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fcps%2Fncmp%2Fapi%2Fimpl%2Fclient%2FDmiRestClient.java;h=5b93eb4853b4419ff6c2548b46d32c84350be8a7;hb=0afd8642a9195a34a7b3c119496982fefbbda3e9;hp=e8ce050b2ee33233a3100362380ab45962b14ea7;hpb=fc7a5d30953cfedd7e2ea2f969adab03716de6df;p=cps.git diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/client/DmiRestClient.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/client/DmiRestClient.java index e8ce050b2..5b93eb485 100644 --- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/client/DmiRestClient.java +++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/client/DmiRestClient.java @@ -22,12 +22,11 @@ package org.onap.cps.ncmp.api.impl.client; import com.fasterxml.jackson.databind.JsonNode; -import lombok.AllArgsConstructor; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.onap.cps.ncmp.api.impl.config.NcmpConfiguration.DmiProperties; import org.onap.cps.ncmp.api.impl.exception.HttpClientRequestException; import org.onap.cps.ncmp.api.impl.operations.OperationType; -import org.onap.cps.ncmp.api.impl.trustlevel.dmiavailability.DmiPluginStatus; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; @@ -37,18 +36,21 @@ import org.springframework.web.client.HttpStatusCodeException; import org.springframework.web.client.RestTemplate; @Component -@AllArgsConstructor +@RequiredArgsConstructor @Slf4j public class DmiRestClient { - private RestTemplate restTemplate; - private DmiProperties dmiProperties; + private static final String HEALTH_CHECK_URL_EXTENSION = "/actuator/health"; + private static final String NOT_SPECIFIED = ""; + private final RestTemplate restTemplate; + private final DmiProperties dmiProperties; /** * Sends POST operation to DMI with json body containing module references. - * @param dmiResourceUrl dmi resource url + * + * @param dmiResourceUrl dmi resource url * @param requestBodyAsJsonString json data body - * @param operationType the type of operation being executed (for error reporting only) + * @param operationType the type of operation being executed (for error reporting only) * @return response entity of type String */ public ResponseEntity postOperationWithJsonData(final String dmiResourceUrl, @@ -60,28 +62,28 @@ public class DmiRestClient { } catch (final HttpStatusCodeException httpStatusCodeException) { final String exceptionMessage = "Unable to " + operationType.toString() + " resource data."; throw new HttpClientRequestException(exceptionMessage, httpStatusCodeException.getResponseBodyAsString(), - httpStatusCodeException.getStatusCode().value()); + httpStatusCodeException.getStatusCode().value()); } } /** - * Sends GET operation to DMI plugin's health check URL. + * Get DMI plugin health status. * * @param dmiPluginBaseUrl the base URL of the dmi-plugin - * @return DmiPluginStatus as UP or DOWN + * @return plugin health status ("UP" is all OK, "" (not-specified) in case of any exception) */ - public DmiPluginStatus getDmiPluginStatus(final String dmiPluginBaseUrl) { + public String getDmiHealthStatus(final String dmiPluginBaseUrl) { + final HttpEntity httpHeaders = new HttpEntity<>(configureHttpHeaders(new HttpHeaders())); try { - final HttpEntity httpHeaders = new HttpEntity<>(configureHttpHeaders(new HttpHeaders())); - final JsonNode dmiPluginHealthStatus = restTemplate.getForObject(dmiPluginBaseUrl + "/manage/health", + final JsonNode responseHealthStatus = + restTemplate.getForObject(dmiPluginBaseUrl + HEALTH_CHECK_URL_EXTENSION, JsonNode.class, httpHeaders); - if (dmiPluginHealthStatus != null && dmiPluginHealthStatus.get("status").asText().equals("UP")) { - return DmiPluginStatus.UP; - } - } catch (final Exception exception) { - log.warn("Could not send request for health check since {}", exception.getMessage()); + return responseHealthStatus == null ? NOT_SPECIFIED : + responseHealthStatus.get("status").asText(); + } catch (final Exception e) { + log.warn("Failed to retrieve health status from {}. Error Message: {}", dmiPluginBaseUrl, e.getMessage()); + return NOT_SPECIFIED; } - return DmiPluginStatus.DOWN; } private HttpHeaders configureHttpHeaders(final HttpHeaders httpHeaders) {