Merge "Fixed Sonar issues in the onap.clamp.clds.client packages"
[clamp.git] / src / main / java / org / onap / clamp / clds / client / DcaeDispatcherServices.java
index 4151c7a..f7aff0e 100644 (file)
@@ -5,6 +5,8 @@
  * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights\r
  *                             reserved.\r
  * ================================================================================\r
+ * Modifications Copyright (c) 2019 Samsung\r
+ * ================================================================================\r
  * Licensed under the Apache License, Version 2.0 (the "License");\r
  * you may not use this file except in compliance with the License.\r
  * You may obtain a copy of the License at\r
@@ -25,9 +27,8 @@ package org.onap.clamp.clds.client;
 \r
 import com.att.eelf.configuration.EELFLogger;\r
 import com.att.eelf.configuration.EELFManager;\r
-import com.fasterxml.jackson.databind.JsonNode;\r
-import com.fasterxml.jackson.databind.node.ObjectNode;\r
 \r
+import com.google.gson.JsonObject;\r
 import java.io.IOException;\r
 import java.util.Date;\r
 \r
@@ -37,6 +38,7 @@ import org.json.simple.parser.ParseException;
 import org.onap.clamp.clds.config.ClampProperties;\r
 import org.onap.clamp.clds.exception.dcae.DcaeDeploymentException;\r
 import org.onap.clamp.clds.util.LoggingUtils;\r
+import org.onap.clamp.util.HttpConnectionManager;\r
 import org.springframework.beans.factory.annotation.Autowired;\r
 import org.springframework.stereotype.Component;\r
 \r
@@ -50,20 +52,26 @@ public class DcaeDispatcherServices {
     protected static final EELFLogger logger = EELFManager.getInstance().getLogger(DcaeDispatcherServices.class);\r
     protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();\r
     private final ClampProperties refProp;\r
-    private final DcaeHttpConnectionManager dcaeHttpConnectionManager;\r
+    private final HttpConnectionManager dcaeHttpConnectionManager;\r
     private static final String STATUS_URL_LOG = "Status URL extracted: ";\r
     private static final String DCAE_URL_PREFIX = "/dcae-deployments/";\r
     private static final String DCAE_URL_PROPERTY_NAME = "dcae.dispatcher.url";\r
-    public static final String DCAE_REQUESTID_PROPERTY_NAME = "dcae.header.requestId";\r
     private static final String DCAE_LINK_FIELD = "links";\r
     private static final String DCAE_STATUS_FIELD = "status";\r
 \r
     @Autowired\r
-    public DcaeDispatcherServices(ClampProperties refProp, DcaeHttpConnectionManager dcaeHttpConnectionManager) {\r
+    public DcaeDispatcherServices(ClampProperties refProp, HttpConnectionManager dcaeHttpConnectionManager) {\r
         this.refProp = refProp;\r
         this.dcaeHttpConnectionManager = dcaeHttpConnectionManager;\r
     }\r
 \r
+    /**\r
+     * Get the Operation Status from a specified URL with retry.\r
+     * @param operationStatusUrl\r
+     *        The URL of the DCAE\r
+     * @return The status\r
+     * @throws InterruptedException Exception during the retry\r
+     */\r
     public String getOperationStatusWithRetry(String operationStatusUrl) throws InterruptedException {\r
         String operationStatus = "";\r
         for (int i = 0; i < Integer.valueOf(refProp.getStringValue("dcae.dispatcher.retry.limit")); i++) {\r
@@ -82,7 +90,6 @@ public class DcaeDispatcherServices {
 \r
     /**\r
      * Get the Operation Status from a specified URL.\r
-     *\r
      * @param statusUrl\r
      *        The URL provided by a previous DCAE Query\r
      * @return The status\r
@@ -93,7 +100,9 @@ public class DcaeDispatcherServices {
         Date startTime = new Date();\r
         LoggingUtils.setTargetContext("DCAE", "getOperationStatus");\r
         try {\r
-            String responseStr = dcaeHttpConnectionManager.doDcaeHttpQuery(statusUrl, "GET", null, null);\r
+            String responseStr = dcaeHttpConnectionManager.doHttpRequest(statusUrl, "GET", null,\r
+                                                                         null, "DCAE", null,\r
+                                                                         null);\r
             JSONObject jsonObj = parseResponse(responseStr);\r
             String operationType = (String) jsonObj.get("operationType");\r
             String status = (String) jsonObj.get(DCAE_STATUS_FIELD);\r
@@ -113,7 +122,6 @@ public class DcaeDispatcherServices {
 \r
     /**\r
      * Returns status URL for createNewDeployment operation.\r
-     *\r
      * @param deploymentId\r
      *        The deployment ID\r
      * @param serviceTypeId\r
@@ -122,16 +130,16 @@ public class DcaeDispatcherServices {
      *        The value for each blueprint parameters in a flat JSON\r
      * @return The status URL\r
      */\r
-    public String createNewDeployment(String deploymentId, String serviceTypeId, JsonNode blueprintInputJson) {\r
+    public String createNewDeployment(String deploymentId, String serviceTypeId, JsonObject blueprintInputJson) {\r
         Date startTime = new Date();\r
         LoggingUtils.setTargetContext("DCAE", "createNewDeployment");\r
         try {\r
-            ObjectNode rootNode = (ObjectNode) refProp.getJsonTemplate("dcae.deployment.template");\r
-            rootNode.put("serviceTypeId", serviceTypeId);\r
+            JsonObject rootObject = refProp.getJsonTemplate("dcae.deployment.template").getAsJsonObject();\r
+            rootObject.addProperty("serviceTypeId", serviceTypeId);\r
             if (blueprintInputJson != null) {\r
-                rootNode.set("inputs", blueprintInputJson);\r
+                rootObject.add("inputs", blueprintInputJson);\r
             }\r
-            String apiBodyString = rootNode.toString();\r
+            String apiBodyString = rootObject.toString();\r
             logger.info("Dcae api Body String - " + apiBodyString);\r
             String url = refProp.getStringValue(DCAE_URL_PROPERTY_NAME) + DCAE_URL_PREFIX + deploymentId;\r
             String statusUrl = getDcaeResponse(url, "PUT", apiBodyString, "application/json", DCAE_LINK_FIELD,\r
@@ -186,7 +194,7 @@ public class DcaeDispatcherServices {
         String nodeAttr) throws IOException, ParseException {\r
         Date startTime = new Date();\r
         try {\r
-            String responseStr = dcaeHttpConnectionManager.doDcaeHttpQuery(url, requestMethod, payload, contentType);\r
+            String responseStr = dcaeHttpConnectionManager.doHttpRequest(url, requestMethod, payload, contentType, "DCAE", null, null);\r
             JSONObject jsonObj = parseResponse(responseStr);\r
             JSONObject linksObj = (JSONObject) jsonObj.get(node);\r
             String statusUrl = (String) linksObj.get(nodeAttr);\r