MsoRestClientNew not extends RestMsoImplementation
[vid.git] / vid-app-common / src / main / java / org / onap / vid / mso / rest / MsoRestClientNew.java
index 37600f7..6d7f74f 100644 (file)
@@ -2,15 +2,15 @@
  * ============LICENSE_START=======================================================
  * VID
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * Modifications Copyright (C) 2018 Nokia. All rights reserved.
+ * Copyright (C) 2017 - 2019 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2018 - 2019 Nokia. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  */
 package org.onap.vid.mso.rest;
 
+import static org.onap.vid.logging.Headers.PARTNER_NAME;
+import static org.onap.vid.utils.Logging.ONAP_REQUEST_ID_HEADER_KEY;
+
 import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.Maps;
 import io.joshworks.restclient.http.HttpResponse;
+import io.joshworks.restclient.http.JsonNode;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
 import javax.ws.rs.core.HttpHeaders;
@@ -30,16 +38,22 @@ import org.apache.commons.codec.binary.Base64;
 import org.eclipse.jetty.util.security.Password;
 import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
 import org.onap.portalsdk.core.util.SystemProperties;
+import org.onap.vid.aai.HttpResponseWithRequestInfo;
 import org.onap.vid.changeManagement.MsoRequestDetails;
 import org.onap.vid.changeManagement.RequestDetailsWrapper;
+import org.onap.vid.changeManagement.WorkflowRequestDetail;
 import org.onap.vid.client.SyncRestClient;
 import org.onap.vid.model.RequestReferencesContainer;
-import org.onap.vid.mso.*;
-
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.util.Date;
+import org.onap.vid.model.SOWorkflowList;
+import org.onap.vid.mso.MsoInterface;
+import org.onap.vid.mso.MsoProperties;
+import org.onap.vid.mso.MsoResponseWrapper;
+import org.onap.vid.mso.MsoResponseWrapperInterface;
+import org.onap.vid.mso.MsoUtil;
+import org.onap.vid.mso.RestObject;
 import org.onap.vid.utils.Logging;
+import org.onap.vid.utils.SystemPropertiesWrapper;
+import org.springframework.http.HttpMethod;
 
 
 /**
@@ -55,22 +69,25 @@ public class MsoRestClientNew implements MsoInterface {
     private static final String START = " start";
     private final SyncRestClient client;
     private final String baseUrl;
+    private final SystemPropertiesWrapper systemProperties;
     private final Map<String, String> commonHeaders;
+
     /**
      * The logger.
      */
     EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(MsoRestClientNew.class);
 
