Extend probe mechanism
[vid.git] / vid-app-common / src / main / java / org / onap / vid / mso / MsoBusinessLogicImpl.java
index 64c405a..c2ac51a 100644 (file)
@@ -27,6 +27,8 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 import io.joshworks.restclient.http.HttpResponse;
+import org.apache.commons.collections4.ListUtils;
+import org.jetbrains.annotations.NotNull;
 import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
 import org.onap.portalsdk.core.util.SystemProperties;
 import org.onap.vid.changeManagement.ChangeManagementRequest;
@@ -37,6 +39,9 @@ import org.onap.vid.exceptions.GenericUncheckedException;
 import org.onap.vid.model.RequestReferencesContainer;
 import org.onap.vid.model.SOWorkflowList;
 import org.onap.vid.model.SoftDeleteRequest;
+import org.onap.vid.model.probes.ExternalComponentStatus;
+import org.onap.vid.model.probes.HttpRequestMetadata;
+import org.onap.vid.model.probes.StatusMetadata;
 import org.onap.vid.mso.model.CloudConfiguration;
 import org.onap.vid.mso.model.ModelInfo;
 import org.onap.vid.mso.model.OperationalEnvironmentActivateInfo;
@@ -52,6 +57,7 @@ import org.onap.vid.mso.rest.RequestWrapper;
 import org.onap.vid.mso.rest.Task;
 import org.onap.vid.mso.rest.TaskList;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpMethod;
 import org.springframework.http.HttpStatus;
 import org.togglz.core.manager.FeatureManager;
 
@@ -404,7 +410,7 @@ public class MsoBusinessLogicImpl implements MsoBusinessLogic {
         } catch (IOException e) {
             throw new GenericUncheckedException(e);
         }
-        return requestList.getRequestList();
+        return ListUtils.emptyIfNull(requestList.getRequestList());
     }
 
 
@@ -858,6 +864,38 @@ public class MsoBusinessLogicImpl implements MsoBusinessLogic {
         return msoClientInterface.addRelationshipToServiceInstance(requestDetails, addRelationshipsPath);
     }
 
+
+    @Override
+    public ExternalComponentStatus probeGetOrchestrationRequests() {
+        String url = SystemProperties.getProperty(
+                MsoProperties.MSO_SERVER_URL) + "/" + SystemProperties.getProperty(MsoProperties.MSO_REST_API_GET_ORC_REQS);
+        long startTime = System.currentTimeMillis();
+        ExternalComponentStatus externalComponentStatus;
+
+        try {
+            RestObject<List<Request>> restObject = createRequestsList(getOrchestrationRequestsForDashboard());
+
+            StatusMetadata statusMetadata = new HttpRequestMetadata(new RestObjectWithRequestInfo(HttpMethod.GET, url, restObject),
+                    "VID-SO communication works", System.currentTimeMillis() - startTime);
+
+            externalComponentStatus = new ExternalComponentStatus(ExternalComponentStatus.Component.MSO, true, statusMetadata);
+        } catch (Exception e) {
+            StatusMetadata statusMetadata = new HttpRequestMetadata(HttpMethod.GET, HttpStatus.INTERNAL_SERVER_ERROR.value(), url, "", e.getMessage(), System.currentTimeMillis() - startTime);
+            externalComponentStatus = new ExternalComponentStatus(ExternalComponentStatus.Component.MSO, false, statusMetadata);
+        }
+
+        return externalComponentStatus;
+    }
+
+    @NotNull
+    private RestObject<List<Request>> createRequestsList(List<Request> orchestrationRequestsForDashboard) {
+        RestObject<List<Request>> restObject = new RestObject<>();
+        restObject.set(orchestrationRequestsForDashboard);
+        restObject.setStatusCode(200);
+        return restObject;
+    }
+
+
     private void validateUpdateVnfConfig(RequestDetails requestDetails) {
         final String noValidPayloadMsg = "No valid payload in " + ChangeManagementRequest.CONFIG_UPDATE + " request";