MsoRestClientNew not extends RestMsoImplementation
[vid.git] / vid-app-common / src / main / java / org / onap / vid / mso / rest / MsoRestClientNew.java
index 64182e0..6d7f74f 100644 (file)
@@ -20,6 +20,9 @@
  */
 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;
@@ -35,7 +38,7 @@ 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.util.HttpsAuthClient;
+import org.onap.vid.aai.HttpResponseWithRequestInfo;
 import org.onap.vid.changeManagement.MsoRequestDetails;
 import org.onap.vid.changeManagement.RequestDetailsWrapper;
 import org.onap.vid.changeManagement.WorkflowRequestDetail;
@@ -47,36 +50,37 @@ 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.RestMsoImplementation;
 import org.onap.vid.mso.RestObject;
 import org.onap.vid.utils.Logging;
 import org.onap.vid.utils.SystemPropertiesWrapper;
+import org.springframework.http.HttpMethod;
 
 
 /**
  * Created by pickjonathan on 21/06/2017.
  */
-public class MsoRestClientNew extends RestMsoImplementation implements MsoInterface {
+public class MsoRestClientNew implements MsoInterface {
 
     /**
      * 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;
     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, HttpsAuthClient authClient, SystemPropertiesWrapper systemPropertiesWrapper) {
-        super(authClient,systemPropertiesWrapper);
+    public MsoRestClientNew(SyncRestClient client, String baseUrl, SystemPropertiesWrapper systemPropertiesWrapper) {
         this.client = client;
         this.baseUrl = baseUrl;
+        this.systemProperties = systemPropertiesWrapper;
         this.commonHeaders = initCommonHeaders();
     }
 
@@ -175,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);
     }
 
@@ -216,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);
     }
 
@@ -239,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());
@@ -259,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());
@@ -300,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());
@@ -318,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());
@@ -330,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) {
@@ -343,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) {
@@ -384,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());
@@ -404,7 +408,7 @@ public class MsoRestClientNew extends RestMsoImplementation implements MsoInterf
         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;
@@ -424,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());
@@ -442,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());
@@ -456,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);
@@ -468,36 +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, commonHeaders, requestDetails, responseClass);
+        return client.post(path, getHeaders(), requestDetails, responseClass);
     }
 
 
     public HttpResponse<SOWorkflowList> getWorkflowListByModelId(String endpoint){
         String path = baseUrl + endpoint;
 
-        return client.get(path, commonHeaders, Maps.newHashMap(), SOWorkflowList.class);
+        return client.get(path, getHeaders(), Maps.newHashMap(), SOWorkflowList.class);
     }
 
-    private MsoResponseWrapper createInstance(Object request, String path) {
+    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());
@@ -521,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());
@@ -535,6 +539,15 @@ 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);
@@ -550,8 +563,7 @@ public class MsoRestClientNew extends RestMsoImplementation implements MsoInterf
         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_ONAP_PARTNER_NAME, "VID");
+        map.put(PARTNER_NAME.getHeaderName(), PARTNER_NAME.getHeaderValue());
         return ImmutableMap.copyOf(map);
     }