package org.onap.cps.ncmp.api.impl.client;
+import com.fasterxml.jackson.databind.JsonNode;
import lombok.AllArgsConstructor;
+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;
@Component
@AllArgsConstructor
+@Slf4j
public class DmiRestClient {
private RestTemplate restTemplate;
}
}
+ /**
+ * Sends GET operation to DMI plugin's health check URL.
+ *
+ * @param dmiPluginBaseUrl the base URL of the dmi-plugin
+ * @return DmiPluginStatus as UP or DOWN
+ */
+ public DmiPluginStatus getDmiPluginStatus(final String dmiPluginBaseUrl) {
+ try {
+ final HttpEntity<Object> httpHeaders = new HttpEntity<>(configureHttpHeaders(new HttpHeaders()));
+ final JsonNode dmiPluginHealthStatus = restTemplate.getForObject(dmiPluginBaseUrl + "/manage/health",
+ 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 DmiPluginStatus.DOWN;
+ }
+
private HttpHeaders configureHttpHeaders(final HttpHeaders httpHeaders) {
if (dmiProperties.isDmiBasicAuthEnabled()) {
httpHeaders.setBasicAuth(dmiProperties.getAuthUsername(), dmiProperties.getAuthPassword());