-    public MsoRestClientNew(SyncRestClient client, String baseUrl) {
+    public MsoRestClientNew(SyncRestClient client, String baseUrl, SystemPropertiesWrapper systemPropertiesWrapper) {
         this.client = client;
         this.baseUrl = baseUrl;
+        this.systemProperties = systemPropertiesWrapper;
         this.commonHeaders = initCommonHeaders();
     }
 
     @Override
     public MsoResponseWrapper createSvcInstance(RequestDetails requestDetails, String endpoint) {
         String methodName = "createSvcInstance ";
-        logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START);
+        logger.debug(EELFLoggerDelegate.debugLogger, methodName + START);
         String path = baseUrl + endpoint;
 
         return createInstance(requestDetails, path);
@@ -79,7 +96,7 @@ public class MsoRestClientNew implements MsoInterface {
     @Override
     public MsoResponseWrapper createE2eSvcInstance(Object requestDetails, String endpoint) {
         String methodName = "createE2eSvcInstance ";
-        logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START);
+        logger.debug(EELFLoggerDelegate.debugLogger, methodName + START);
         String path = baseUrl + endpoint;
 
         return createInstance(requestDetails, path);
@@ -89,7 +106,7 @@ public class MsoRestClientNew implements MsoInterface {
     public MsoResponseWrapper createVnf(RequestDetails requestDetails, String endpoint) {
 
         String methodName = "createVnf";
-        logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START);
+        logger.debug(EELFLoggerDelegate.debugLogger, methodName + START);
         String path = baseUrl + endpoint;
 
         return createInstance(requestDetails, path);
@@ -99,7 +116,7 @@ public class MsoRestClientNew implements MsoInterface {
     public MsoResponseWrapper createNwInstance(RequestDetails requestDetails, String endpoint) {
 
         String methodName = "createNwInstance";
-        logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START);
+        logger.debug(EELFLoggerDelegate.debugLogger, methodName + START);
         String path = baseUrl + endpoint;
 
         return createInstance(requestDetails, path);
@@ -108,7 +125,7 @@ public class MsoRestClientNew implements MsoInterface {
     @Override
     public MsoResponseWrapper createVolumeGroupInstance(RequestDetails requestDetails, String endpoint) {
         String methodName = "createVolumeGroupInstance";
-        logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START);
+        logger.debug(EELFLoggerDelegate.debugLogger, methodName + START);
         String path = baseUrl + endpoint;
 
         return createInstance(requestDetails, path);
@@ -117,7 +134,7 @@ public class MsoRestClientNew implements MsoInterface {
     @Override
     public MsoResponseWrapper createVfModuleInstance(RequestDetails requestDetails, String endpoint) {
         String methodName = "createVfModuleInstance";
-        logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START);
+        logger.debug(EELFLoggerDelegate.debugLogger, methodName + START);
         String path = baseUrl + endpoint;
 
         return createInstance(requestDetails, path);
@@ -126,7 +143,7 @@ public class MsoRestClientNew implements MsoInterface {
     @Override
     public MsoResponseWrapper scaleOutVFModuleInstance(RequestDetailsWrapper requestDetailsWrapper, String endpoint) {
         String methodName = "scaleOutVFModuleInstance";
-        logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START);
+        logger.debug(EELFLoggerDelegate.debugLogger, methodName + START);
         String path = baseUrl + endpoint;
         return createInstance(requestDetailsWrapper, path);
     }
@@ -134,7 +151,7 @@ public class MsoRestClientNew implements MsoInterface {
     @Override
     public MsoResponseWrapper createConfigurationInstance(org.onap.vid.mso.rest.RequestDetailsWrapper requestDetailsWrapper, String endpoint) {
         String methodName = "createConfigurationInstance";
-        logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START);
+        logger.debug(EELFLoggerDelegate.debugLogger, methodName + START);
         String path = baseUrl + endpoint;
 
         return createInstance(requestDetailsWrapper, path);
@@ -143,7 +160,7 @@ public class MsoRestClientNew implements MsoInterface {
     @Override
     public MsoResponseWrapper deleteE2eSvcInstance(Object requestDetails, String endpoint) {
         String methodName = "deleteE2eSvcInstance";
-        logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START);
+        logger.debug(EELFLoggerDelegate.debugLogger, methodName + START);
         String path = baseUrl + endpoint;
         return deleteInstance(requestDetails, path);
     }
@@ -151,7 +168,7 @@ public class MsoRestClientNew implements MsoInterface {
     @Override
     public MsoResponseWrapper deleteSvcInstance(RequestDetails requestDetails, String endpoint) {
         String methodName = "deleteSvcInstance";
-        logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START);
+        logger.debug(EELFLoggerDelegate.debugLogger, methodName + START);
         String path = baseUrl + endpoint;
         return deleteInstance(requestDetails, path);
     }
@@ -159,15 +176,17 @@ public class MsoRestClientNew implements MsoInterface {
     @Override
     public MsoResponseWrapper unassignSvcInstance(RequestDetails requestDetails, String endpoint) {
         String methodName = "unassignSvcInstance";
-        logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START);
-        HttpResponse<String> response = client.post(endpoint, commonHeaders, requestDetails, String.class);
+        logger.debug(EELFLoggerDelegate.debugLogger, methodName + START);
+        String path = baseUrl + endpoint;
+
+        HttpResponse<String> response = client.post(path, getHeaders(), requestDetails, String.class);
         return MsoUtil.wrapResponse(response);
     }
 
     @Override
     public MsoResponseWrapper deleteVnf(RequestDetails requestDetails, String endpoint) {
         String methodName = "deleteVnf";
-        logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START);
+        logger.debug(EELFLoggerDelegate.debugLogger, methodName + START);
         String path = baseUrl + endpoint;
 
         return deleteInstance(requestDetails, path);
@@ -176,7 +195,7 @@ public class MsoRestClientNew implements MsoInterface {
     @Override
     public MsoResponseWrapper deleteVfModule(RequestDetails requestDetails, String endpoint) {
         String methodName = "deleteVfModule";
-        logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START);
+        logger.debug(EELFLoggerDelegate.debugLogger, methodName + START);
         String path = baseUrl + endpoint;
 
         return deleteInstance(requestDetails, path);
@@ -185,7 +204,7 @@ public class MsoRestClientNew implements MsoInterface {
     @Override
     public MsoResponseWrapper deleteVolumeGroupInstance(RequestDetails requestDetails, String endpoint) {
         String methodName = "deleteVolumeGroupInstance";
-        logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START);
+        logger.debug(EELFLoggerDelegate.debugLogger, methodName + START);
         String path = baseUrl + endpoint;
 
         return deleteInstance(requestDetails, path);
@@ -194,59 +213,45 @@ public class MsoRestClientNew implements MsoInterface {
     @Override
     public MsoResponseWrapper deleteNwInstance(RequestDetails requestDetails, String endpoint) {
         String methodName = "deleteNwInstance";
-        logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START);
+        logger.debug(EELFLoggerDelegate.debugLogger, methodName + START);
         String path = baseUrl + endpoint;
 
         return deleteInstance(requestDetails, path);
     }
 
     @Override
-    public MsoResponseWrapper getOrchestrationRequest(String endpoint) {
+    public HttpResponseWithRequestInfo<String> getOrchestrationRequest(String endpoint, boolean warpException) {
         String path = baseUrl + endpoint;
 
-        HttpResponse<String> response = client.get(path, commonHeaders, new HashMap<>(), String.class);
-        return MsoUtil.wrapResponse(response);
+        HttpResponse<String> response = client.get(path, getHeaders(), new HashMap<>(), String.class);
+        return new HttpResponseWithRequestInfo<>(response, path, HttpMethod.GET);
     }
 
-    public MsoResponseWrapper getManualTasks(String endpoint) {
+    @Override
+    public MsoResponseWrapper getOrchestrationRequest(String endpoint) {
         String path = baseUrl + endpoint;
 
-        HttpResponse<String> response = client.get(path, commonHeaders, new HashMap<>(), String.class);
+        HttpResponse<String> response = client.get(path, getHeaders(), new HashMap<>(), String.class);
         return MsoUtil.wrapResponse(response);
     }
 
-    public MsoResponseWrapper getOrchestrationRequestsForDashboard(String t, String sourceId, String path, RestObject restObject) {
-        String methodName = "getOrchestrationRequestsForDashboard";
-        logger.debug(dateFormat.format(new Date()) + "<== " + methodName + START);
-
-        try {
-            MsoResponseWrapper w = getOrchestrationRequest(path);
-            logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " w=" + w.getResponse());
-
-            return w;
-
-        } catch (Exception e) {
-            logger.error(EELFLoggerDelegate.errorLogger, dateFormat.format(new Date()) + "<== " + "." + methodName + e.toString());
-            logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + "." + methodName + e.toString());
-            throw e;
-        }
-    }
-
+    @Override
     public MsoResponseWrapper getManualTasksByRequestId(String t, String sourceId, String endpoint, RestObject restObject) {
         String methodName = "getManualTasksByRequestId";
-        logger.debug(dateFormat.format(new Date()) + "<== " + methodName + START);
+        logger.debug(methodName + START);
 
         try {
             String path = baseUrl + endpoint;
 
-            MsoResponseWrapper w =getManualTasks(path);
-            logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " w=" + w.getResponse());
+            HttpResponse<String> response = client.get(path, getHeaders(), new HashMap<>(), String.class);
+            MsoResponseWrapper w = MsoUtil.wrapResponse(response);
 
+            logger.debug(EELFLoggerDelegate.debugLogger, methodName + " w=" + w.getResponse());
             return w;
 
         } catch (Exception e) {
-            logger.error(EELFLoggerDelegate.errorLogger, dateFormat.format(new Date()) + "<== " + "." + methodName + e.toString());
-            logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + "." + methodName + e.toString());
+            logger.error(EELFLoggerDelegate.errorLogger, "." + methodName + e.toString());
+            logger.debug(EELFLoggerDelegate.debugLogger, "." + methodName + e.toString());
             throw e;
         }
     }
@@ -254,19 +259,19 @@ public class MsoRestClientNew implements MsoInterface {
     @Override
     public MsoResponseWrapper completeManualTask(RequestDetails requestDetails, String t, String sourceId, String endpoint, RestObject restObject) {
         String methodName = "completeManualTask";
-        logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " calling Complete ");
+        logger.debug(EELFLoggerDelegate.debugLogger, methodName + " calling Complete ");
         try {
             String path = baseUrl + endpoint;
 
-            HttpResponse<String> response = client.post(path, commonHeaders, requestDetails, String.class);
+            HttpResponse<String> response = client.post(path, getHeaders(), requestDetails, String.class);
             MsoResponseWrapper w = MsoUtil.wrapResponse(response);
 
-            logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " w=" + w.getResponse());
+            logger.debug(EELFLoggerDelegate.debugLogger, methodName + " w=" + w.getResponse());
             return w;
 
         } catch (Exception e) {
-            logger.error(EELFLoggerDelegate.errorLogger, dateFormat.format(new Date()) + "<== " + "." + methodName + e.toString());
-            logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + "." + methodName + e.toString());
+            logger.error(EELFLoggerDelegate.errorLogger, "." + methodName + e.toString());
+            logger.debug(EELFLoggerDelegate.debugLogger, "." + methodName + e.toString());
             throw e;
         }
     }
@@ -274,7 +279,7 @@ public class MsoRestClientNew implements MsoInterface {
     @Override
     public MsoResponseWrapper replaceVnf(org.onap.vid.changeManagement.RequestDetails requestDetails, String endpoint) {
         String methodName = "replaceVnf";
-        logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START);
+        logger.debug(EELFLoggerDelegate.debugLogger, methodName + START);
         String path = baseUrl + endpoint;
         return replaceInstance(requestDetails, path);
     }
@@ -283,7 +288,7 @@ public class MsoRestClientNew implements MsoInterface {
     public MsoResponseWrapper deleteConfiguration(org.onap.vid.mso.rest.RequestDetailsWrapper requestDetailsWrapper, String pmc_endpoint) {
         String methodName = "deleteConfiguration";
         logger.debug(EELFLoggerDelegate.debugLogger,
-                dateFormat.format(new Date()) + "<== " + methodName + START);
+                methodName + START);
         String path = baseUrl + pmc_endpoint;
 
         return deleteInstance(requestDetailsWrapper, path);
@@ -292,18 +297,18 @@ public class MsoRestClientNew implements MsoInterface {
     @Override
     public MsoResponseWrapper setConfigurationActiveStatus(RequestDetails request, String endpoint) {
         String methodName = "setConfigurationActiveStatus";
-        logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START);
+        logger.debug(EELFLoggerDelegate.debugLogger, methodName + START);
 
         try {
             String path = baseUrl + endpoint;
 
             logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== "
                   + methodName + " calling change configuration active status, path =[" + path + "]");
-            HttpResponse<String> response = client.post(path, commonHeaders, request, String.class);
+            HttpResponse<String> response = client.post(path, getHeaders(), request, String.class);
             return MsoUtil.wrapResponse(response);
         } catch (Exception e) {
-            logger.info(EELFLoggerDelegate.errorLogger, dateFormat.format(new Date()) + "<== " + "." + methodName + e.toString());
-            logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + "." + methodName + e.toString());
+            logger.info(EELFLoggerDelegate.errorLogger, "." + methodName + e.toString());
+            logger.debug(EELFLoggerDelegate.debugLogger, "." + methodName + e.toString());
             throw e;
         }
     }
@@ -311,17 +316,17 @@ public class MsoRestClientNew implements MsoInterface {
     @Override
     public MsoResponseWrapper setPortOnConfigurationStatus(RequestDetails request, String endpoint) {
         String methodName = "setPortOnConfigurationStatus";
-        logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START);
+        logger.debug(EELFLoggerDelegate.debugLogger, methodName + START);
 
         try {
             String path = baseUrl + endpoint;
             logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== "
                 + methodName + " calling change port configuration status, path =[" + path + "]");
-            HttpResponse<String> response = client.post(path, commonHeaders, request, String.class);
+            HttpResponse<String> response = client.post(path, getHeaders(), request, String.class);
             return MsoUtil.wrapResponse(response);
         } catch (Exception e) {
-            logger.info(EELFLoggerDelegate.errorLogger, dateFormat.format(new Date()) + "<== " + "." + methodName + e.toString());
-            logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + "." + methodName + e.toString());
+            logger.info(EELFLoggerDelegate.errorLogger, "." + methodName + e.toString());
+            logger.debug(EELFLoggerDelegate.debugLogger, "." + methodName + e.toString());
             throw e;
         }
     }
@@ -329,34 +334,35 @@ public class MsoRestClientNew implements MsoInterface {
     @Override
     public MsoResponseWrapperInterface changeManagementUpdate(RequestDetailsWrapper requestDetails, String endpoint) {
         String path = baseUrl + endpoint;
-        HttpResponse<RequestReferencesContainer> response = client.post(path, commonHeaders, requestDetails, RequestReferencesContainer.class);
-        return MsoUtil.wrapResponse(response);
+        HttpResponse<String> response = client.post(path, getHeaders(), requestDetails, String.class);
+        return MsoUtil.wrapResponse2(response, RequestReferencesContainer.class);
     }
 
     public MsoResponseWrapper replaceInstance(org.onap.vid.changeManagement.RequestDetails request, String path) {
         String methodName = "replaceInstance";
-        logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START);
+        logger.debug(EELFLoggerDelegate.debugLogger, methodName + START);
 
         try {
-            logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " calling Replace VNF, path =[" + path + "]");
+            logger.debug(EELFLoggerDelegate.debugLogger, methodName + " calling Replace VNF, path =[" + path + "]");
+            RequestDetailsWrapper requestDetailsWrapper = new RequestDetailsWrapper();
+            requestDetailsWrapper.requestDetails = new MsoRequestDetails(request);
 
-            HttpResponse<String> response = client.post(path, commonHeaders, request, String.class);
+            HttpResponse<String> response = client.post(path, getHeaders(), requestDetailsWrapper, String.class);
             MsoResponseWrapper msoResponseWrapperObject = MsoUtil.wrapResponse(response);
             int status = msoResponseWrapperObject.getStatus();
             if (status == 202) {
-                logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName +
+                logger.debug(EELFLoggerDelegate.debugLogger, methodName +
                         ",post succeeded, msoResponseWrapperObject response:" + msoResponseWrapperObject.getResponse());
             } else {
-                logger.error(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName +
+                logger.error(EELFLoggerDelegate.debugLogger, methodName +
                         ": post failed, msoResponseWrapperObject status" + status + ", response:" + msoResponseWrapperObject.getResponse());
 
-                // TODO
             }
             return msoResponseWrapperObject;
 
         } catch (Exception e) {
-            logger.info(EELFLoggerDelegate.errorLogger, dateFormat.format(new Date()) + "<== " + "." + methodName + e.toString());
-            logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + "." + methodName + e.toString());
+            logger.info(EELFLoggerDelegate.errorLogger, "." + methodName + e.toString());
+            logger.debug(EELFLoggerDelegate.debugLogger, "." + methodName + e.toString());
             throw e;
         }
 
@@ -365,7 +371,7 @@ public class MsoRestClientNew implements MsoInterface {
     @Override
     public MsoResponseWrapper updateVnf(org.onap.vid.changeManagement.RequestDetails requestDetails, String endpoint) {
         String methodName = "updateVnf";
-        logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START);
+        logger.debug(EELFLoggerDelegate.debugLogger, methodName + START);
         String path = baseUrl + endpoint;
 
         RequestDetailsWrapper wrapper = new RequestDetailsWrapper();
@@ -375,37 +381,41 @@ public class MsoRestClientNew implements MsoInterface {
 
     public MsoResponseWrapper updateInstance(org.onap.vid.changeManagement.RequestDetails request, String path) {
         String methodName = "updateInstance";
-        logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START);
+        logger.debug(EELFLoggerDelegate.debugLogger, methodName + START);
 
         try {
-            logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " calling Delete, path =[" + path + "]");
+            logger.debug(EELFLoggerDelegate.debugLogger, methodName + " calling Delete, path =[" + path + "]");
 
-            HttpResponse<String> response = client.post(path, commonHeaders, request, String.class);
+            RequestDetailsWrapper requestDetailsWrapper = new RequestDetailsWrapper();
+            requestDetailsWrapper.requestDetails = new MsoRequestDetails(request);
+            HttpResponse<String> response = client.put(path, getHeaders(), requestDetailsWrapper, String.class);
             MsoResponseWrapper w = MsoUtil.wrapResponse(response);
 
-            logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " w=" + w.getResponse());
+            logger.debug(EELFLoggerDelegate.debugLogger, methodName + " w=" + w.getResponse());
             return w;
 
         } catch (Exception e) {
-            logger.info(EELFLoggerDelegate.errorLogger, dateFormat.format(new Date()) + "<== " + "." + methodName + e.toString());
-            logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + "." + methodName + e.toString());
+            logger.info(EELFLoggerDelegate.errorLogger, "." + methodName + e.toString());
+            logger.debug(EELFLoggerDelegate.debugLogger, "." + methodName + e.toString());
             throw e;
         }
 
     }
 
