Merge "Fix sonar issues in mso-openstack-adapters"
[so.git] / adapters / mso-openstack-adapters / src / main / java / org / onap / so / adapters / vnf / MsoVnfCloudifyAdapterImpl.java
index 98cfa9d..96e5db7 100644 (file)
@@ -176,10 +176,6 @@ public class MsoVnfCloudifyAdapterImpl implements MsoVnfAdapter {
             Holder<Map<String, String>> outputs) throws VnfException {
         logger.debug("Querying VNF {} in {}", vnfName, cloudSiteId + "/" + tenantId);
 
-        // Will capture execution time for metrics
-        long startTime = System.currentTimeMillis();
-        long subStartTime = System.currentTimeMillis();
-
         DeploymentInfo deployment = null;
 
         try {
@@ -190,6 +186,7 @@ public class MsoVnfCloudifyAdapterImpl implements MsoVnfAdapter {
             deployment = null;
         } catch (MsoException me) {
             // Failed to query the Deployment due to a cloudify exception.
+            logger.debug("Failed to query the Deployment due to a cloudify exception");
             // Convert to a generic VnfException
             me.addContext("QueryVNF");
             String error = "Query VNF (Cloudify): " + vnfName + " in " + cloudOwner + "/" + cloudSiteId + "/" + tenantId
@@ -215,7 +212,6 @@ public class MsoVnfCloudifyAdapterImpl implements MsoVnfAdapter {
 
             logger.debug("VNF {} not found", vnfName);
         }
-        return;
     }
 
 
@@ -241,7 +237,6 @@ public class MsoVnfCloudifyAdapterImpl implements MsoVnfAdapter {
      */
     @Override
     public void rollbackVnf(VnfRollback rollback) throws VnfException {
-        long startTime = System.currentTimeMillis();
         // rollback may be null (e.g. if stack already existed when Create was called)
         if (rollback == null) {
             logger.info(LoggingAnchor.THREE, MessageEnum.RA_ROLLBACK_NULL.toString(), OPENSTACK, "rollbackVnf");
@@ -267,7 +262,6 @@ public class MsoVnfCloudifyAdapterImpl implements MsoVnfAdapter {
         // The possible outcomes of deleteStack are a StackInfo object with status
         // of NOTFOUND (on success) or FAILED (on error). Also, MsoOpenstackException
         // could be thrown.
-        long subStartTime = System.currentTimeMillis();
         try {
             // KLUDGE - Cloudify requires Tenant Name for Openstack. We have the ID.
             // Go directly to Keystone until APIs could be updated to supply the name.
@@ -290,7 +284,6 @@ public class MsoVnfCloudifyAdapterImpl implements MsoVnfAdapter {
             logger.debug(error);
             throw new VnfException(me);
         }
-        return;
     }
 
 
@@ -318,37 +311,38 @@ public class MsoVnfCloudifyAdapterImpl implements MsoVnfAdapter {
     }
 
     private Map<String, String> copyStringOutputs(Map<String, Object> stackOutputs) {
-        Map<String, String> stringOutputs = new HashMap<String, String>();
-        for (String key : stackOutputs.keySet()) {
-            if (stackOutputs.get(key) instanceof String) {
-                stringOutputs.put(key, (String) stackOutputs.get(key));
-            } else if (stackOutputs.get(key) instanceof Integer) {
+        Map<String, String> stringOutputs = new HashMap<>();
+        for (Map.Entry<String, Object> entry : stackOutputs.entrySet()) {
+            if (entry.getValue() instanceof String) {
+                stringOutputs.put(entry.getKey(), (String) entry.getValue());
+            } else if (entry.getValue() instanceof Integer) {
                 try {
-                    String str = "" + stackOutputs.get(key);
-                    stringOutputs.put(key, str);
+                    String str = "" + entry.getValue();
+                    stringOutputs.put(entry.getKey(), str);
                 } catch (Exception e) {
-                    logger.debug("Unable to add " + key + " to outputs");
+                    logger.error("Unable to add " + entry.getKey() + " to outputs", e);
                 }
-            } else if (stackOutputs.get(key) instanceof JsonNode) {
+            } else if (entry.getValue() instanceof JsonNode) {
                 try {
-                    String str = this.convertNode((JsonNode) stackOutputs.get(key));
-                    stringOutputs.put(key, str);
+                    String str = this.convertNode((JsonNode) entry.getValue());
+                    stringOutputs.put(entry.getKey(), str);
                 } catch (Exception e) {
-                    logger.debug("Unable to add " + key + " to outputs - exception converting JsonNode");
+                    logger.error("Unable to add " + entry.getKey() + " to outputs - exception converting JsonNode", e);
                 }
-            } else if (stackOutputs.get(key) instanceof java.util.LinkedHashMap) {
+            } else if (entry.getValue() instanceof java.util.LinkedHashMap) {
                 try {
-                    String str = JSON_MAPPER.writeValueAsString(stackOutputs.get(key));
-                    stringOutputs.put(key, str);
+                    String str = JSON_MAPPER.writeValueAsString(entry.getValue());
+                    stringOutputs.put(entry.getKey(), str);
                 } catch (Exception e) {
-                    logger.debug("Unable to add " + key + " to outputs - exception converting LinkedHashMap");
+                    logger.error("Unable to add " + entry.getKey() + " to outputs - exception converting LinkedHashMap",
+                            e);
                 }
             } else {
                 try {
-                    String str = stackOutputs.get(key).toString();
-                    stringOutputs.put(key, str);
+                    String str = entry.getValue().toString();
+                    stringOutputs.put(entry.getKey(), str);
                 } catch (Exception e) {
-                    logger.debug("Unable to add " + key + " to outputs - unable to call .toString() " + e.getMessage());
+                    logger.error("Unable to add " + entry.getKey() + " to outputs - unable to call .toString() ", e);
                 }
             }
         }
@@ -364,18 +358,17 @@ public class MsoVnfCloudifyAdapterImpl implements MsoVnfAdapter {
         } else if (inputs.size() < 1) {
             sb.append("\tEMPTY");
         } else {
-            for (String str : inputs.keySet()) {
+            for (Map.Entry<String, Object> entry : inputs.entrySet()) {
                 String outputString;
                 try {
-                    outputString = inputs.get(str).toString();
+                    outputString = entry.getValue().toString();
                 } catch (Exception e) {
-                    outputString = "Unable to call toString() on the value for " + str;
+                    outputString = "Unable to call toString() on the value for " + entry.getKey();
                 }
-                sb.append("\t\nitem " + i++ + ": '" + str + "'='" + outputString + "'");
+                sb.append("\t\nitem " + i++ + ": '" + entry.getKey() + "'='" + outputString + "'");
             }
         }
         logger.debug(sb.toString());
-        return;
     }
 
     private void sendMapToDebug(Map<String, Object> inputs) {
@@ -386,12 +379,11 @@ public class MsoVnfCloudifyAdapterImpl implements MsoVnfAdapter {
         } else if (inputs.size() < 1) {
             sb.append("\tEMPTY");
         } else {
-            for (String str : inputs.keySet()) {
-                sb.append("\titem " + i++ + ": " + str + "=" + inputs.get(str));
+            for (Map.Entry<String, Object> entry : inputs.entrySet()) {
+                sb.append("\titem " + i++ + ": " + entry.getKey() + "=" + entry.getValue());
             }
         }
         logger.debug(sb.toString());
-        return;
     }
 
     private String convertNode(final JsonNode node) {
@@ -400,9 +392,9 @@ public class MsoVnfCloudifyAdapterImpl implements MsoVnfAdapter {
             final String json = JSON_MAPPER.writeValueAsString(obj);
             return json;
         } catch (JsonParseException jpe) {
-            logger.debug("Error converting json to string " + jpe.getMessage());
+            logger.error("Error converting json to string ", jpe);
         } catch (Exception e) {
-            logger.debug("Error converting json to string " + e.getMessage());
+            logger.error("Error converting json to string ", e);
         }
         return "[Error converting json to string]";
     }
@@ -411,44 +403,44 @@ public class MsoVnfCloudifyAdapterImpl implements MsoVnfAdapter {
         if (objectMap == null) {
             return null;
         }
-        Map<String, String> stringMap = new HashMap<String, String>();
-        for (String key : objectMap.keySet()) {
-            if (!stringMap.containsKey(key)) {
-                Object obj = objectMap.get(key);
+        Map<String, String> stringMap = new HashMap<>();
+        for (Map.Entry<String, Object> entry : objectMap.entrySet()) {
+            if (!stringMap.containsKey(entry.getKey())) {
+                Object obj = entry.getValue();
                 if (obj instanceof String) {
-                    stringMap.put(key, (String) objectMap.get(key));
+                    stringMap.put(entry.getKey(), (String) entry.getValue());
                 } else if (obj instanceof JsonNode) {
                     // This is a bit of mess - but I think it's the least impacting
                     // let's convert it BACK to a string - then it will get converted back later
                     try {
                         String str = this.convertNode((JsonNode) obj);
-                        stringMap.put(key, str);
+                        stringMap.put(entry.getKey(), str);
                     } catch (Exception e) {
-                        logger.debug("DANGER WILL ROBINSON: unable to convert value for JsonNode " + key);
+                        logger.error("DANGER WILL ROBINSON: unable to convert value for JsonNode " + entry.getKey(), e);
                         // okay in this instance - only string values (fqdn) are expected to be needed
                     }
                 } else if (obj instanceof java.util.LinkedHashMap) {
                     logger.debug("LinkedHashMap - this is showing up as a LinkedHashMap instead of JsonNode");
                     try {
                         String str = JSON_MAPPER.writeValueAsString(obj);
-                        stringMap.put(key, str);
+                        stringMap.put(entry.getKey(), str);
                     } catch (Exception e) {
-                        logger.debug("DANGER WILL ROBINSON: unable to convert value for LinkedHashMap " + key);
+                        logger.error(
+                                "DANGER WILL ROBINSON: unable to convert value for LinkedHashMap " + entry.getKey(), e);
                     }
                 } else if (obj instanceof Integer) {
                     try {
                         String str = "" + obj;
-                        stringMap.put(key, str);
+                        stringMap.put(entry.getKey(), str);
                     } catch (Exception e) {
-                        logger.debug("DANGER WILL ROBINSON: unable to convert value for Integer " + key);
+                        logger.error("DANGER WILL ROBINSON: unable to convert value for Integer " + entry.getKey(), e);
                     }
                 } else {
                     try {
                         String str = obj.toString();
-                        stringMap.put(key, str);
+                        stringMap.put(entry.getKey(), str);
                     } catch (Exception e) {
-                        logger.debug(
-                                "DANGER WILL ROBINSON: unable to convert value " + key + " (" + e.getMessage() + ")");
+                        logger.error("DANGER WILL ROBINSON: unable to convert value " + entry.getKey(), e);
                     }
                 }
             }
@@ -504,8 +496,6 @@ public class MsoVnfCloudifyAdapterImpl implements MsoVnfAdapter {
             String volumeGroupId, String baseVfModuleId, String modelCustomizationUuid, Map<String, Object> inputs,
             Boolean failIfExists, Boolean backout, Boolean enableBridge, MsoRequest msoRequest, Holder<String> vnfId,
             Holder<Map<String, String>> outputs, Holder<VnfRollback> rollback) throws VnfException {
-        // Will capture execution time for metrics
-        long startTime = System.currentTimeMillis();
 
         // Require a model customization ID. Every VF Module definition must have one.
         if (modelCustomizationUuid == null || modelCustomizationUuid.isEmpty()) {
@@ -587,7 +577,7 @@ public class MsoVnfCloudifyAdapterImpl implements MsoVnfAdapter {
             vnfResource = vfmc.getVfModule().getVnfResources();
         } catch (Exception e) {
 
-            logger.debug("unhandled exception in create VF - [Query]" + e.getMessage());
+            logger.error("unhandled exception in create VF - [Query]", e);
             throw new VnfException("Exception during create VF " + e.getMessage());
         }
 
@@ -622,7 +612,6 @@ public class MsoVnfCloudifyAdapterImpl implements MsoVnfAdapter {
 
         // First, look up to see if the VF already exists.
 
-        long subStartTime1 = System.currentTimeMillis();
         try {
             cloudifyDeployment = cloudifyUtils.queryDeployment(cloudSiteId, tenantId, vfModuleName);
         } catch (MsoException me) {
@@ -716,7 +705,6 @@ public class MsoVnfCloudifyAdapterImpl implements MsoVnfAdapter {
 
         // If a Volume Group was provided, query its outputs for inclusion in Module input parameters
         if (volumeGroupId != null) {
-            long subStartTime2 = System.currentTimeMillis();
             DeploymentInfo volumeDeployment = null;
             try {
                 volumeDeployment = cloudifyUtils.queryDeployment(cloudSiteId, tenantId, volumeGroupId);
@@ -765,7 +753,6 @@ public class MsoVnfCloudifyAdapterImpl implements MsoVnfAdapter {
             }
 
             if (baseVfModuleId != null) {
-                long subStartTime2 = System.currentTimeMillis();
                 DeploymentInfo baseDeployment = null;
                 try {
                     baseDeployment = cloudifyUtils.queryDeployment(cloudSiteId, tenantId, baseVfModuleId);
@@ -843,21 +830,21 @@ public class MsoVnfCloudifyAdapterImpl implements MsoVnfAdapter {
 
         try {
             // All variables converted to their native object types
-            HashMap<String, Object> goldenInputs = new HashMap<String, Object>();
-            List<String> extraInputs = new ArrayList<String>();
+            HashMap<String, Object> goldenInputs = new HashMap<>();
+            List<String> extraInputs = new ArrayList<>();
 
             // NOTE: SKIP THIS FOR CLOUDIFY for now. Just use what was passed in.
             // This whole section needs to be rewritten.
             Boolean skipInputChecks = false;
 
             if (skipInputChecks) {
-                goldenInputs = new HashMap<String, Object>();
-                for (String key : inputs.keySet()) {
-                    goldenInputs.put(key, inputs.get(key));
+                goldenInputs = new HashMap<>();
+                for (Map.Entry<String, Object> entry : inputs.entrySet()) {
+                    goldenInputs.put(entry.getKey(), entry.getValue());
                 }
             } else {
                 // Build maps for the parameters (including aliases) to simplify checks
-                HashMap<String, HeatTemplateParam> params = new HashMap<String, HeatTemplateParam>();
+                HashMap<String, HeatTemplateParam> params = new HashMap<>();
 
                 Set<HeatTemplateParam> paramSet = heatTemplate.getParameters();
                 logger.debug("paramSet has {} entries", paramSet.size());
@@ -893,18 +880,18 @@ public class MsoVnfCloudifyAdapterImpl implements MsoVnfAdapter {
 
                 // Next add in Volume Group Outputs if there are any. Copy directly without conversions.
                 if (volumeGroupOutputs != null && !volumeGroupOutputs.isEmpty()) {
-                    for (String key : volumeGroupOutputs.keySet()) {
-                        if (params.containsKey(key) && !goldenInputs.containsKey(key)) {
-                            goldenInputs.put(key, volumeGroupOutputs.get(key));
+                    for (Map.Entry<String, Object> entry : volumeGroupOutputs.entrySet()) {
+                        if (params.containsKey(entry.getKey()) && !goldenInputs.containsKey(entry.getKey())) {
+                            goldenInputs.put(entry.getKey(), entry.getValue());
                         }
                     }
                 }
 
                 // Next add in Base Module Outputs if there are any. Copy directly without conversions.
                 if (baseModuleOutputs != null && !baseModuleOutputs.isEmpty()) {
-                    for (String key : baseModuleOutputs.keySet()) {
-                        if (params.containsKey(key) && !goldenInputs.containsKey(key)) {
-                            goldenInputs.put(key, baseModuleOutputs.get(key));
+                    for (Map.Entry<String, Object> entry : baseModuleOutputs.entrySet()) {
+                        if (params.containsKey(entry.getKey()) && !goldenInputs.containsKey(entry.getKey())) {
+                            goldenInputs.put(entry.getKey(), entry.getValue());
                         }
                     }
                 }
@@ -948,7 +935,7 @@ public class MsoVnfCloudifyAdapterImpl implements MsoVnfAdapter {
                     }
                 } catch (Exception e) {
                     // No problem - default is true
-                    logger.debug("An exception occured trying to get property {}",
+                    logger.error("An exception occured trying to get property {}",
                             MsoVnfCloudifyAdapterImpl.CHECK_REQD_PARAMS, e);
                 }
 
@@ -996,7 +983,7 @@ public class MsoVnfCloudifyAdapterImpl implements MsoVnfAdapter {
                 if (!cloudifyUtils.isBlueprintLoaded(cloudSiteId, blueprintId)) {
                     logger.debug("Blueprint " + blueprintId + " is not loaded.  Will upload it now.");
 
-                    Map<String, byte[]> blueprintFiles = new HashMap<String, byte[]>();
+                    Map<String, byte[]> blueprintFiles = new HashMap<>();
 
                     blueprintFiles.put(blueprintName, blueprint.getBytes());
 
@@ -1039,7 +1026,6 @@ public class MsoVnfCloudifyAdapterImpl implements MsoVnfAdapter {
 
             // Ignore MsoTenantNotFound and MsoStackAlreadyExists exceptions
             // because we already checked for those.
-            long createDeploymentStarttime = System.currentTimeMillis();
             try {
                 // KLUDGE - Cloudify requires Tenant Name for Openstack. We have the ID.
                 // Go directly to Keystone until APIs could be updated to supply the name.
@@ -1073,11 +1059,11 @@ public class MsoVnfCloudifyAdapterImpl implements MsoVnfAdapter {
                 // npe.addContext ("CreateVNF");
                 throw new VnfException("NullPointerException during cloudify.createAndInstallDeployment");
             } catch (Exception e) {
-                logger.debug("unhandled exception at cloudify.createAndInstallDeployment");
+                logger.error("unhandled exception at cloudify.createAndInstallDeployment", e);
                 throw new VnfException("Exception during cloudify.createAndInstallDeployment! " + e.getMessage());
             }
         } catch (Exception e) {
-            logger.debug("unhandled exception in create VF");
+            logger.error("unhandled exception in create VF", e);
             throw new VnfException("Exception during create VF " + e.getMessage());
 
         }
@@ -1091,15 +1077,13 @@ public class MsoVnfCloudifyAdapterImpl implements MsoVnfAdapter {
 
         rollback.value = vfRollback;
 
-        logger.debug("VF Module successfully created", vfModuleName);
-        return;
+        logger.debug("VF Module successfully created {}", vfModuleName);
+
     }
 
     public void deleteVfModule(String cloudSiteId, String cloudOwner, String tenantId, String vnfName,
             MsoRequest msoRequest, Holder<Map<String, String>> outputs) throws VnfException {
         logger.debug("Deleting VF " + vnfName + " in " + cloudOwner + "/" + cloudSiteId + "/" + tenantId);
-        // Will capture execution time for metrics
-        long startTime = System.currentTimeMillis();
 
         // 1702 capture the output parameters on a delete
         // so we'll need to query first
@@ -1124,7 +1108,6 @@ public class MsoVnfCloudifyAdapterImpl implements MsoVnfAdapter {
         // The possible outcomes of deleteStack are a StackInfo object with status
         // of NOTFOUND (on success) or FAILED (on error). Also, MsoOpenstackException
         // could be thrown.
-        long subStartTime = System.currentTimeMillis();
         try {
             cloudifyUtils.uninstallAndDeleteDeployment(cloudSiteId, tenantId, vnfName, 5);
         } catch (MsoException me) {