Merge "Migrate CPS to Spring-boot 3.0"
[cps.git] / cps-ncmp-service / src / main / java / org / onap / cps / ncmp / api / impl / client / DmiRestClient.java
index a098340..6a8310c 100644 (file)
 
 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;
@@ -35,6 +38,7 @@ import org.springframework.web.client.RestTemplate;
 
 @Component
 @AllArgsConstructor
+@Slf4j
 public class DmiRestClient {
 
     private RestTemplate restTemplate;
@@ -60,6 +64,28 @@ public class DmiRestClient {
         }
     }
 
+    /**
+     * 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) {
+                if (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());