-    public void setServiceInstanceStatus(RequestDetails requestDetails, String t, String sourceId, String endpoint, RestObject<String> restObject) {
+    public MsoResponseWrapper setServiceInstanceStatus(RequestDetails requestDetails,
+        String endpoint) {
         String methodName = "activateServiceInstance";
-        logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start ");
+        logger.debug(EELFLoggerDelegate.debugLogger, methodName + " start ");
         try {
             String path = baseUrl + endpoint;
-            HttpResponse<String> response = client.post(path, commonHeaders, requestDetails, String.class);
+            HttpResponse<String> response = client.post(path, getHeaders(), requestDetails, String.class);
             MsoResponseWrapper w = MsoUtil.wrapResponse(response);
-            logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " w =" + w.getResponse());
+            logger.debug(EELFLoggerDelegate.debugLogger, methodName + " w =" + w.getResponse());
+            return w;
 
         } catch (Exception e) {
-            logger.error(EELFLoggerDelegate.errorLogger, dateFormat.format(new Date()) + "<== " + "." + methodName + e.toString());
-            logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + "." + methodName + e.toString());
+            logger.error(EELFLoggerDelegate.errorLogger, "." + methodName + e.toString());
+            logger.debug(EELFLoggerDelegate.debugLogger, "." + methodName + e.toString());
             throw e;
         }
     }
