Merge changes from topics "VID-14", "VID-13", "VID-12"
[vid.git] / vid-app-common / src / main / java / org / onap / vid / mso / rest / MsoRestClientNew.java
index ff7acff..4b8a974 100644 (file)
  */
 package org.onap.vid.mso.rest;
 
+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;
@@ -34,12 +37,14 @@ 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.aai.util.HttpsAuthClient;
 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.model.SOWorkflowList;
 import org.onap.vid.mso.MsoInterface;
 import org.onap.vid.mso.MsoProperties;
 import org.onap.vid.mso.MsoResponseWrapper;
@@ -48,6 +53,8 @@ import org.onap.vid.mso.MsoUtil;
 import org.onap.vid.mso.RestMsoImplementation;
 import org.onap.vid.mso.RestObject;
 import org.onap.vid.utils.Logging;
+import org.onap.vid.utils.SystemPropertiesWrapper;
+import org.springframework.http.HttpMethod;
 
 
 /**
@@ -59,6 +66,7 @@ public class MsoRestClientNew extends RestMsoImplementation implements MsoInterf
      * The Constant dateFormat.
      */
     public static final String X_FROM_APP_ID = "X-FromAppId";
+    public static final String X_ONAP_PARTNER_NAME = "X-ONAP-PartnerName";
     final static DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss:SSSS");
     private static final String START = " start";
     private final SyncRestClient client;
@@ -69,8 +77,8 @@ public class MsoRestClientNew extends RestMsoImplementation implements MsoInterf
      */
     EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(MsoRestClientNew.class);
 
-    public MsoRestClientNew(SyncRestClient client, String baseUrl, HttpsAuthClient authClient) {
-        super(authClient);
+    public MsoRestClientNew(SyncRestClient client, String baseUrl, HttpsAuthClient authClient, SystemPropertiesWrapper systemPropertiesWrapper) {
+        super(authClient,systemPropertiesWrapper);
         this.client = client;
         this.baseUrl = baseUrl;
         this.commonHeaders = initCommonHeaders();
@@ -171,7 +179,7 @@ public class MsoRestClientNew extends RestMsoImplementation implements MsoInterf
         logger.debug(EELFLoggerDelegate.debugLogger, methodName + START);
         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);
     }
 
@@ -212,18 +220,18 @@ public class MsoRestClientNew extends RestMsoImplementation implements MsoInterf
     }
 
     @Override
-    public MsoResponseWrapper getOrchestrationRequest(String t, String sourceId, String endpoint, RestObject restObject, boolean warpException) {
+    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);
     }
 
     @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);
     }
 
@@ -235,7 +243,7 @@ public class MsoRestClientNew extends RestMsoImplementation implements MsoInterf
         try {
             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);
             MsoResponseWrapper w = MsoUtil.wrapResponse(response);
 
             logger.debug(EELFLoggerDelegate.debugLogger, methodName + " w=" + w.getResponse());
@@ -255,7 +263,7 @@ public class MsoRestClientNew extends RestMsoImplementation implements MsoInterf
         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, methodName + " w=" + w.getResponse());
@@ -296,7 +304,7 @@ public class MsoRestClientNew extends RestMsoImplementation implements MsoInterf
 
             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, "." + methodName + e.toString());
@@ -314,7 +322,7 @@ public class MsoRestClientNew extends RestMsoImplementation implements MsoInterf
             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, "." + methodName + e.toString());
@@ -326,8 +334,8 @@ public class MsoRestClientNew extends RestMsoImplementation implements MsoInterf
     @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) {
@@ -339,7 +347,7 @@ public class MsoRestClientNew extends RestMsoImplementation implements MsoInterf
             RequestDetailsWrapper requestDetailsWrapper = new RequestDetailsWrapper();
             requestDetailsWrapper.requestDetails = new MsoRequestDetails(request);
 
-            HttpResponse<String> response = client.post(path, commonHeaders, requestDetailsWrapper, String.class);
+            HttpResponse<String> response = client.post(path, getHeaders(), requestDetailsWrapper, String.class);
             MsoResponseWrapper msoResponseWrapperObject = MsoUtil.wrapResponse(response);
             int status = msoResponseWrapperObject.getStatus();
             if (status == 202) {
@@ -380,7 +388,7 @@ public class MsoRestClientNew extends RestMsoImplementation implements MsoInterf
 
             RequestDetailsWrapper requestDetailsWrapper = new RequestDetailsWrapper();
             requestDetailsWrapper.requestDetails = new MsoRequestDetails(request);
-            HttpResponse<String> response = client.put(path, commonHeaders, requestDetailsWrapper, String.class);
+            HttpResponse<String> response = client.put(path, getHeaders(), requestDetailsWrapper, String.class);
             MsoResponseWrapper w = MsoUtil.wrapResponse(response);
 
             logger.debug(EELFLoggerDelegate.debugLogger, methodName + " w=" + w.getResponse());
@@ -394,14 +402,16 @@ public class MsoRestClientNew extends RestMsoImplementation implements MsoInterf
 
     }
 
-    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, 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, methodName + " w =" + w.getResponse());
+            return w;
 
         } catch (Exception e) {
             logger.error(EELFLoggerDelegate.errorLogger, "." + methodName + e.toString());
@@ -418,7 +428,7 @@ public class MsoRestClientNew extends RestMsoImplementation implements MsoInterf
         try {
             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, "." + methodName + e.toString());
@@ -436,7 +446,7 @@ public class MsoRestClientNew extends RestMsoImplementation implements MsoInterf
             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, "." + methodName + e.toString());
@@ -450,7 +460,7 @@ public class MsoRestClientNew extends RestMsoImplementation implements MsoInterf
         String path = baseUrl + invokeWorkflowsPath;
         Map<String, String> finalHeader = new HashMap<>();
 
-        finalHeader.putAll(commonHeaders);
+        finalHeader.putAll(getHeaders());
         finalHeader.putAll(extraHeaders);
 
         RequestDetailsWrapper<WorkflowRequestDetail> requestDetailsWrapper = new RequestDetailsWrapper<>(workflowRequestDetail);
@@ -462,23 +472,36 @@ public class MsoRestClientNew extends RestMsoImplementation implements MsoInterf
     @Override
     public <T> HttpResponse<T> get(String endpoint, Class<T> responseClass) {
         String path = baseUrl + endpoint;
-        return client.get(path, commonHeaders, new HashMap<>(), responseClass);
+        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, commonHeaders, requestDetailsWrapper, responseClass);
+        return client.post(path, getHeaders(), requestDetailsWrapper, responseClass);
+    }
+
+    @Override
+    public <T> HttpResponse<T> post(String endpoint, RequestDetails requestDetails, Class<T> responseClass) {
+        String path = baseUrl + endpoint;
+
+        return client.post(path, getHeaders(), requestDetails, responseClass);
     }
 
 
-    private MsoResponseWrapper createInstance(Object request, String path) {
+    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(methodName + START);
 
         try {
-            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.error(EELFLoggerDelegate.errorLogger, "." + methodName + e.toString());
@@ -502,7 +525,7 @@ public class MsoRestClientNew extends RestMsoImplementation implements MsoInterf
         try {
             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, methodName + " w=" + w.getResponse());
@@ -516,9 +539,18 @@ public class MsoRestClientNew extends RestMsoImplementation implements MsoInterf
 
     }
 
+    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;
@@ -530,8 +562,8 @@ public class MsoRestClientNew extends RestMsoImplementation implements MsoInterf
         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(X_ONAP_PARTNER_NAME, "VID");
         return ImmutableMap.copyOf(map);
     }