@@ -413,16 +423,16 @@ public class MsoRestClientNew implements MsoInterface {
     @Override
     public MsoResponseWrapper removeRelationshipFromServiceInstance(RequestDetails requestDetails, String endpoint) {
         String methodName = "removeRelationshipFromServiceInstance";
-        logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START);
+        logger.debug(EELFLoggerDelegate.debugLogger, methodName + START);
 
         try {
-            logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " calling Remove relationship from service instance, path =[" + endpoint + "]");
+            logger.debug(EELFLoggerDelegate.debugLogger, methodName + " calling Remove relationship from service instance, path =[" + endpoint + "]");
             String path = baseUrl + endpoint;
-            HttpResponse<String> response = client.post(path, commonHeaders, requestDetails, String.class);
+            HttpResponse<String> response = client.post(path, getHeaders(), requestDetails, String.class);
             return MsoUtil.wrapResponse(response);
         } catch (Exception e) {
-            logger.info(EELFLoggerDelegate.errorLogger, dateFormat.format(new Date()) + "<== " + "." + methodName + e.toString());
-            logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + "." + methodName + e.toString());
+            logger.info(EELFLoggerDelegate.errorLogger, "." + methodName + e.toString());
+            logger.debug(EELFLoggerDelegate.debugLogger, "." + methodName + e.toString());
             throw e;
         }
     }
@@ -430,43 +440,72 @@ public class MsoRestClientNew implements MsoInterface {
     @Override
     public MsoResponseWrapper addRelationshipToServiceInstance(RequestDetails requestDetails, String addRelationshipsPath) {
         String methodName = "addRelationshipToServiceInstance";
-        logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START);
+        logger.debug(EELFLoggerDelegate.debugLogger, methodName + START);
 
         try {
-            logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " calling Add relationship to service instance, path =[" + addRelationshipsPath + "]");
+            logger.debug(EELFLoggerDelegate.debugLogger, methodName + " calling Add relationship to service instance, path =[" + addRelationshipsPath + "]");
             String path = baseUrl + addRelationshipsPath;
 
-            HttpResponse<String> response = client.post(path, commonHeaders, requestDetails, String.class);
+            HttpResponse<String> response = client.post(path, getHeaders(), requestDetails, String.class);
             return MsoUtil.wrapResponse(response);
         } catch (Exception e) {
-            logger.info(EELFLoggerDelegate.errorLogger, dateFormat.format(new Date()) + "<== " + "." + methodName + e.toString());
-            logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + "." + methodName + e.toString());
+            logger.info(EELFLoggerDelegate.errorLogger, "." + methodName + e.toString());
+            logger.debug(EELFLoggerDelegate.debugLogger, "." + methodName + e.toString());
             throw e;
         }
     }
 
     @Override
-    public <T> HttpResponse<T> get(String path, Class<T> responseClass) {
-        return client.get(path, commonHeaders, new HashMap<>(), responseClass);
+    public MsoResponseWrapper invokeWorkflow(WorkflowRequestDetail workflowRequestDetail, String invokeWorkflowsPath, Map<String, String> extraHeaders) {
+        String path = baseUrl + invokeWorkflowsPath;
+        Map<String, String> finalHeader = new HashMap<>();
+
+        finalHeader.putAll(getHeaders());
+        finalHeader.putAll(extraHeaders);
+
+        RequestDetailsWrapper<WorkflowRequestDetail> requestDetailsWrapper = new RequestDetailsWrapper<>(workflowRequestDetail);
+
+        HttpResponse<JsonNode> response = client.post(path, finalHeader, requestDetailsWrapper);
+        return MsoUtil.wrapResponse(response);
     }
 
     @Override
-    public <T> HttpResponse<T> post(String path, RequestDetailsWrapper<?> requestDetailsWrapper,
-        Class<T> responseClass) {
-        return client.post(path, commonHeaders, requestDetailsWrapper, responseClass);
+    public <T> HttpResponse<T> get(String endpoint, Class<T> responseClass) {
+        String path = baseUrl + endpoint;
+        return client.get(path, getHeaders(), new HashMap<>(), responseClass);
     }
 
+    @Override
+    public <T> HttpResponse<T> post(String endpoint, RequestDetailsWrapper<?> requestDetailsWrapper, Class<T> responseClass) {
+        String path = baseUrl + endpoint;
+
+        return client.post(path, getHeaders(), requestDetailsWrapper, responseClass);
+    }
 
-    private MsoResponseWrapper createInstance(Object request, String endpoint) {
+    @Override
+    public <T> HttpResponse<T> post(String endpoint, RequestDetails requestDetails, Class<T> responseClass) {
+        String path = baseUrl + endpoint;
+
+        return client.post(path, getHeaders(), requestDetails, responseClass);
+    }
+
+
+    public HttpResponse<SOWorkflowList> getWorkflowListByModelId(String endpoint){
+        String path = baseUrl + endpoint;
+
+        return client.get(path, getHeaders(), Maps.newHashMap(), SOWorkflowList.class);
+    }
+
+    protected MsoResponseWrapper createInstance(Object request, String path) {
         String methodName = "createInstance";
-        logger.debug(dateFormat.format(new Date()) + "<== " + methodName + START);
+        logger.debug(methodName + START);
 
         try {
-            HttpResponse<String> response = client.post(endpoint, commonHeaders, request, String.class);
+            HttpResponse<String> response = client.post(path, getHeaders(), request, String.class);
             return MsoUtil.wrapResponse(response);
         } catch (Exception e) {
-            logger.error(EELFLoggerDelegate.errorLogger, dateFormat.format(new Date()) + "<== " + "." + methodName + e.toString());
-            logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + "." + methodName + e.toString());
+            logger.error(EELFLoggerDelegate.errorLogger, "." + methodName + e.toString());
+            logger.debug(EELFLoggerDelegate.debugLogger, "." + methodName + e.toString());
             throw e;
         }
     }
@@ -481,28 +520,37 @@ public class MsoRestClientNew implements MsoInterface {
      */
     private MsoResponseWrapper deleteInstance(Object request, String path) {
         String methodName = "deleteInstance";
-        logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START);
+        logger.debug(EELFLoggerDelegate.debugLogger, methodName + START);
 
         try {
-            logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " calling Delete, path =[" + path + "]");
+            logger.debug(EELFLoggerDelegate.debugLogger, methodName + " calling Delete, path =[" + path + "]");
 
-            HttpResponse<String> response = client.delete(path, commonHeaders, request, String.class);
+            HttpResponse<String> response = client.delete(path, getHeaders(), request, String.class);
             MsoResponseWrapper w = MsoUtil.wrapResponse(response);
 
-            logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " w=" + w.getResponse());
+            logger.debug(EELFLoggerDelegate.debugLogger, methodName + " w=" + w.getResponse());
             return w;
 
         } catch (Exception e) {
-            logger.error(EELFLoggerDelegate.errorLogger, dateFormat.format(new Date()) + "<== " + "." + methodName + e.toString());
-            logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + "." + methodName + e.toString());
+            logger.error(EELFLoggerDelegate.errorLogger, "." + methodName + e.toString());
+            logger.debug(EELFLoggerDelegate.debugLogger, "." + methodName + e.toString());
             throw e;
         }
 
     }
 
+    private Map<String, String> getHeaders() {
+        Map<String, String> map = new HashMap<>();
+        map.putAll(commonHeaders);
+        String requestIdValue = Logging.extractOrGenerateRequestId();
+        map.put(SystemProperties.ECOMP_REQUEST_ID, requestIdValue);
+        map.put(ONAP_REQUEST_ID_HEADER_KEY, requestIdValue);
+        return map;
+    }
+
     private Map<String, String> initCommonHeaders() {
-        String username = SystemProperties.getProperty(MsoProperties.MSO_USER_NAME);
-        String password = SystemProperties.getProperty(MsoProperties.MSO_PASSWORD);
+        String username = systemProperties.getProperty(MsoProperties.MSO_USER_NAME);
+        String password = systemProperties.getProperty(MsoProperties.MSO_PASSWORD);
         String decrypted_password = Password.deobfuscate(password);
 
         String authString = username + ":" + decrypted_password;
@@ -514,9 +562,9 @@ public class MsoRestClientNew implements MsoInterface {
         map.put(HttpHeaders.AUTHORIZATION,  "Basic " + authStringEnc);
         map.put(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON);
         map.put(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON);
-        map.put(X_FROM_APP_ID, SystemProperties.getProperty(SystemProperties.APP_DISPLAY_NAME));
-        map.put(SystemProperties.ECOMP_REQUEST_ID, Logging.extractOrGenerateRequestId());
+        map.put(X_FROM_APP_ID, systemProperties.getProperty(SystemProperties.APP_DISPLAY_NAME));
+        map.put(PARTNER_NAME.getHeaderName(), PARTNER_NAME.getHeaderValue());
         return ImmutableMap.copyOf(map);
     }
 
-}
\ No newline at end of file
+}