Remove MsoLogger from 'mso-adapter-utils' 07/79207/1
authork.kazak <k.kazak@samsung.com>
Tue, 26 Feb 2019 16:50:51 +0000 (17:50 +0100)
committerk.kazak <k.kazak@samsung.com>
Tue, 26 Feb 2019 16:50:51 +0000 (17:50 +0100)
Removed MsoLogger from adapters ('mso-adapter-utils')
Replaced MsoLogger with plain slf4j
Refactored login output
Fixed imports

Change-Id: I5805427f3d6870a35f523934ceee73f17d4e130d
Issue-ID: LOG-631
Signed-off-by: k.kazak <k.kazak@samsung.com>
adapters/mso-adapter-utils/src/main/java/org/onap/so/cloudify/utils/MsoCloudifyUtils.java
adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MsoCommonUtils.java
adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MsoHeatEnvironmentEntry.java
adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MsoHeatEnvironmentResource.java
adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MsoHeatUtils.java
adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MsoHeatUtilsWithUpdate.java
adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MsoKeystoneUtils.java
adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MsoNeutronUtils.java
adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MsoTenantUtils.java
adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MsoTenantUtilsFactory.java
adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MsoYamlEditorWithEnvt.java

index 4479a7f..9212fbc 100644 (file)
@@ -6,6 +6,8 @@
  * ================================================================================
  * Copyright (C) 2018 Nokia.
  * ================================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ================================================================================
  * 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
@@ -84,7 +86,6 @@ import org.onap.so.db.catalog.beans.CloudSite;
 import org.onap.so.db.catalog.beans.CloudifyManager;
 import org.onap.so.db.catalog.beans.HeatTemplateParam;
 import org.onap.so.logger.MessageEnum;
-
 import org.onap.so.logger.MsoLogger;
 import org.onap.so.openstack.exceptions.MsoAdapterException;
 import org.onap.so.openstack.exceptions.MsoCloudSiteNotFound;
@@ -94,13 +95,15 @@ import org.onap.so.openstack.exceptions.MsoIOException;
 import org.onap.so.openstack.exceptions.MsoOpenstackException;
 import org.onap.so.openstack.utils.MsoCommonUtils;
 import org.onap.so.utils.CryptoUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.env.Environment;
 import org.springframework.stereotype.Component;
 
 @Component
 public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
-       
+
     private static final String CLOUDIFY_ERROR = "CloudifyError";
     private static final String CLOUDIFY = "Cloudify";
     private static final String CREATE_DEPLOYMENT = "CreateDeployment";
@@ -111,14 +114,14 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
     // Fetch cloud configuration each time (may be cached in CloudConfig class)
     @Autowired
     protected CloudConfig cloudConfig;
-    
+
     @Autowired
     private Environment environment;
-    
+
     @Autowired
     private PoConfig poConfig;
 
-    private static final MsoLogger LOGGER = MsoLogger.getMsoLogger (MsoLogger.Catalog.RA, MsoCloudifyUtils.class);
+    private static final Logger logger = LoggerFactory.getLogger(MsoCloudifyUtils.class);
 
     // Properties names and variables (with default values)
     protected String createPollIntervalProp = "org.onap.so.adapters.po.pollInterval";
@@ -126,7 +129,7 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
 
     protected String createPollIntervalDefault = "15";
     private String deletePollIntervalDefault = "15";
-    
+
     private static final ObjectMapper JSON_MAPPER = new ObjectMapper();
 
     /**
@@ -134,7 +137,7 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
      * cloud location and tenant. The blueprint identifier and parameter map are passed in
      * as arguments, along with the cloud access credentials.  The blueprint should have been
      * previously uploaded to Cloudify.
-     * 
+     *
      * It is expected that parameters have been validated and contain at minimum the required
      * parameters for the given template with no extra (undefined) parameters..
      *
@@ -176,17 +179,17 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
         if (!cloudSite.isPresent()) {
             throw new MsoCloudSiteNotFound (cloudSiteId);
         }
-        
+
         Cloudify cloudify = getCloudifyClient (cloudSite.get());
 
-        LOGGER.debug ("Ready to Create Deployment (" + deploymentId + ") with input params: " + inputs);
+        logger.debug("Ready to Create Deployment ({}) with input params: {}", deploymentId, inputs);
 
         // Build up the inputs, including:
         // - from provided "environment" file
         // - passed in by caller
         // - special input for cloud-specific Credentials
         Map<String,Object> expandedInputs = new HashMap<> (inputs);
-        
+
         String platform = cloudSite.get().getPlatform();
         if (platform == null || platform.equals("") || platform.equalsIgnoreCase("OPENSTACK")) {
                // Create the Cloudify OpenstackConfig with the credentials
@@ -197,7 +200,7 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
                AzureConfig azureConfig = getAzureConfig (cloudSite.get(), tenantId);
                expandedInputs.put("azure_config",  azureConfig);
         }
-         
+
         // Build up the parameters to create a new deployment
        CreateDeploymentParams deploymentParams = new CreateDeploymentParams();
        deploymentParams.setBlueprintId(blueprintId);
@@ -206,8 +209,8 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
        Deployment deployment = null;
        try {
                CreateDeployment createDeploymentRequest = cloudify.deployments().create(deploymentId, deploymentParams);
-               LOGGER.debug (createDeploymentRequest.toString());
-               
+          logger.debug(createDeploymentRequest.toString());
+
                deployment = executeAndRecordCloudifyRequest (createDeploymentRequest);
        }
        catch (CloudifyResponseException e) {
@@ -220,7 +223,7 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
                 throw me;
             } else {
                 // Convert the CloudifyResponseException to an MsoException
-               LOGGER.debug("ERROR STATUS = " + e.getStatus() + ",\n" + e.getMessage() + "\n" + e.getLocalizedMessage());
+                logger.debug("ERROR STATUS = {},\n{}\n{}", e.getStatus(), e.getMessage(), e.getLocalizedMessage());
                 MsoException me = cloudifyExceptionToMsoException (e, CREATE_DEPLOYMENT);
                 me.setCategory (MsoExceptionCategory.OPENSTACK);
                 throw me;
@@ -246,9 +249,9 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
         */
         int createPollInterval = Integer.parseInt(this.environment.getProperty(createPollIntervalProp, createPollIntervalDefault));
         int pollTimeout = (timeoutMinutes * 60) + createPollInterval;
-        
+
         Execution installWorkflow = null;
-        
+
         try {
                installWorkflow = executeWorkflow (cloudify, deploymentId, "install", null, pollForCompletion, pollTimeout, createPollInterval);
 
@@ -267,17 +270,19 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
                        // The workflow completed with errors.  Must try to back it out.
                if (!backout)
                {
-                       LOGGER.warn(MessageEnum.RA_CREATE_STACK_ERR, "Deployment installation failed, backout deletion suppressed", "", "", MsoLogger.ErrorCode.BusinessProcesssError, "Exception in Deployment Installation, backout suppressed");
-               }       
+                  logger.warn("{} Deployment installation failed, backout deletion suppressed {} {}",
+                      MessageEnum.RA_CREATE_STACK_ERR, MsoLogger.ErrorCode.BusinessProcesssError.getValue(),
+                      "Exception in Deployment Installation, backout suppressed");
+              }
                else {
                        // Poll on delete if we rollback - use same values for now
                    int deletePollInterval = createPollInterval;
                    int deletePollTimeout = pollTimeout;
-       
+
                    try {
                        // Run the uninstall to undo the install
                        Execution uninstallWorkflow = executeWorkflow (cloudify, deploymentId, "uninstall", null, pollForCompletion, deletePollTimeout, deletePollInterval);
-                       
+
                        if (uninstallWorkflow.getStatus().equals(TERMINATED))
                        {
                                //  The uninstall completed.  Delete the deployment itself
@@ -286,16 +291,19 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
                        }
                        else {
                                // Didn't uninstall successfully.  Log this error
-                                               LOGGER.error (MessageEnum.RA_CREATE_STACK_ERR, "Create Deployment: Cloudify error rolling back deployment install: " + installWorkflow.getError(), "", "", MsoLogger.ErrorCode.BusinessProcesssError, "Create Stack: Cloudify error rolling back deployment installation");
-                       }
+                        logger.error("{} Create Deployment: Cloudify error rolling back deployment install: {} {}",
+                            MessageEnum.RA_CREATE_STACK_ERR, installWorkflow.getError(),
+                            MsoLogger.ErrorCode.BusinessProcesssError.getValue());
+                    }
                    }
                    catch (Exception e) {
                        // Catch-all for backout errors trying to uninstall/delete
                        // Log this error, and return the original exception
-                                       LOGGER.error (MessageEnum.RA_CREATE_STACK_ERR, "Create Stack: Nested exception rolling back deployment install: " + e, "", "", MsoLogger.ErrorCode.BusinessProcesssError, "Create Stack: Nested exception rolling back deployment installation");
-                   }
+                      logger.error("{} Create Stack: Nested exception rolling back deployment install: {}",
+                          MessageEnum.RA_CREATE_STACK_ERR, MsoLogger.ErrorCode.BusinessProcesssError.getValue(), e);
+                  }
                }
-                   
+
                MsoCloudifyException me = new MsoCloudifyException (0, "Workflow Execution Failed", installWorkflow.getError());
                 me.addContext (CREATE_DEPLOYMENT);
 
@@ -307,18 +315,19 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
                
                if (!backout)
                {
-                       LOGGER.warn(MessageEnum.RA_CREATE_STACK_ERR, "Deployment installation failed, backout deletion suppressed", "", "", MsoLogger.ErrorCode.BusinessProcesssError, "Exception in Deployment Installation, backout suppressed");
-               }       
+              logger.warn("{} Deployment installation failed, backout deletion suppressed {}",
+                  MessageEnum.RA_CREATE_STACK_ERR, MsoLogger.ErrorCode.BusinessProcesssError.getValue());
+          }
                else {
                        // Poll on delete if we rollback - use same values for now
                    int deletePollInterval = createPollInterval;
                    int deletePollTimeout = pollTimeout;
-       
+
                    try {
                        // Run the uninstall to undo the install.
                        // Always try to run it, as it should be idempotent
                        executeWorkflow (cloudify, deploymentId, "uninstall", null, pollForCompletion, deletePollTimeout, deletePollInterval);
-                       
+
                        // Delete the deployment itself
                        DeleteDeployment deleteRequest = cloudify.deployments().deleteByName(deploymentId);
                        executeAndRecordCloudifyRequest (deleteRequest);
@@ -326,9 +335,9 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
                    catch (Exception e) {
                        // Catch-all for backout errors trying to uninstall/delete
                        // Log this error, and return the original exception
-                                       LOGGER.error (MessageEnum.RA_CREATE_STACK_ERR, "Create Stack: Nested exception rolling back deployment install: " + e, "", "", MsoLogger.ErrorCode.BusinessProcesssError, "Create Stack: Nested exception rolling back deployment installation");
-                       
-                   }
+                  logger.error("{} Create Stack: Nested exception rolling back deployment install: {} ",
+                      MessageEnum.RA_CREATE_STACK_ERR, MsoLogger.ErrorCode.BusinessProcesssError.getValue(), e);
+              }
                }
 
             // Propagate the original exception from Stack Query.
@@ -350,14 +359,15 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
                DeploymentOutputs deploymentOutputs = null;
        try {
                GetDeploymentOutputs queryDeploymentOutputs = cloudify.deployments().outputsById(deploymentId);
-               LOGGER.debug (queryDeploymentOutputs.toString());
-               
+          logger.debug(queryDeploymentOutputs.toString());
+
                deploymentOutputs = executeAndRecordCloudifyRequest(queryDeploymentOutputs);
        }
        catch (CloudifyConnectException ce) {
                // Couldn't connect to Cloudify
-               LOGGER.error (MessageEnum.RA_CREATE_STACK_ERR, "QueryDeploymentOutputs: Cloudify connection failure: " + ce, "", "", MsoLogger.ErrorCode.BusinessProcesssError, "QueryDeploymentOutputs: Cloudify connection failure");
-               throw new MsoIOException (ce.getMessage(), ce);
+          logger.error("{} QueryDeploymentOutputs: Cloudify connection failure: {} ",
+              MessageEnum.RA_CREATE_STACK_ERR, MsoLogger.ErrorCode.BusinessProcesssError.getValue(), ce);
+          throw new MsoIOException (ce.getMessage(), ce);
        }
        catch (CloudifyResponseException re) {
             if (re.getStatus () == 404) {
@@ -370,10 +380,10 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
                // Catch-all
                throw new MsoAdapterException (e.getMessage(), e);
        }
-       
+
        return deploymentOutputs;
     }
-    
+
     /*
      * Execute a workflow on a deployment.  Handle polling for completion with timeout.
      * Return the final Execution object with status.
@@ -383,22 +393,22 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
     private Execution executeWorkflow (Cloudify cloudify, String deploymentId, String workflowId, Map<String,Object> workflowParams, boolean pollForCompletion, int timeout, int pollInterval)
        throws MsoCloudifyException
     {
-       LOGGER.debug("Executing '" + workflowId + "' workflow on deployment '" + deploymentId + "'");
+        logger.debug("Executing '{}' workflow on deployment '{}'", workflowId, deploymentId);
 
                StartExecutionParams executeParams = new StartExecutionParams();
                executeParams.setWorkflowId(workflowId);
                executeParams.setDeploymentId(deploymentId);
                executeParams.setParameters(workflowParams);
-               
+
                Execution execution = null;
                String executionId = null;
                String command = "start";
                Exception savedException = null;
-               
+
                try {
                        StartExecution executionRequest = cloudify.executions().start(executeParams);
-                       LOGGER.debug (executionRequest.toString());
-               execution = executeAndRecordCloudifyRequest (executionRequest);
+        logger.debug(executionRequest.toString());
+        execution = executeAndRecordCloudifyRequest (executionRequest);
                        executionId = execution.getId();
 
                        if (!pollForCompletion) {
@@ -409,27 +419,28 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
                        // Enter polling loop
                        boolean timedOut = false;
                        int pollTimeout = timeout;
-                       
+
                        String status = execution.getStatus();
-                       
+
                        // Create a reusable cloudify query request
                        GetExecution queryExecution = cloudify.executions().byId(executionId);
                        command = "query";
-                       
+
                        while (!timedOut && !(status.equals(TERMINATED) || status.equals("failed") || status.equals(CANCELLED)))
                        {
                                // workflow is still running; check for timeout
                                if (pollTimeout <= 0) {
-                                       LOGGER.debug ("workflow " + execution.getWorkflowId() + " timed out on deployment " + execution.getDeploymentId());                    
-                                       timedOut = true;
+            logger.debug("workflow {} timed out on deployment {}", execution.getWorkflowId(),
+                execution.getDeploymentId());
+            timedOut = true;
                                        continue;
                                }
-                               
+
                                sleep(pollInterval * 1000L);
 
                                pollTimeout -= pollInterval;
-                               LOGGER.debug("pollTimeout remaining: " + pollTimeout);
-                               
+          logger.debug("pollTimeout remaining: " + pollTimeout);
+
                                execution = queryExecution.execute();
                                status = execution.getStatus();
                        }
@@ -437,105 +448,112 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
                        // Broke the loop.  Check again for a terminal state
                        if (status.equals(TERMINATED)){
                                // Success!
-                       LOGGER.debug ("Workflow '" + workflowId + "' completed successfully on deployment '" + deploymentId + "'");
-                               return execution;
+          logger.debug("Workflow '{}' completed successfully on deployment '{}'", workflowId, deploymentId);
+          return execution;
                        }
                        else if (status.equals("failed")){
                                // Workflow failed.  Log it and return the execution object (don't throw exception here)
-                       LOGGER.error (MessageEnum.RA_CREATE_STACK_ERR, "Cloudify workflow failure: " + execution.getError(), "", "", MsoLogger.ErrorCode.BusinessProcesssError, "Execute Workflow: Failed: " + execution.getError());
-                       return execution;
+          logger.error("{} Cloudify workflow failure: {} {} Execute Workflow: Failed: {}",
+              MessageEnum.RA_CREATE_STACK_ERR, execution.getError(),
+              MsoLogger.ErrorCode.BusinessProcesssError.getValue(), execution.getError());
+          return execution;
                        }
                        else if (status.equals(CANCELLED)){
                                // Workflow was cancelled, leaving the deployment in an indeterminate state.  Log it and return the execution object (don't throw exception here)
-                       LOGGER.error (MessageEnum.RA_CREATE_STACK_ERR, "Cloudify workflow cancelled.  Deployment is in an indeterminate state", "", "", MsoLogger.ErrorCode.BusinessProcesssError, "Execute Workflow cancelled: " + workflowId);
-                       return execution;
+          logger.error("{} Cloudify workflow cancelled. Deployment is in an indeterminate state {} {} {}",
+              MessageEnum.RA_CREATE_STACK_ERR, MsoLogger.ErrorCode.BusinessProcesssError.getValue(),
+              "Execute Workflow cancelled: ", workflowId);
+          return execution;
                        }
                        else {
                                // Can only get here after a timeout
-                       LOGGER.error (MessageEnum.RA_CREATE_STACK_ERR, "Cloudify workflow timeout", "", "", MsoLogger.ErrorCode.BusinessProcesssError, "Execute Workflow: Timed Out");
-                       }
+          logger.error("{} Cloudify workflow timeout {} Execute Workflow: Timed Out", MessageEnum.RA_CREATE_STACK_ERR,
+              MsoLogger.ErrorCode.BusinessProcesssError.getValue());
+      }
                }
                catch (CloudifyConnectException ce) {
-               LOGGER.error (MessageEnum.RA_CREATE_STACK_ERR, "Execute Workflow (" + command + "): Cloudify connection failure: " + ce, "", "", MsoLogger.ErrorCode.BusinessProcesssError, "Execute Workflow (" + command + "): Cloudify connection failure");
-               savedException = ce;
+        logger.error("{} {} Execute Workflow ({} {}): Cloudify connection failure {} ", MessageEnum.RA_CREATE_STACK_ERR,
+            MsoLogger.ErrorCode.BusinessProcesssError.getValue(), command, ce);
+        savedException = ce;
                }
                catch (CloudifyResponseException re) {
-               LOGGER.error (MessageEnum.RA_CREATE_STACK_ERR, "Execute Workflow (" + command + "): Cloudify response error: " + re, "", "", MsoLogger.ErrorCode.BusinessProcesssError, "Execute Workflow (" + command + "): Cloudify error" + re.getMessage());
-               savedException = re;
+        logger.error("{} {} Execute Workflow ({}): Cloudify response error {} ", MessageEnum.RA_CREATE_STACK_ERR,
+            MsoLogger.ErrorCode.BusinessProcesssError.getValue(), command, re.getMessage(), re);
+        savedException = re;
                }
                catch (RuntimeException e) {
                        // Catch-all
-               LOGGER.error (MessageEnum.RA_CREATE_STACK_ERR, "Execute Workflow (" + command + "): Unexpected error: " + e, "", "", MsoLogger.ErrorCode.BusinessProcesssError, "Execute Workflow (" + command + "): Internal error" + e.getMessage());
-               savedException = e;
+        logger.error("{} {} Execute Workflow ({}): Internal error {}", MessageEnum.RA_CREATE_STACK_ERR,
+            MsoLogger.ErrorCode.BusinessProcesssError.getValue(), command, e.getMessage(), e);
+        savedException = e;
                }
-               
+
                //  Get to this point ONLY on an error or timeout
                //  The cloudify execution is still running (we've not received a terminal status),
                //  so try to Cancel it.
                CancelExecutionParams cancelParams = new CancelExecutionParams();
                cancelParams.setAction("cancel");
                // TODO:  Use force_cancel?
-               
+
                Execution cancelExecution = null;
-               
+
                try {
                        CancelExecution cancelRequest = cloudify.executions().cancel(executionId, cancelParams);
-                       LOGGER.debug (cancelRequest.toString());
-                       cancelExecution = cancelRequest.execute();
+        logger.debug(cancelRequest.toString());
+        cancelExecution = cancelRequest.execute();
 
                        // Enter polling loop
                        boolean timedOut = false;
                        int cancelTimeout = timeout;    // TODO: For now, just use same timeout
-                       
+
                        String status = cancelExecution.getStatus();
-                       
+
                        // Poll for completion.  Create a reusable cloudify query request
                        GetExecution queryExecution = cloudify.executions().byId(executionId);
-                       
+
                        while (!timedOut && !status.equals(CANCELLED))
                        {
                                // workflow is still running; check for timeout
                                if (cancelTimeout <= 0) {
-                                       LOGGER.debug ("Cancel timeout for workflow " + workflowId + " on deployment " + deploymentId);                    
-                                       timedOut = true;
+            logger.debug("Cancel timeout for workflow {} on deployment {}", workflowId, deploymentId);
+            timedOut = true;
                                        continue;
                                }
-                               
+
                                sleep(pollInterval * 1000L);
 
                                cancelTimeout -= pollInterval;
-                               LOGGER.debug("pollTimeout remaining: " + cancelTimeout);
-                               
-                               execution = queryExecution.execute();
+          logger.debug("pollTimeout remaining: {}", cancelTimeout);
+
+          execution = queryExecution.execute();
                                status = execution.getStatus();
                        }
 
                        // Broke the loop.  Check again for a terminal state
                        if (status.equals(CANCELLED)){
                                // Finished cancelling.  Return the original exception
-                               LOGGER.debug ("Cancel workflow " + workflowId + " completed on deployment " + deploymentId);                    
-                               throw new MsoCloudifyException (-1, "", "", savedException);
+          logger.debug("Cancel workflow {} completed on deployment {}", workflowId, deploymentId);
+          throw new MsoCloudifyException (-1, "", "", savedException);
                        }
                        else {
                                // Can only get here after a timeout
-                               LOGGER.debug ("Cancel workflow " + workflowId + " timeout out on deployment " + deploymentId);                    
-                               MsoCloudifyException exception = new MsoCloudifyException (-1, "", "", savedException);
+          logger.debug("Cancel workflow {} timeout out on deployment {}", workflowId, deploymentId);
+          MsoCloudifyException exception = new MsoCloudifyException (-1, "", "", savedException);
                                exception.setPendingWorkflow(true);
                                throw exception;
                        }
                }
                catch (Exception e) {
                        // Catch-all.  Log the message and throw the original exception
-//             LOGGER.error (MessageEnum.RA_CREATE_STACK_ERR, "Execute Workflow (" + command + "): Unexpected error: " + e, "", "", MsoLogger.ErrorCode.BusinessProcesssError, "Execute Workflow (" + command + "): Internal error" + e.getMessage());
-                       LOGGER.debug ("Cancel workflow " + workflowId + " failed for deployment " + deploymentId + ": " + e.getMessage());                    
-                       MsoCloudifyException exception = new MsoCloudifyException (-1, "", "", savedException);
+        logger.debug("Cancel workflow {} failed for deployment : {} {}", workflowId, deploymentId, e);
+        MsoCloudifyException exception = new MsoCloudifyException (-1, "", "", savedException);
                        exception.setPendingWorkflow(true);
                        throw exception;
                }
-    }  
-    
+    }
+
+
 
-    
     /**
      * Query for a Cloudify Deployment (by Name). This call will always return a
      * DeploymentInfo object. If the deployment does not exist, an "empty" DeploymentInfo will be
@@ -549,23 +567,23 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
     public DeploymentInfo queryDeployment (String cloudSiteId, String tenantId, String deploymentId)
        throws MsoException
     {
-        LOGGER.debug ("Query Cloudify Deployment: " + deploymentId + " in tenant " + tenantId);
+        logger.debug ("Query Cloudify Deployment: {} in tenant {}", deploymentId, tenantId);
 
         // Obtain the cloud site information where we will create the stack
         Optional<CloudSite> cloudSite = cloudConfig.getCloudSite (cloudSiteId);
         if (!cloudSite.isPresent()) {
             throw new MsoCloudSiteNotFound (cloudSiteId);
         }
-        
+
         Cloudify cloudify = getCloudifyClient (cloudSite.get());
-        
+
        // Build and send the Cloudify request
                Deployment deployment = new Deployment();
                DeploymentOutputs outputs = null;
        try {
                GetDeployment queryDeployment = cloudify.deployments().byId(deploymentId);
-               LOGGER.debug (queryDeployment.toString());
-               
+          logger.debug(queryDeployment.toString());
+
 //             deployment = queryDeployment.execute();
                deployment = executeAndRecordCloudifyRequest(queryDeployment);
 
@@ -574,7 +592,7 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
                //  Next look for the latest execution
                ListExecutions listExecutions = cloudify.executions().listFiltered ("deployment_id=" + deploymentId, "-created_at");
                Executions executions = listExecutions.execute();
-               
+
                //  If no executions, does this give NOT_FOUND or empty set?
                if (executions.getItems().isEmpty()) {
                        return new DeploymentInfoBuilder()
@@ -593,8 +611,9 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
        }
        catch (CloudifyConnectException ce) {
                // Couldn't connect to Cloudify
-               LOGGER.error (MessageEnum.RA_CREATE_STACK_ERR, "QueryDeployment: Cloudify connection failure: " + ce, "", "", MsoLogger.ErrorCode.BusinessProcesssError, "QueryDeployment: Cloudify connection failure");
-               throw new MsoIOException (ce.getMessage(), ce);
+          logger.error("{} QueryDeployment: Cloudify connection failure: {} ", MessageEnum.RA_CREATE_STACK_ERR,
+              MsoLogger.ErrorCode.BusinessProcesssError.getValue(), ce);
+          throw new MsoIOException (ce.getMessage(), ce);
        }
        catch (CloudifyResponseException re) {
             if (re.getStatus () == 404) {
@@ -618,7 +637,7 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
                throw new MsoAdapterException (e.getMessage(), e);
        }
     }
-       
+
 
     /**
      * Delete a Cloudify deployment (by ID). If the deployment is not found, it will be
@@ -645,17 +664,17 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
         if (!cloudSite.isPresent()) {
             throw new MsoCloudSiteNotFound (cloudSiteId);
         }
-        
+
         Cloudify cloudify = getCloudifyClient (cloudSite.get());
 
-        LOGGER.debug ("Ready to Uninstall/Delete Deployment (" + deploymentId + ")");
+        logger.debug ("Ready to Uninstall/Delete Deployment ({})", deploymentId);
 
         // Query first to save the trouble if deployment not found
        Deployment deployment = null;
        try {
                GetDeployment queryDeploymentRequest = cloudify.deployments().byId(deploymentId);
-               LOGGER.debug (queryDeploymentRequest.toString());
-               
+          logger.debug(queryDeploymentRequest.toString());
+
                deployment = executeAndRecordCloudifyRequest (queryDeploymentRequest);
        }
        catch (CloudifyResponseException e) {
@@ -664,15 +683,16 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
             if (e.getStatus () == 404) {
                 // Deployment doesn't exist.  Return a "NOTFOUND" DeploymentInfo object
                // TODO:  Should return NULL?
-               LOGGER.debug("Deployment requested for deletion does not exist: " + deploymentId);
-                               return new DeploymentInfoBuilder()
+                logger.debug("Deployment requested for deletion does not exist: {}", deploymentId);
+                return new DeploymentInfoBuilder()
                                        .withId(deploymentId)
                                        .withStatus(DeploymentStatus.NOTFOUND)
                                        .build();
            } else {
                 // Convert the CloudifyResponseException to an MsoOpenstackException
-               LOGGER.debug("ERROR STATUS = " + e.getStatus() + ",\n" + e.getMessage() + "\n" + e.getLocalizedMessage());
-               MsoException me = cloudifyExceptionToMsoException (e, DELETE_DEPLOYMENT);
+                logger.debug("ERROR STATUS = {}, \n {}\n {}\n {}", e.getStatus(), e.getMessage(),
+                    e.getLocalizedMessage(), e);
+                MsoException me = cloudifyExceptionToMsoException (e, DELETE_DEPLOYMENT);
                 me.setCategory (MsoExceptionCategory.INTERNAL);
                 throw me;
             }
@@ -696,16 +716,16 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
        // TODO: No deletePollInterval that I'm aware of.  Use the create interval
         int deletePollInterval = Integer.parseInt(this.environment.getProperty (deletePollIntervalProp, deletePollIntervalDefault));
         int pollTimeout = (timeoutMinutes * 60) + deletePollInterval;
-        
+
         Execution uninstallWorkflow = null;
-        
+
         try {
                uninstallWorkflow = executeWorkflow (cloudify, deploymentId, "uninstall", null, true, pollTimeout, deletePollInterval);
 
                if (uninstallWorkflow.getStatus().equals(TERMINATED)) {
                        //  Successful uninstall.
-                       LOGGER.debug("Uninstall successful for deployment " + deploymentId);
-               }
+              logger.debug("Uninstall successful for deployment {}", deploymentId);
+          }
                else {
                        // The uninstall workflow completed with an error.  Must fail the request, but will
                        // leave the deployment in an indeterminate state, as cloud resources may still exist.
@@ -727,11 +747,11 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
         // Next step is to delete the deployment itself
         try {
                DeleteDeployment deleteRequest = cloudify.deployments().deleteByName(deploymentId);
-               LOGGER.debug(deleteRequest.toString());
-               
+            logger.debug(deleteRequest.toString());
+
                // The delete request returns the deleted deployment
                deployment = deleteRequest.execute();
-               
+
         }
         catch (CloudifyConnectException ce) {
                // Failed to delete.  Must fail the request, but will leave the (uninstalled)
@@ -766,12 +786,12 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
                        .build();
     }
 
-    
+
     /**
      * Check if a blueprint is available for use at a targeted cloud site.
      * This requires checking the Cloudify Manager which is servicing that
      * cloud site to see if the specified blueprint has been loaded.
-     * 
+     *
      * @param cloudSiteId The cloud site where the blueprint is needed
      * @param blueprintId The ID for the blueprint in Cloudify
      */
@@ -783,14 +803,14 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
         if (!cloudSite.isPresent()) {
             throw new MsoCloudSiteNotFound (cloudSiteId);
         }
-        
+
         Cloudify cloudify = getCloudifyClient (cloudSite.get());
 
        GetBlueprint getRequest = cloudify.blueprints().getMetadataById(blueprintId);
        try {
                Blueprint bp = getRequest.execute();
-               LOGGER.debug("Blueprint exists: " + bp.getId());
-               return true;
+          logger.debug("Blueprint exists: {}", bp.getId());
+          return true;
        }
        catch (CloudifyResponseException ce) {
                if (ce.getStatus() == 404) {
@@ -802,14 +822,14 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
                throw e;
        } 
     }
-    
+
     /**
      * Upload a blueprint to the Cloudify Manager that is servicing a Cloud Site.
      * The blueprint currently must be structured as a single directory with all
      * of the required files.  One of those files is designated the "main file"
      * for the blueprint.  Files are provided as byte arrays, though expect only
      * text files will be distributed from ASDC and stored by MSO.
-     * 
+     *
      * Cloudify requires a single root directory in its blueprint zip files.
      * The requested blueprint ID will also be used as the directory.
      * All of the files will be added to this directory in the zip file.
@@ -826,16 +846,16 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
         if (!cloudSite.isPresent()) {
             throw new MsoCloudSiteNotFound (cloudSiteId);
         }
-        
+
         Cloudify cloudify = getCloudifyClient (cloudSite.get());
 
         boolean blueprintUploaded = uploadBlueprint (cloudify, blueprintId, mainFileName, blueprintFiles);
-        
+
         if (!blueprintUploaded && failIfExists) {
                throw new MsoAdapterException ("Blueprint already exists");
         }
     }
-    
+
     /*
      * Common method to load a blueprint.  May be called from 
      */
@@ -846,20 +866,20 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
        GetBlueprint getRequest = cloudify.blueprints().getMetadataById(blueprintId);
        try {
                Blueprint bp = getRequest.execute();
-               LOGGER.debug("Blueprint " + bp.getId() + " already exists.");
-               return false;
+          logger.debug("Blueprint {} already exists.", bp.getId());
+          return false;
        }
        catch (CloudifyResponseException ce) {
                if (ce.getStatus() == 404) {
                        // This is the expected result.
-                       LOGGER.debug("Verified that Blueprint doesn't exist yet");
-               } else {
+            logger.debug("Verified that Blueprint doesn't exist yet");
+        } else {
                        throw ce;
                }
        } catch (Exception e) {
                throw e;
        }
-       
+
        // Create a blueprint ZIP file in memory
                ByteArrayOutputStream zipBuffer = new ByteArrayOutputStream();
                ZipOutputStream zipOut = new ZipOutputStream(zipBuffer);
@@ -869,7 +889,7 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
                        String rootDir = blueprintId + ((blueprintId.endsWith("/") ? "" : "/"));
                        zipOut.putNextEntry(new ZipEntry (rootDir));
                        zipOut.closeEntry();
-                       
+
                        for (String fileName : blueprintFiles.keySet()) {
                                ZipEntry ze = new ZipEntry (rootDir + fileName);
                                zipOut.putNextEntry (ze);
@@ -881,15 +901,15 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
                catch (IOException e) {
                        // Since we're writing to a byte array, this should never happen
                }
-               LOGGER.debug ("Blueprint zip file size: " + zipBuffer.size());
-               
-               // Ready to upload the blueprint zip
-       
+        logger.debug("Blueprint zip file size: {}", zipBuffer.size());
+
+        // Ready to upload the blueprint zip
+
        try (InputStream blueprintStream = new ByteArrayInputStream (zipBuffer.toByteArray())) {
                UploadBlueprint uploadRequest = cloudify.blueprints().uploadFromStream(blueprintId,  mainFileName,  blueprintStream);
                Blueprint blueprint = uploadRequest.execute();
-               System.out.println("Successfully uploaded blueprint " + blueprint.getId());
-       }
+          logger.debug("Successfully uploaded blueprint {}", blueprint.getId());
+      }
        catch (CloudifyResponseException | CloudifyConnectException e) {
                throw cloudifyExceptionToMsoException (e, "UPLOAD_BLUEPRINT");
        }
@@ -903,8 +923,8 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
 
        return true;
     }
-    
-    
+
+
 
     // ---------------------------------------------------------------
     // PRIVATE FUNCTIONS FOR USE WITHIN THIS CLASS
@@ -957,7 +977,7 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
             return executeAndRecordCloudifyRequest (request);
         } catch (CloudifyResponseException e) {
             if (e.getStatus () == 404) {
-                LOGGER.debug ("queryDeployment - not found: " + deploymentId);
+                logger.debug ("queryDeployment - not found: {}", deploymentId);
                 return null;
             } else {
                 // Convert the CloudifyResponseException to an MsoCloudifyException
@@ -974,34 +994,34 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
                        Map<String, Object> otherStackOutputs, boolean overWrite) {
                if (inputs == null || otherStackOutputs == null)
                        return;
-               
+
                for (Map.Entry<String, Object> entry : otherStackOutputs.entrySet()) {
                        String key = entry.getKey();
                        Object value = entry.getValue();
-                       
+
                        if (value 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 {
                                        inputs.put(key, this.convertNode((JsonNode) value));
                                } catch (Exception e) {
-                                       LOGGER.debug("WARNING: unable to convert JsonNode output value for "+ key);
-                                       //effect here is this value will not have been copied to the inputs - and therefore will error out downstream
+            logger.debug("WARNING: unable to convert JsonNode output value for {}", key);
+            //effect here is this value will not have been copied to the inputs - and therefore will error out downstream
                                }
                        } else if (value instanceof java.util.LinkedHashMap) {
-                               LOGGER.debug("LinkedHashMap - this is showing up as a LinkedHashMap instead of JsonNode");
-                               try {
+          logger.debug("LinkedHashMap - this is showing up as a LinkedHashMap instead of JsonNode");
+          try {
                                        inputs.put(key, JSON_MAPPER.writeValueAsString(value));
                                } catch (Exception e) {
-                                       LOGGER.debug("WARNING: unable to convert LinkedHashMap output value for "+ key);
-                               }
+            logger.debug("WARNING: unable to convert LinkedHashMap output value for {}", key);
+        }
                        } else {
                                // just try to cast it - could be an integer or some such
                                try {
                                        inputs.put(key, (String) value);
                                } catch (Exception e) {
-                                       LOGGER.debug("WARNING: unable to convert output value for "+ key);
-                                       //effect here is this value will not have been copied to the inputs - and therefore will error out downstream
+            logger.debug("WARNING: unable to convert output value for {}", key);
+            //effect here is this value will not have been copied to the inputs - and therefore will error out downstream
                                }
                        }
                }
@@ -1015,42 +1035,42 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
        public Object convertInputValue (String inputValue, HeatTemplateParam templateParam)
        {
                String type = templateParam.getParamType();
-               LOGGER.debug("Parameter: " + templateParam.getParamName() + " is of type " + type);
-               
-               if (type.equalsIgnoreCase("number")) {
+      logger.debug("Parameter: {} is of type {}", templateParam.getParamName(), type);
+
+      if (type.equalsIgnoreCase("number")) {
                        try {
                                return Integer.valueOf(inputValue);
                        }
                        catch (Exception e) {
-                               LOGGER.debug("Unable to convert " + inputValue + " to an integer!");
-                               return null;
+          logger.debug("Unable to convert {} to an integer!", inputValue);
+          return null;
                        }
                } else if (type.equalsIgnoreCase("json")) {
                        try {
                                return new ObjectMapper().readTree(inputValue);
                        }
                        catch (Exception e) {
-                               LOGGER.debug("Unable to convert " + inputValue + " to a JsonNode!");
-                               return null;
+          logger.debug("Unable to convert {} to a JsonNode!", inputValue);
+          return null;
                        }
                } else if (type.equalsIgnoreCase("boolean")) {
                        return new Boolean(inputValue);
                }
-               
+
                // Nothing else matched.  Return the original string
                return inputValue;
        }
-       
-       
+
+
        private String convertNode(final JsonNode node) {
                try {
                        final Object obj = JSON_MAPPER.treeToValue(node, Object.class);
                        return JSON_MAPPER.writeValueAsString(obj);
                } catch (JsonParseException jpe) {
-                       LOGGER.debug("Error converting json to string " + jpe.getMessage());
-               } catch (Exception e) {
-                       LOGGER.debug("Error converting json to string " + e.getMessage());
-               }
+        logger.debug("Error converting json to string {}", jpe);
+    } catch (Exception e) {
+        logger.debug("Error converting json to string {}", e);
+    }
                return "[Error converting json to string]";
        }
        
@@ -1061,7 +1081,7 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
      * sub-category that identifies the specific call (using the real
      * cloudify-client classname of the CloudifyRequest<T> parameter).
      */
-    
+
 
     protected <T> T executeAndRecordCloudifyRequest (CloudifyRequest <T> request) {
 
@@ -1072,11 +1092,11 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
         } else {
             requestType = request.getClass ().getSimpleName ();
         }
-        
+
         int retryDelay = poConfig.getRetryDelay();
         int retryCount = poConfig.getRetryCount();
         String retryCodes  = poConfig.getRetryCodes();
-       
+
         // Run the actual command. All exceptions will be propagated
         while (true)
         {
@@ -1087,19 +1107,23 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
                        boolean retry = false;
                        if (retryCodes != null ) {
                                int code = e.getStatus();
-                               LOGGER.debug ("Config values RetryDelay:" + retryDelay + " RetryCount:" + retryCount + " RetryCodes:" + retryCodes + " ResponseCode:" + code);
-                               for (String rCode : retryCodes.split (",")) {
+                logger.debug("Config values RetryDelay: {} RetryCount:{} RetryCodes:{} ResponseCode:{}", retryDelay,
+                    retryCount, retryCodes, code);
+                for (String rCode : retryCodes.split (",")) {
                                        try {
                                                if (retryCount > 0 && code == Integer.parseInt (rCode))
                                                {
                                                        retryCount--;
                                                        retry = true;
-                                                       LOGGER.debug ("CloudifyResponseException ResponseCode:" + code +  " request:" + requestType +  " Retry indicated. Attempts remaining:" + retryCount);
-                                                       break;
+                      logger.debug(
+                          "CloudifyResponseException ResponseCode:{} request:{} Retry indicated. Attempts remaining:{}",
+                          code, requestType, retryCount);
+                      break;
                                                }
                                        } catch (NumberFormatException e1) {
-                                               LOGGER.error (MessageEnum.RA_CONFIG_EXC, "No retries. Exception in parsing retry code in config:" + rCode, "", "", MsoLogger.ErrorCode.SchemaError, "Exception in parsing retry code in config");
-                                               throw e;
+                    logger.error("{} No retries. Exception in parsing retry code in config:{} {}",
+                        MessageEnum.RA_CONFIG_EXC, rCode, MsoLogger.ErrorCode.SchemaError.getValue());
+                    throw e;
                                        }
                                }
                        }
@@ -1115,12 +1139,12 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
                        if (retryCount > 0)
                        {
                                retryCount--;
-                               LOGGER.debug (" request:" + requestType + " Retry indicated. Attempts remaining:" + retryCount);
-                               sleep(retryDelay * 1000L);
+                logger.debug(" request: {} Retry indicated. Attempts remaining:{}", requestType, retryCount);
+                sleep(retryDelay * 1000L);
                        }
                        else
                                throw e;
-                               
+
                }
         }
     }
@@ -1137,16 +1161,18 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
             try {
                 // Failed Cloudify calls return an error entity body.
                 CloudifyError error = re.getResponse ().getErrorEntity (CloudifyError.class);
-                LOGGER.error (MessageEnum.RA_CONNECTION_EXCEPTION, CLOUDIFY, "Cloudify Error on " + context + ": " + error.getErrorCode(), CLOUDIFY, "", MsoLogger.ErrorCode.DataError, "Exception - Cloudify Error on " + context);
+                logger.error("{} {} {} Exception - Cloudify Error on {}: {}", MessageEnum.RA_CONNECTION_EXCEPTION,
+                    CLOUDIFY, MsoLogger.ErrorCode.DataError.getValue(), context, error.getErrorCode());
                 String fullError = error.getErrorCode() + ": " + error.getMessage();
-                LOGGER.debug(fullError);
+                logger.debug(fullError);
                                me = new MsoCloudifyException (re.getStatus(),
                                                 re.getMessage(),
                                                 fullError);
             } catch (Exception e2) {
                 // Couldn't parse the body as a "CloudifyError". Report the original HTTP error.
-               LOGGER.error (MessageEnum.RA_CONNECTION_EXCEPTION, CLOUDIFY, "HTTP Error on " + context + ": " + re.getStatus() + "," + e.getMessage(), CLOUDIFY, "", MsoLogger.ErrorCode.DataError, "Exception - HTTP Error on " + context, e2);
-                               me = new MsoCloudifyException (re.getStatus (), re.getMessage (), "");
+                logger.error("{} {} {} Exception - HTTP Error on {}: {}, {} ", MessageEnum.RA_CONNECTION_EXCEPTION,
+                    CLOUDIFY, MsoLogger.ErrorCode.DataError.getValue(), context, re.getStatus(), e.getMessage(), e2);
+                me = new MsoCloudifyException (re.getStatus (), re.getMessage (), "");
             }
 
             // Add the context of the error
@@ -1164,8 +1190,9 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
 
             // Generate an alarm for all connection errors.
 
-            LOGGER.error(MessageEnum.RA_CONNECTION_EXCEPTION, CLOUDIFY, "Cloudify connection error on " + context + ": " + e, CLOUDIFY, "", MsoLogger.ErrorCode.DataError, "Cloudify connection error on " + context);
-       }
+            logger.error("{} {} {} Cloudify connection error on {}: ", MessageEnum.RA_CONNECTION_EXCEPTION, CLOUDIFY,
+                MsoLogger.ErrorCode.DataError.getValue(), context, e);
+        }
 
         return me;
     }
@@ -1173,17 +1200,17 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
 
 
     /*******************************************************************************
-     * 
+     *
      * Methods (and associated utilities) to implement the VduPlugin interface
-     * 
+     *
      *******************************************************************************/
-    
+
     /**
      * VduPlugin interface for instantiate function.
-     * 
+     *
      * This one is a bit more complex, in that it will first upload the blueprint if needed,
      * then create the Cloudify deployment and execute the install workflow.
-     * 
+     *
      * This implementation also merges any parameters defined in the ENV file with the other
      * other input parameters for any undefined parameters).
      * The basic MsoCloudifyUtils separates blueprint management from deploument actions,
@@ -1200,40 +1227,40 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
     {
        String cloudSiteId = cloudInfo.getCloudSiteId();
        String tenantId = cloudInfo.getTenantId();
-       
+
        // Translate the VDU ModelInformation structure to that which is needed for
        // creating and uploading a blueprint.  Use the model customization UUID as
        // the blueprint identifier.
-       
+
        String blueprintId = vduModel.getModelCustomizationUUID();
-       
+
                try {
-                       
+
                if (! isBlueprintLoaded (cloudSiteId, blueprintId)) {
-                               LOGGER.debug ("Blueprint " + blueprintId + " is not loaded.  Will upload it now.");
-       
+            logger.debug("Blueprint {} is not loaded.  Will upload it now.", blueprintId);
+
                                // Prepare the blueprint inputs.  Need the set of blueprint templates and files,
                                // plus the main blueprint name.
                                Map<String,byte[]> blueprintFiles = new HashMap<>();
                                String mainTemplate = "";
-       
+
                                // Add all of the blueprint artifacts from the VDU model
                                List<VduArtifact> vduArtifacts = vduModel.getArtifacts();
                                for (VduArtifact vduArtifact: vduArtifacts)
                                {
                                        // Add all artifacts to the blueprint, with one exception.
                                        // ENVIRONMENT files will be processed later as additional parameters.
-                                       
+
                                        ArtifactType artifactType = vduArtifact.getType();
                                        if (artifactType != ArtifactType.ENVIRONMENT) {
                                                blueprintFiles.put(vduArtifact.getName(), vduArtifact.getContent());
-                                               
+
                                                if (artifactType == ArtifactType.MAIN_TEMPLATE) {
                                                        mainTemplate = vduArtifact.getName();
                                                }
                                        }
                                }
-                                               
+
                    // Upload the blueprint package
                                uploadBlueprint(cloudSiteId, blueprintId, mainTemplate, blueprintFiles, false);
                        }
@@ -1241,12 +1268,12 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
        catch (Exception e) {
                throw new VduException ("CloudifyUtils (instantiateVDU): blueprint Exception", e);
        }
-       
-               
+
+
        // Next, create and install a new deployment based on the blueprint.
        // For Cloudify, the deploymentId is specified by the client.  Just use the instance name
        // as the ID.
-       
+
        try {
                // Query the Cloudify Deployment object and  populate a VduInstance
                DeploymentInfo deployment = createAndInstallDeployment (cloudSiteId,
@@ -1257,15 +1284,15 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
                     true,  // (poll for completion)
                     vduModel.getTimeoutMinutes(),
                     rollbackOnFailure);
-               
+
                return deploymentInfoToVduInstance(deployment);
        }
        catch (Exception e) {
                throw new VduException ("CloudifyUtils (instantiateVDU): Create-and-install-deployment Exception", e);
        }
     }
-    
-    
+
+
     /**
      * VduPlugin interface for query function.
      */
@@ -1275,19 +1302,19 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
     {
        String cloudSiteId = cloudInfo.getCloudSiteId();
        String tenantId = cloudInfo.getTenantId();
-       
+
        try {
                // Query the Cloudify Deployment object and  populate a VduInstance
                DeploymentInfo deployment = queryDeployment (cloudSiteId, tenantId, instanceId);
-               
+
                return deploymentInfoToVduInstance(deployment);
        }
        catch (Exception e) {
                throw new VduException ("Query VDU Exception", e);
        }
     }
-    
-    
+
+
     /**
      * VduPlugin interface for delete function.
      */
@@ -1297,11 +1324,11 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
     {
        String cloudSiteId = cloudInfo.getCloudSiteId();
        String tenantId = cloudInfo.getTenantId();
-       
+
        try {
                // Uninstall and delete the Cloudify Deployment
                DeploymentInfo deployment = uninstallAndDeleteDeployment (cloudSiteId, tenantId, instanceId, timeoutMinutes);
-               
+
                // Populate a VduInstance based on the deleted Cloudify Deployment object
                return deploymentInfoToVduInstance(deployment);
        }
@@ -1309,14 +1336,14 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
                throw new VduException ("Delete VDU Exception", e);
        }
     }
-    
-    
+
+
     /**
      * VduPlugin interface for update function.
-     * 
+     *
      * Update is currently not supported in the MsoCloudifyUtils implementation.
      * Just return a VduException.
-     * 
+     *
      */
     @Override
        public VduInstance updateVdu (
@@ -1329,37 +1356,37 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
     {
        throw new VduException ("CloudifyUtils: updateVDU interface not supported");
     }
-    
-       
+
+
     /*
      * Convert the local DeploymentInfo object (Cloudify-specific) to a generic VduInstance object
      */
     protected VduInstance deploymentInfoToVduInstance (DeploymentInfo deployment)
     {
        VduInstance vduInstance = new VduInstance();
-       
+
        // only one ID in Cloudify, use for both VDU name and ID
        vduInstance.setVduInstanceId(deployment.getId());
        vduInstance.setVduInstanceName(deployment.getId());
-       
+
        // Copy inputs and outputs
        vduInstance.setInputs(deployment.getInputs());
        vduInstance.setOutputs(deployment.getOutputs());
-       
+
        // Translate the status elements
        vduInstance.setStatus(deploymentStatusToVduStatus (deployment));
-       
+
        return vduInstance;
     }
-    
+
     protected VduStatus deploymentStatusToVduStatus (DeploymentInfo deployment)
     {
        VduStatus vduStatus = new VduStatus();
-       
+
        // Determine the status based on last action & status
        // DeploymentInfo object should be enhanced to report a better status internally.
        DeploymentStatus status = deployment.getStatus();
-       
+
        if (status == null) {
                vduStatus.setState(VduStateType.UNKNOWN);
        }
@@ -1384,13 +1411,13 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
        } else {
                vduStatus.setState(VduStateType.UNKNOWN);
        }
-       
+
        vduStatus.setErrorMessage(deployment.getErrorMessage());
        vduStatus.setLastAction(new PluginAction(deployment.getLastAction(), deployment.getActionStatus(), deployment.getErrorMessage()));
-       
+
        return vduStatus;
     }
-    
+
     /*
      * Return an OpenstackConfig object as expected by Cloudify Openstack Plug-in.
      * Base the values on the CloudSite definition.
@@ -1404,7 +1431,7 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
         openstackConfig.setTenantName (tenantId);
         return openstackConfig;
     }
-    
+
     /*
      * Return an Azure object as expected by Cloudify Azure Plug-in.
      * Base the values on the CloudSite definition.
@@ -1418,13 +1445,13 @@ public class MsoCloudifyUtils extends MsoCommonUtils implements VduPlugin{
         azureConfig.setClientSecret (cloudSite.getIdentityService().getMsoPass());
         return azureConfig;
     }
-    
+
     private void sleep(long time) {
                try {
                        Thread.sleep(time);
                } catch (InterruptedException e) {
-                       LOGGER.debug("Thread interrupted while sleeping!", e);
-                       Thread.currentThread().interrupt();
+        logger.debug("Thread interrupted while sleeping!", e);
+        Thread.currentThread().interrupt();
                }
     }
 }
index 75b9fc9..8cd6b0f 100644 (file)
@@ -5,6 +5,8 @@
  * Copyright (C) 2018 Intel Corp. All rights reserved.
  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ================================================================================
  * 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
 package org.onap.so.openstack.utils;
 
 
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.woorea.openstack.base.client.OpenStackBaseException;
+import com.woorea.openstack.base.client.OpenStackConnectException;
+import com.woorea.openstack.base.client.OpenStackRequest;
+import com.woorea.openstack.base.client.OpenStackResponseException;
+import com.woorea.openstack.heat.model.CreateStackParam;
+import com.woorea.openstack.heat.model.Explanation;
+import com.woorea.openstack.keystone.model.Error;
+import com.woorea.openstack.quantum.model.NeutronError;
 import java.io.IOException;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Map.Entry;
-
 import org.onap.so.config.beans.PoConfig;
 import org.onap.so.logger.MessageEnum;
-
 import org.onap.so.logger.MsoLogger;
 import org.onap.so.openstack.exceptions.MsoAdapterException;
 import org.onap.so.openstack.exceptions.MsoException;
 import org.onap.so.openstack.exceptions.MsoExceptionCategory;
 import org.onap.so.openstack.exceptions.MsoIOException;
 import org.onap.so.openstack.exceptions.MsoOpenstackException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import com.fasterxml.jackson.core.type.TypeReference;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.woorea.openstack.base.client.OpenStackBaseException;
-import com.woorea.openstack.base.client.OpenStackConnectException;
-import com.woorea.openstack.base.client.OpenStackRequest;
-import com.woorea.openstack.base.client.OpenStackResponseException;
-import com.woorea.openstack.heat.model.CreateStackParam;
-import com.woorea.openstack.heat.model.Explanation;
-import com.woorea.openstack.keystone.model.Error;
-import com.woorea.openstack.quantum.model.NeutronError;
-
 @Component("CommonUtils")
 public class MsoCommonUtils {
 
-       private static MsoLogger logger = MsoLogger.getMsoLogger(MsoLogger.Catalog.RA, MsoCommonUtils.class);
+       private static Logger logger = LoggerFactory.getLogger(MsoCommonUtils.class);
 
 
        @Autowired
@@ -92,19 +93,24 @@ public class MsoCommonUtils {
                        boolean retry = false;
                        if (retryCodes != null ) {
                                int code = e.getStatus();
-                    logger.debug ("Config values RetryDelay:" + retryDelay + " RetryCount:" + retryCount + " RetryCodes:" + retryCodes + " ResponseCode:" + code);
-                               for (String rCode : retryCodes.split (",")) {
+                logger.debug("Config values RetryDelay:{} RetryCount:{}  RetryCodes:{} ResponseCode:{}", retryDelay,
+                    retryCount, retryCodes, code);
+                for (String rCode : retryCodes.split (",")) {
                                        try {
                                                if (retryCount > 0 && code == Integer.parseInt (rCode))
                                                {
                                                        retryCount--;
                                                        retry = true;
-                                logger.debug ("OpenStackResponseException ResponseCode:" + code +  " request:" + requestType +  " Retry indicated. Attempts remaining:" + retryCount);
-                                                       break;
+                      logger.debug(
+                          "OpenStackResponseException ResponseCode: {} request:{} Retry indicated. Attempts remaining:{}",
+                          code, requestType, retryCount);
+                      break;
                                                }
                                        } catch (NumberFormatException e1) {
-                            logger.error (MessageEnum.RA_CONFIG_EXC, "No retries. Exception in parsing retry code in config:" + rCode, "", "", MsoLogger.ErrorCode.SchemaError, "Exception in parsing retry code in config");
-                                               throw e;
+                    logger.error("{} No retries. Exception in parsing retry code in config:{} {} {}",
+                        MessageEnum.RA_CONFIG_EXC, rCode, MsoLogger.ErrorCode.SchemaError.getValue(),
+                        "Exception in parsing retry code in config");
+                    throw e;
                                        }
                                }
                        }
@@ -125,7 +131,7 @@ public class MsoCommonUtils {
                        if (retryCount > 0)
                        {
                                retryCount--;
-                    logger.debug (" request:" + requestType + " Retry indicated. Attempts remaining:" + retryCount);
+                    logger.debug (" request: {} Retry indicated. Attempts remaining:{}", requestType, retryCount);
                                try {
                                        Thread.sleep (retryDelay * 1000L);
                                } catch (InterruptedException e1) {
@@ -153,12 +159,14 @@ public class MsoCommonUtils {
             try {
                 // Failed Keystone calls return an Error entity body.
                 Error error = re.getResponse ().getErrorEntity (Error.class);
-                logger.error (MessageEnum.RA_CONNECTION_EXCEPTION, "Openstack Keystone Error on " + context + ": " + error, "Openstack", "", MsoLogger.ErrorCode.DataError, "Openstack Keystone Error on " + context);
-                               me = new MsoOpenstackException (error.getCode (), error.getTitle (), error.getMessage ());
+                logger.error("{} {} Openstack Keystone Error on {}: {}",
+                    MessageEnum.RA_CONNECTION_EXCEPTION, MsoLogger.ErrorCode.DataError.getValue(), context, error);
+                me = new MsoOpenstackException (error.getCode (), error.getTitle (), error.getMessage ());
             } catch (Exception e2) {
                 // Can't parse the body as an "Error". Report the HTTP error
-                logger.error (MessageEnum.RA_CONNECTION_EXCEPTION, "HTTP Error on " + context + ": " + re.getStatus() + "," + re.getMessage(), "Openstack", "", MsoLogger.ErrorCode.DataError, "HTTP Error on " + context, e2);
-                               me = new MsoOpenstackException (re.getStatus (), re.getMessage (), "");
+                logger.error("{} {} HTTP Error on {}: {}, {}", MessageEnum.RA_CONNECTION_EXCEPTION,
+                    MsoLogger.ErrorCode.DataError.getValue(), context, re.getStatus(), re.getMessage(), e2);
+                me = new MsoOpenstackException (re.getStatus (), re.getMessage (), "");
             }
 
             // Add the context of the error
@@ -175,8 +183,8 @@ public class MsoCommonUtils {
             me.addContext (context);
 
             // Generate an alarm for all connection errors.
-            logger.error(MessageEnum.RA_GENERAL_EXCEPTION_ARG, "Openstack Keystone connection error on " + context + ": " + e, "Openstack", "", MsoLogger.ErrorCode.DataError, "Openstack Keystone connection error on " + context);
-
+            logger.error("{} {} Openstack Keystone connection error on {}: ", MessageEnum.RA_GENERAL_EXCEPTION_ARG,
+                MsoLogger.ErrorCode.DataError.getValue(), context, e);
         }
 
         return me;
@@ -195,7 +203,8 @@ public class MsoCommonUtils {
             try {
                 // Failed Heat calls return an Explanation entity body.
                 Explanation explanation = re.getResponse ().getErrorEntity (Explanation.class);
-                logger.error (MessageEnum.RA_CONNECTION_EXCEPTION, "OpenStack", "Openstack Error on " + context + ": " + explanation.toString(), "Openstack", "", MsoLogger.ErrorCode.DataError, "Exception - Openstack Error on " + context);
+                logger.error("{} {} Exception - Openstack Error on {} : {}", MessageEnum.RA_CONNECTION_EXCEPTION,
+                    MsoLogger.ErrorCode.DataError.getValue(), context, explanation.toString());
                 String fullError = explanation.getExplanation() + ", error.type=" + explanation.getError().getType() + ", error.message=" + explanation.getError().getMessage();
                 logger.debug(fullError);
                                me = new MsoOpenstackException (explanation.getCode (),
@@ -204,8 +213,9 @@ public class MsoCommonUtils {
                                                 fullError);
             } catch (Exception e2) {
                 // Couldn't parse the body as an "Explanation". Report the original HTTP error.
-                logger.error (MessageEnum.RA_CONNECTION_EXCEPTION, "OpenStack", "HTTP Error on " + context + ": " + re.getStatus() + "," + e.getMessage(), "Openstack", "", MsoLogger.ErrorCode.DataError, "Exception - HTTP Error on " + context, e2);
-                               me = new MsoOpenstackException (re.getStatus (), re.getMessage (), "");
+                logger.error("{} {} Exception - HTTP Error on {}: {}, ", MessageEnum.RA_CONNECTION_EXCEPTION,
+                    MsoLogger.ErrorCode.DataError.getValue(), context, re.getStatus(), e.getMessage(), e2);
+                me = new MsoOpenstackException (re.getStatus (), re.getMessage (), "");
             }
 
             // Add the context of the error
@@ -223,8 +233,9 @@ public class MsoCommonUtils {
 
             // Generate an alarm for all connection errors.
 
-            logger.error(MessageEnum.RA_CONNECTION_EXCEPTION, "OpenStack", "Openstack Heat connection error on " + context + ": " + e, "Openstack", "", MsoLogger.ErrorCode.DataError, "Openstack Heat connection error on " + context);
-       }
+            logger.error("{} {} Openstack Heat connection error on {}: ", MessageEnum.RA_CONNECTION_EXCEPTION,
+                MsoLogger.ErrorCode.DataError.getValue(), context, e);
+        }
 
         return me;
     }
@@ -242,12 +253,14 @@ public class MsoCommonUtils {
             try {
                 // Failed Neutron calls return an NeutronError entity body
                 NeutronError error = re.getResponse ().getErrorEntity (NeutronError.class);
-                logger.error (MessageEnum.RA_CONNECTION_EXCEPTION, "OpenStack", "Openstack Neutron Error on " + context + ": " + error, "Openstack", "", MsoLogger.ErrorCode.DataError, "Openstack Neutron Error on " + context);
-                               me = new MsoOpenstackException (re.getStatus (), error.getType (), error.getMessage ());
+                logger.error("{} {} Openstack Neutron Error on {} {}", MessageEnum.RA_CONNECTION_EXCEPTION,
+                    MsoLogger.ErrorCode.DataError.getValue(), context, error);
+                me = new MsoOpenstackException (re.getStatus (), error.getType (), error.getMessage ());
             } catch (Exception e2) {
                 // Couldn't parse body as a NeutronError. Report the HTTP error.
-                logger.error (MessageEnum.RA_CONNECTION_EXCEPTION, "OpenStack", "HTTP Error on " + context + ": " + re.getStatus() + "," + e.getMessage(), "Openstack", "", MsoLogger.ErrorCode.DataError, "Openstack HTTP Error on " + context, e2);
-                               me = new MsoOpenstackException (re.getStatus (), re.getMessage (), null);
+                logger.error("{} {} Openstack HTTP Error on {}: {}, {}", MessageEnum.RA_CONNECTION_EXCEPTION,
+                    MsoLogger.ErrorCode.DataError.getValue(), context, re.getStatus(), e.getMessage(), e2);
+                me = new MsoOpenstackException (re.getStatus (), re.getMessage (), null);
             }
 
             // Add the context of the error
@@ -265,8 +278,9 @@ public class MsoCommonUtils {
 
             // Generate an alarm for all connection errors.
 
-            logger.error(MessageEnum.RA_CONNECTION_EXCEPTION, "OpenStack", "Openstack Neutron Connection error on "+ context + ": " + e, "OpenStack", "", MsoLogger.ErrorCode.DataError, "Openstack Neutron Connection error on "+ context);
-       }
+            logger.error("{} {} Openstack Neutron Connection error on {}: ", MessageEnum.RA_CONNECTION_EXCEPTION,
+                MsoLogger.ErrorCode.DataError.getValue(), context, e);
+        }
 
         return me;
     }
@@ -283,8 +297,8 @@ public class MsoCommonUtils {
         me.setCategory (MsoExceptionCategory.INTERNAL);
 
         // Always generate an alarm for internal exceptions
-        logger.error(MessageEnum.RA_GENERAL_EXCEPTION_ARG, "An exception occured on  "+ context + ": " + e, "OpenStack", "", MsoLogger.ErrorCode.DataError, "An exception occured on  "+ context);
-
+        logger.error("{} {} An exception occured on {}: ", MessageEnum.RA_GENERAL_EXCEPTION_ARG,
+            MsoLogger.ErrorCode.DataError.getValue(), context, e);
 
         return me;
     }
@@ -295,8 +309,8 @@ public class MsoCommonUtils {
         me.setCategory (MsoExceptionCategory.INTERNAL);
 
         // Always generate an alarm for internal exceptions
-        logger.error(MessageEnum.RA_GENERAL_EXCEPTION_ARG, "An exception occured on  "+ context + ": " + e, "OpenStack", "", MsoLogger.ErrorCode.DataError, "An exception occured on  "+ context);
-
+        logger.error("{} {} An exception occured on {}: ", MessageEnum.RA_GENERAL_EXCEPTION_ARG,
+            MsoLogger.ErrorCode.DataError.getValue(), context, e);
 
         return me;
     }
@@ -321,7 +335,7 @@ public class MsoCommonUtils {
             haveEnvtVariable = false;
             logger.debug ("createStackParam called with no environment variable");
         } else {
-               logger.debug ("createStackParam called with an environment variable: " + environment);
+            logger.debug("createStackParam called with an environment variable: {}", environment);
         }
 
         boolean haveFiles = true;
@@ -329,7 +343,7 @@ public class MsoCommonUtils {
             haveFiles = false;
             logger.debug ("createStackParam called with no files / child template ids");
         } else {
-               logger.debug ("createStackParam called with " + files.size () + " files / child template ids");
+            logger.debug("createStackParam called with {} files / child template ids", files.size());
         }
 
         boolean haveHeatFiles = true;
@@ -337,7 +351,7 @@ public class MsoCommonUtils {
             haveHeatFiles = false;
             logger.debug ("createStackParam called with no heatFiles");
         } else {
-               logger.debug ("createStackParam called with " + heatFiles.size () + " heatFiles");
+            logger.debug("createStackParam called with {} heatFiles", heatFiles.size());
         }
 
            //force entire stackInput object to generic Map<String, Object> for openstack compatibility
@@ -359,8 +373,8 @@ public class MsoCommonUtils {
            stack.setDisableRollback (true);
            // TJM New for PO Adapter - add envt variable
            if (haveEnvtVariable) {
-               logger.debug ("Found an environment variable - value: " + environment);
-               stack.setEnvironment (environment);
+          logger.debug("Found an environment variable - value: {}", environment);
+          stack.setEnvironment (environment);
            }
            // Now handle nested templates or get_files - have to combine if we have both
            // as they're both treated as "files:" on the stack.
@@ -396,11 +410,11 @@ public class MsoCommonUtils {
                                inputs.put(entry.getKey(), entry.getValue());
                        }
                }
-               logger.debug("stack request:" + stack.toString());
-           } catch (Exception e) {
+          logger.debug("stack request: {}", stack.toString());
+      } catch (Exception e) {
                // that's okay - this is a nice-to-have
-               logger.debug("(had an issue printing nicely formatted request to debuglog) " + e.getMessage());
-           }
+          logger.debug("(had an issue printing nicely formatted request to debuglog) {}", e.getMessage());
+      }
 
            return stack;
     }
index c95e62d..4b53006 100644 (file)
@@ -5,6 +5,8 @@
  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
  * Copyright (C) 2017 Huawei Technologies Co., Ltd. All rights reserved.
  * ================================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ================================================================================
  * 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
 package org.onap.so.openstack.utils;
 
 
-
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.Set;
-
 import org.onap.so.db.catalog.beans.HeatTemplateParam;
-import org.onap.so.logger.MsoLogger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class MsoHeatEnvironmentEntry {
 
-    private static final MsoLogger LOGGER = MsoLogger.getMsoLogger (MsoLogger.Catalog.RA, MsoHeatEnvironmentEntry.class);
+    private static final Logger logger = LoggerFactory.getLogger(MsoHeatEnvironmentEntry.class);
     
        private Set<MsoHeatEnvironmentParameter> parameters = null;
        private Set<MsoHeatEnvironmentResource> resources = null;
@@ -66,8 +67,8 @@ public class MsoHeatEnvironmentEntry {
                                this.resourceRegistryEntryRaw = sb;
                        }
                } catch (Exception e) {
-                   LOGGER.debug("Exception:", e);
-                       this.valid = false;
+        logger.debug("Exception:", e);
+        this.valid = false;
                        this.errorString = e.getMessage();
                        //e.printStackTrace();
                }
@@ -249,7 +250,7 @@ public class MsoHeatEnvironmentEntry {
                 }
             }
         } catch (Exception e) {
-            LOGGER.debug("Exception:", e);
+            logger.debug("Exception:", e);
             this.errorString = e.getMessage();
             //e.printStackTrace();
         }
index c174b58..56bab31 100644 (file)
@@ -5,6 +5,8 @@
  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
  * Copyright (C) 2017 Huawei Technologies Co., Ltd. All rights reserved.
  * ================================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ================================================================================
  * 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
 
 package org.onap.so.openstack.utils;
 
-import org.onap.so.logger.MsoLogger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class MsoHeatEnvironmentResource {
 
-    private static final MsoLogger LOGGER = MsoLogger.getMsoLogger (MsoLogger.Catalog.RA, MsoHeatEnvironmentResource.class);
+    private static final Logger logger = LoggerFactory.getLogger(MsoHeatEnvironmentResource.class);
     
        private String name;
        private String value;
@@ -87,8 +90,8 @@ public class MsoHeatEnvironmentResource {
                try {
                        result = this.name.hashCode();
                } catch (Exception e) {
-                   LOGGER.debug("Exception:", e);
-               }
+        logger.debug("Exception:", e);
+    }
                return result;
        }
 
index ddc7251..efc232e 100644 (file)
 
 package org.onap.so.openstack.utils;
 
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.woorea.openstack.base.client.OpenStackConnectException;
+import com.woorea.openstack.base.client.OpenStackRequest;
+import com.woorea.openstack.base.client.OpenStackResponseException;
+import com.woorea.openstack.heat.Heat;
+import com.woorea.openstack.heat.model.CreateStackParam;
+import com.woorea.openstack.heat.model.Resources;
+import com.woorea.openstack.heat.model.Stack;
+import com.woorea.openstack.heat.model.Stack.Output;
+import com.woorea.openstack.heat.model.Stacks;
+import com.woorea.openstack.keystone.Keystone;
+import com.woorea.openstack.keystone.model.Access;
+import com.woorea.openstack.keystone.model.Authentication;
+import com.woorea.openstack.keystone.utils.KeystoneUtils;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Calendar;
@@ -31,7 +46,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Set;
-
 import org.onap.so.adapters.vdu.CloudInfo;
 import org.onap.so.adapters.vdu.PluginAction;
 import org.onap.so.adapters.vdu.VduArtifact;
@@ -53,7 +67,6 @@ import org.onap.so.db.catalog.beans.HeatTemplate;
 import org.onap.so.db.catalog.beans.HeatTemplateParam;
 import org.onap.so.db.catalog.beans.ServerType;
 import org.onap.so.logger.MessageEnum;
-
 import org.onap.so.logger.MsoLogger;
 import org.onap.so.openstack.beans.HeatStatus;
 import org.onap.so.openstack.beans.StackInfo;
@@ -66,27 +79,13 @@ import org.onap.so.openstack.exceptions.MsoStackAlreadyExists;
 import org.onap.so.openstack.exceptions.MsoTenantNotFound;
 import org.onap.so.openstack.mappers.StackInfoMapper;
 import org.onap.so.utils.CryptoUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Primary;
 import org.springframework.core.env.Environment;
 import org.springframework.stereotype.Component;
 
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.woorea.openstack.base.client.OpenStackConnectException;
-import com.woorea.openstack.base.client.OpenStackRequest;
-import com.woorea.openstack.base.client.OpenStackResponseException;
-import com.woorea.openstack.heat.Heat;
-import com.woorea.openstack.heat.model.CreateStackParam;
-import com.woorea.openstack.heat.model.Resources;
-import com.woorea.openstack.heat.model.Stack;
-import com.woorea.openstack.heat.model.Stack.Output;
-import com.woorea.openstack.heat.model.Stacks;
-import com.woorea.openstack.keystone.Keystone;
-import com.woorea.openstack.keystone.model.Access;
-import com.woorea.openstack.keystone.model.Authentication;
-import com.woorea.openstack.keystone.utils.KeystoneUtils;
-
 @Primary
 @Component
 public class MsoHeatUtils extends MsoCommonUtils implements VduPlugin{
@@ -117,7 +116,7 @@ public class MsoHeatUtils extends MsoCommonUtils implements VduPlugin{
     @Autowired
     private KeystoneV3Authentication keystoneV3Authentication;
     
-    private static final MsoLogger LOGGER = MsoLogger.getMsoLogger (MsoLogger.Catalog.RA, MsoHeatUtils.class);
+    private static final Logger logger = LoggerFactory.getLogger(MsoHeatUtils.class);
 
     // Properties names and variables (with default values)
     protected String createPollIntervalProp = "org.onap.so.adapters.po.pollInterval";
@@ -292,13 +291,13 @@ public class MsoHeatUtils extends MsoCommonUtils implements VduPlugin{
         // Obtain the cloud site information where we will create the stack
         CloudSite cloudSite = cloudConfig.getCloudSite(cloudSiteId).orElseThrow(
                 () -> new MsoCloudSiteNotFound(cloudSiteId));
-        LOGGER.debug("Found: " + cloudSite.toString());
+        logger.debug("Found: {}", cloudSite);
         // Get a Heat client. They are cached between calls (keyed by tenantId:cloudId)
         // This could throw MsoTenantNotFound or MsoOpenstackException (both propagated)
         Heat heatClient = getHeatClient (cloudSite, tenantId);
-        LOGGER.debug("Found: " + heatClient.toString());
+        logger.debug("Found: {}", heatClient);
 
-        LOGGER.debug ("Ready to Create Stack (" + heatTemplate + ") with input params: " + stackInputs);
+        logger.debug ("Ready to Create Stack ({}) with input params: {}", heatTemplate, stackInputs);
 
         Stack heatStack = null;
         try {
@@ -313,7 +312,7 @@ public class MsoHeatUtils extends MsoCommonUtils implements VduPlugin{
                 me.addContext (CREATE_STACK);
                 throw me;
         } else {
-                LOGGER.debug("ERROR STATUS = " + e.getStatus() + ",\n" + e.getMessage() + "\n" + e.getLocalizedMessage());
+                logger.debug("ERROR STATUS = {},\n{}\n{}", e.getStatus(), e.getMessage(), e.getLocalizedMessage());
                 throw heatExceptionToMsoException (e, CREATE_STACK);
             }
         } catch (OpenStackConnectException e) {          
@@ -333,7 +332,7 @@ public class MsoHeatUtils extends MsoCommonUtils implements VduPlugin{
         } else {
             // Get initial status, since it will have been null after the create.
             heatStack = queryHeatStack (heatClient, canonicalName);
-            LOGGER.debug (heatStack.getStackStatus ());
+            logger.debug (heatStack.getStackStatus ());
         }
         return new StackInfoMapper(heatStack).map();
     }
@@ -347,28 +346,30 @@ public class MsoHeatUtils extends MsoCommonUtils implements VduPlugin{
                int deletePollTimeout = pollTimeout;
                boolean createTimedOut = false;
                StringBuilder stackErrorStatusReason = new StringBuilder("");
-               LOGGER.debug("createPollInterval=" + createPollInterval + ", pollTimeout=" + pollTimeout);
+      logger.debug("createPollInterval={}, pollTimeout={}", createPollInterval, pollTimeout);
 
                while (true) {
                    try {
                        heatStack = queryHeatStack (heatClient, canonicalName);
-                       LOGGER.debug (heatStack.getStackStatus () + " (" + canonicalName + ")");
-                       try {
-                           LOGGER.debug("Current stack " + this.getOutputsAsStringBuilder(heatStack).toString());
-                       } catch (Exception e) {
-                           LOGGER.debug("an error occurred trying to print out the current outputs of the stack", e);
+            logger.debug("{} ({})", heatStack.getStackStatus(), canonicalName);
+            try {
+                logger.debug("Current stack {}", this.getOutputsAsStringBuilder(heatStack).toString());
+            } catch (Exception e) {
+                           logger.debug("an error occurred trying to print out the current outputs of the stack", e);
                        }
 
                        if ("CREATE_IN_PROGRESS".equals (heatStack.getStackStatus ())) {                       
                            if (pollTimeout <= 0) {
-                               LOGGER.error (MessageEnum.RA_CREATE_STACK_TIMEOUT, cloudSiteId, tenantId, stackName, heatStack.getStackStatus (), "", "", MsoLogger.ErrorCode.AvailabilityError, "Create stack timeout");
-                               createTimedOut = true;
+                    logger.error("{} Cloud site: {} Tenant: {} Stack: {} Stack status: {} {} Create stack timeout",
+                        MessageEnum.RA_CREATE_STACK_TIMEOUT, cloudSiteId, tenantId, stackName,
+                        heatStack.getStackStatus(), MsoLogger.ErrorCode.AvailabilityError.getValue());
+                    createTimedOut = true;
                                break;
                            }
                            sleep(createPollInterval * 1000L);
                            pollTimeout -= createPollInterval;
-                               LOGGER.debug("pollTimeout remaining: " + pollTimeout);
-                       } else {                    
+                logger.debug("pollTimeout remaining: {}", pollTimeout);
+            } else {
                                stackErrorStatusReason.append("Stack error (" + heatStack.getStackStatus() + "): " + heatStack.getStackStatusReason());
                            break;
                        }
@@ -377,33 +378,38 @@ public class MsoHeatUtils extends MsoCommonUtils implements VduPlugin{
                        // Try to roll back the stack
                        if (!backout)
                        {
-                               LOGGER.warn(MessageEnum.RA_CREATE_STACK_ERR, "Create Stack errored, stack deletion suppressed", "", "", MsoLogger.ErrorCode.BusinessProcesssError, "Exception in Create Stack, stack deletion suppressed");
-                       }
+              logger.warn("{} Exception in Create Stack, stack deletion suppressed {}",
+                  MessageEnum.RA_CREATE_STACK_ERR, MsoLogger.ErrorCode.BusinessProcesssError.getValue());
+          }
                        else
                        {
                                try {
-                                       LOGGER.debug("Create Stack error - unable to query for stack status - attempting to delete stack: " + canonicalName + " - This will likely fail and/or we won't be able to query to see if delete worked");
-                                       OpenStackRequest <Void> request = heatClient.getStacks ().deleteByName (canonicalName);
+                logger.debug(
+                    "Create Stack error - unable to query for stack status - attempting to delete stack: {}"
+                        + " - This will likely fail and/or we won't be able to query to see if delete worked",
+                    canonicalName);
+                OpenStackRequest <Void> request = heatClient.getStacks ().deleteByName (canonicalName);
                                        executeAndRecordOpenstackRequest (request);
                                        boolean deleted = false;
                                        while (!deleted) {
                                                try {
                                                        heatStack = queryHeatStack(heatClient, canonicalName);
                                                        if (heatStack != null) {
-                                                               LOGGER.debug(heatStack.getStackStatus());
-                                                               if ("DELETE_IN_PROGRESS".equals(heatStack.getStackStatus())) {
+                      logger.debug(heatStack.getStackStatus());
+                      if ("DELETE_IN_PROGRESS".equals(heatStack.getStackStatus())) {
                                                                        if (deletePollTimeout <= 0) {
-                                                                               LOGGER.error (MessageEnum.RA_CREATE_STACK_TIMEOUT, cloudSiteId, tenantId, stackName,
-                                                                                               heatStack.getStackStatus (), "", "", MsoLogger.ErrorCode.AvailabilityError,
-                                                                                               "Rollback: DELETE stack timeout");
-                                                                               break;
+                            logger.error(
+                                "{} Cloud site: {} Tenant: {} Stack: {} Stack status: {} {} Rollback: DELETE stack timeout",
+                                MessageEnum.RA_CREATE_STACK_TIMEOUT, cloudSiteId, tenantId, stackName,
+                                heatStack.getStackStatus(), MsoLogger.ErrorCode.AvailabilityError.getValue());
+                            break;
                                                                        } else {
                                                                                sleep(deletePollInterval * 1000L);
                                                                                deletePollTimeout -= deletePollInterval;
                                                                        }
                                                                } else if ("DELETE_COMPLETE".equals(heatStack.getStackStatus())){
-                                                                       LOGGER.debug("DELETE_COMPLETE for " + canonicalName);
-                                                                       deleted = true;
+                          logger.debug("DELETE_COMPLETE for {}", canonicalName);
+                          deleted = true;
                                                                        continue;
                                                                } else {
                                                                        //got a status other than DELETE_IN_PROGRESS or DELETE_COMPLETE - so break and evaluate
@@ -411,21 +417,22 @@ public class MsoHeatUtils extends MsoCommonUtils implements VduPlugin{
                                                                }
                                                        } else {
                                                                // assume if we can't find it - it's deleted
-                                                               LOGGER.debug("heatStack returned null - assume the stack " + canonicalName + " has been deleted");
-                                                               deleted = true;
+                      logger.debug("heatStack returned null - assume the stack {} has been deleted", canonicalName);
+                      deleted = true;
                                                                continue;
                                                        }
 
                                                } catch (Exception e3) {
                                                        // Just log this one. We will report the original exception.
-                                                       LOGGER.error (MessageEnum.RA_CREATE_STACK_ERR, "Create Stack: Nested exception rolling back stack: " + e3, "", "", MsoLogger.ErrorCode.BusinessProcesssError, "Create Stack: Nested exception rolling back stack on error on query");
-
+                    logger.error("{} Create Stack: Nested exception rolling back stack: {} ",
+                        MessageEnum.RA_CREATE_STACK_ERR, MsoLogger.ErrorCode.BusinessProcesssError.getValue(), e3);
                                                }
                                        }
                                } catch (Exception e2) {
                                        // Just log this one. We will report the original exception.
-                                       LOGGER.error (MessageEnum.RA_CREATE_STACK_ERR, "Create Stack: Nested exception rolling back stack: " + e2, "", "", MsoLogger.ErrorCode.BusinessProcesssError, "Create Stack: Nested exception rolling back stack");
-                               }
+                logger.error("{} Create Stack: Nested exception rolling back stack: {} ",
+                    MessageEnum.RA_CREATE_STACK_ERR, MsoLogger.ErrorCode.BusinessProcesssError.getValue(), e2);
+            }
                        }
 
                        // Propagate the original exception from Stack Query.
@@ -435,63 +442,73 @@ public class MsoHeatUtils extends MsoCommonUtils implements VduPlugin{
                }
 
                if (!"CREATE_COMPLETE".equals (heatStack.getStackStatus ())) {
-                   LOGGER.error (MessageEnum.RA_CREATE_STACK_ERR, "Create Stack error:  Polling complete with non-success status: "
-                                 + heatStack.getStackStatus () + ", " + heatStack.getStackStatusReason (), "", "", MsoLogger.ErrorCode.BusinessProcesssError, "Create Stack error");
+        logger.error("{} Create Stack error:  Polling complete with non-success status: {}, {} {} ",
+            MessageEnum.RA_CREATE_STACK_ERR, heatStack.getStackStatus(), heatStack.getStackStatusReason(),
+            MsoLogger.ErrorCode.BusinessProcesssError.getValue());
 
                    // Rollback the stack creation, since it is in an indeterminate state.
                    if (!backout)
                    {
-                       LOGGER.warn(MessageEnum.RA_CREATE_STACK_ERR, "Create Stack errored, stack deletion suppressed", "", "", MsoLogger.ErrorCode.BusinessProcesssError, "Create Stack error, stack deletion suppressed");
-                   }
+            logger.warn(
+                "{} Create Stack errored, stack deletion suppressed {} Create Stack error, stack deletion suppressed",
+                MessageEnum.RA_CREATE_STACK_ERR, MsoLogger.ErrorCode.BusinessProcesssError.getValue());
+        }
                    else
                    {
                        try {
-                               LOGGER.debug("Create Stack errored - attempting to DELETE stack: " + canonicalName);
-                               LOGGER.debug("deletePollInterval=" + deletePollInterval + ", deletePollTimeout=" + deletePollTimeout);
-                               OpenStackRequest <Void> request = heatClient.getStacks ().deleteByName (canonicalName);
+              logger.debug("Create Stack errored - attempting to DELETE stack: {}", canonicalName);
+              logger.debug("deletePollInterval={}, deletePollTimeout={}", deletePollInterval, deletePollTimeout);
+              OpenStackRequest <Void> request = heatClient.getStacks ().deleteByName (canonicalName);
                                executeAndRecordOpenstackRequest (request);
                                boolean deleted = false;
                                while (!deleted) {
                                        try {
                                                heatStack = queryHeatStack(heatClient, canonicalName);
                                                if (heatStack != null) {
-                                                       LOGGER.debug(heatStack.getStackStatus() + " (" + canonicalName + ")");
-                                                       if ("DELETE_IN_PROGRESS".equals(heatStack.getStackStatus())) {
+                    logger.debug("{} ({})", heatStack.getStackStatus(), canonicalName);
+                    if ("DELETE_IN_PROGRESS".equals(heatStack.getStackStatus())) {
                                                                if (deletePollTimeout <= 0) {
-                                                                       LOGGER.error (MessageEnum.RA_CREATE_STACK_TIMEOUT, cloudSiteId, tenantId, stackName,
-                                                                                       heatStack.getStackStatus (), "", "", MsoLogger.ErrorCode.AvailabilityError,
-                                                                                       "Rollback: DELETE stack timeout");
-                                                                       break;
+                        logger.error(
+                            "{} Cloud site: {} Tenant: {} Stack: {} Stack status: {} {} Rollback: DELETE stack timeout",
+                            MessageEnum.RA_CREATE_STACK_TIMEOUT, cloudSiteId, tenantId, stackName,
+                            heatStack.getStackStatus(), MsoLogger.ErrorCode.AvailabilityError.getValue());
+                        break;
                                                                } else {
                                                                        sleep(deletePollInterval * 1000L);
                                                                        deletePollTimeout -= deletePollInterval;
-                                                                       LOGGER.debug("deletePollTimeout remaining: " + deletePollTimeout);
-                                                               }
+                        logger.debug("deletePollTimeout remaining: {}", deletePollTimeout);
+                    }
                                                        } else if ("DELETE_COMPLETE".equals(heatStack.getStackStatus())){
-                                                               LOGGER.debug("DELETE_COMPLETE for " + canonicalName);
-                                                               deleted = true;
+                      logger.debug("DELETE_COMPLETE for {}", canonicalName);
+                      deleted = true;
                                                                continue;
                                                        } else if ("DELETE_FAILED".equals(heatStack.getStackStatus())) {
                                                                // Warn about this (?) - but still throw the original exception
-                                                               LOGGER.warn(MessageEnum.RA_CREATE_STACK_ERR, "Create Stack errored, stack deletion FAILED", "", "", MsoLogger.ErrorCode.BusinessProcesssError, "Create Stack error, stack deletion FAILED");
-                                                               LOGGER.debug("Stack deletion FAILED on a rollback of a create - " + canonicalName + ", status=" + heatStack.getStackStatus() + ", reason=" + heatStack.getStackStatusReason());
-                                                               break;
+                      logger.warn(
+                          "{} Create Stack errored, stack deletion FAILED {} Create Stack error, stack deletion FAILED",
+                          MessageEnum.RA_CREATE_STACK_ERR, MsoLogger.ErrorCode.BusinessProcesssError.getValue());
+                      logger.debug("Stack deletion FAILED on a rollback of a create - {}, status={}, reason={}",
+                          canonicalName, heatStack.getStackStatus(), heatStack.getStackStatusReason());
+                      break;
                                                        } else {
                                                                //got a status other than DELETE_IN_PROGRESS or DELETE_COMPLETE - so break and evaluate
                                                                break;
                                                        }
                                                } else {
                                                        // assume if we can't find it - it's deleted
-                                                       LOGGER.debug("heatStack returned null - assume the stack " + canonicalName + " has been deleted");
-                                                       deleted = true;
+                    logger.debug("heatStack returned null - assume the stack {} has been deleted", canonicalName);
+                    deleted = true;
                                                        continue;
                                                }
 
                                        } catch (MsoException me2) {
                                                // We got an exception on the delete - don't throw this exception - throw the original - just log.
-                                               LOGGER.debug("Exception thrown trying to delete " + canonicalName + " on a create->rollback: " + me2.getContextMessage(), me2);
-                                               LOGGER.warn(MessageEnum.RA_CREATE_STACK_ERR, "Create Stack errored, then stack deletion FAILED - exception thrown", "", "", MsoLogger.ErrorCode.BusinessProcesssError, me2.getContextMessage());
-                                       }
+                  logger.debug("Exception thrown trying to delete {} on a create->rollback: {} ", canonicalName,
+                      me2.getContextMessage(), me2);
+                  logger.warn("{} Create Stack errored, then stack deletion FAILED - exception thrown {} {}",
+                      MessageEnum.RA_CREATE_STACK_ERR, MsoLogger.ErrorCode.BusinessProcesssError.getValue(),
+                      me2.getContextMessage());
+              }
 
                                } // end while !deleted
                                StringBuilder errorContextMessage;
@@ -507,8 +524,9 @@ public class MsoHeatUtils extends MsoCommonUtils implements VduPlugin{
                                }
                        } catch (Exception e2) {
                                // shouldn't happen - but handle
-                               LOGGER.error (MessageEnum.RA_CREATE_STACK_ERR, "Create Stack: Nested exception rolling back stack: " + e2, "", "", MsoLogger.ErrorCode.BusinessProcesssError, "Exception in Create Stack: rolling back stack");
-                       }
+              logger.error("{} Create Stack: Nested exception rolling back stack: {} ", MessageEnum.RA_CREATE_STACK_ERR,
+                  MsoLogger.ErrorCode.BusinessProcesssError.getValue(), e2);
+          }
                    }
                    MsoOpenstackException me = new MsoOpenstackException(0, "", stackErrorStatusReason.toString());
                    me.addContext(CREATE_STACK);
@@ -529,27 +547,28 @@ public class MsoHeatUtils extends MsoCommonUtils implements VduPlugin{
      * @throws MsoOpenstackException Thrown if the Openstack API call returns an exception.
      */
     public StackInfo queryStack (String cloudSiteId, String tenantId, String stackName) throws MsoException {
-        LOGGER.debug ("Query HEAT stack: " + stackName + " in tenant " + tenantId);
+        logger.debug ("Query HEAT stack: {} in tenant {}", stackName, tenantId);
 
         // Obtain the cloud site information where we will create the stack
         CloudSite cloudSite = cloudConfig.getCloudSite(cloudSiteId).orElseThrow(
                 () -> new MsoCloudSiteNotFound(cloudSiteId));
-        LOGGER.debug("Found: " + cloudSite.toString());
+        logger.debug("Found: {}", cloudSite.toString());
 
         // Get a Heat client. They are cached between calls (keyed by tenantId:cloudId)
         Heat heatClient = null;
         try {
             heatClient = getHeatClient (cloudSite, tenantId);
             if (heatClient != null) {
-               LOGGER.debug("Found: " + heatClient.toString());
+                logger.debug("Found: {}", heatClient.toString());
             }
         } catch (MsoTenantNotFound e) {
             // Tenant doesn't exist, so stack doesn't either
-            LOGGER.debug ("Tenant with id " + tenantId + "not found.", e);
+            logger.debug ("Tenant with id " + tenantId + "not found.", e);
             return new StackInfo (stackName, HeatStatus.NOTFOUND);
         } catch (MsoException me) {
             // Got an Openstack error. Propagate it
-            LOGGER.error (MessageEnum.RA_CONNECTION_EXCEPTION, "OpenStack", "Openstack Exception on Token request: " + me, "Openstack", "", MsoLogger.ErrorCode.AvailabilityError, "Connection Exception");
+            logger.error("{} {} Openstack Exception on Token request: ", MessageEnum.RA_CONNECTION_EXCEPTION,
+                MsoLogger.ErrorCode.AvailabilityError.getValue(), me);
             me.addContext ("QueryStack");
             throw me;
         }
@@ -595,22 +614,23 @@ public class MsoHeatUtils extends MsoCommonUtils implements VduPlugin{
         // Obtain the cloud site information where we will create the stack
         CloudSite cloudSite = cloudConfig.getCloudSite(cloudSiteId).orElseThrow(
                 () -> new MsoCloudSiteNotFound(cloudSiteId));
-        LOGGER.debug("Found: " + cloudSite.toString());
+        logger.debug("Found: {}", cloudSite.toString());
 
         // Get a Heat client. They are cached between calls (keyed by tenantId:cloudId)
         Heat heatClient = null;
         try {
             heatClient = getHeatClient (cloudSite, tenantId);
             if (heatClient != null) {
-               LOGGER.debug("Found: " + heatClient.toString());
+                logger.debug("Found: {}", heatClient.toString());
             }
         } catch (MsoTenantNotFound e) {
             // Tenant doesn't exist, so stack doesn't either
-            LOGGER.debug ("Tenant with id " + tenantId + "not found.", e);
+            logger.debug ("Tenant with id " + tenantId + "not found.", e);
             return new StackInfo (stackName, HeatStatus.NOTFOUND);
         } catch (MsoException me) {
             // Got an Openstack error. Propagate it
-            LOGGER.error (MessageEnum.RA_CONNECTION_EXCEPTION, "Openstack", "Openstack Exception on Token request: " + me, "Openstack", "", MsoLogger.ErrorCode.AvailabilityError, "Connection Exception");
+            logger.error("{} {} Openstack Exception on Token request: ", MessageEnum.RA_CONNECTION_EXCEPTION,
+                MsoLogger.ErrorCode.AvailabilityError.getValue(), me);
             me.addContext (DELETE_STACK);
             throw me;
         }
@@ -635,7 +655,7 @@ public class MsoHeatUtils extends MsoCommonUtils implements VduPlugin{
                 request = heatClient.getStacks ().deleteByName (canonicalName);
             }
             else {
-                LOGGER.debug ("Heat Client is NULL" );
+                logger.debug ("Heat Client is NULL" );
             }
 
             executeAndRecordOpenstackRequest (request);
@@ -668,7 +688,7 @@ public class MsoHeatUtils extends MsoCommonUtils implements VduPlugin{
             // When querying by canonical name, Openstack returns DELETE_COMPLETE status
             // instead of "404" (which would result from query by stack name).
             while (heatStack != null && !"DELETE_COMPLETE".equals (heatStack.getStackStatus ())) {
-                LOGGER.debug ("Stack status: " + heatStack.getStackStatus ());
+                logger.debug ("Stack status: {}", heatStack.getStackStatus ());
 
                 if ("DELETE_FAILED".equals (heatStack.getStackStatus ())) {
                     // Throw a 'special case' of MsoOpenstackException to report the Heat status
@@ -685,7 +705,9 @@ public class MsoHeatUtils extends MsoCommonUtils implements VduPlugin{
                 }
 
                 if (pollTimeout <= 0) {
-                    LOGGER.error (MessageEnum.RA_DELETE_STACK_TIMEOUT, cloudSiteId, tenantId, stackName, heatStack.getStackStatus (), "", "", MsoLogger.ErrorCode.AvailabilityError, "Delete Stack Timeout");
+                    logger.error("{} Cloud site: {} Tenant: {} Stack: {} Stack status: {} {} Delete Stack Timeout",
+                        MessageEnum.RA_DELETE_STACK_TIMEOUT, cloudSiteId, tenantId, stackName,
+                        heatStack.getStackStatus(), MsoLogger.ErrorCode.AvailabilityError.getValue());
 
                     // Throw a 'special case' of MsoOpenstackException to report the Heat status
                     MsoOpenstackException me = new MsoOpenstackException (0, "", "Stack Deletion Timeout");
@@ -700,7 +722,7 @@ public class MsoHeatUtils extends MsoCommonUtils implements VduPlugin{
                 sleep(pollInterval * 1000L);
 
                 pollTimeout -= pollInterval;
-                LOGGER.debug("pollTimeout remaining: " + pollTimeout);
+                logger.debug("pollTimeout remaining: {}", pollTimeout);
 
                 heatStack = queryHeatStack (heatClient, canonicalName);
             }
@@ -753,7 +775,7 @@ public class MsoHeatUtils extends MsoCommonUtils implements VduPlugin{
         } catch (OpenStackResponseException e) {
             if (e.getStatus () == 404) {
                 // Not sure if this can happen, but return an empty list
-                LOGGER.debug ("queryAllStacks - stack not found: ");
+                logger.debug ("queryAllStacks - stack not found: ");
                 return new ArrayList <> ();
             } else {
                 // Convert the OpenStackResponseException to an MsoOpenstackException
@@ -803,7 +825,8 @@ public class MsoHeatUtils extends MsoCommonUtils implements VduPlugin{
         if (missingParams != null) {
             // Problem - missing one or more required parameters
             String error = "Missing Required inputs for HEAT Template: " + missingParams;
-            LOGGER.error (MessageEnum.RA_MISSING_PARAM, missingParams + " for HEAT Template", "", "", MsoLogger.ErrorCode.SchemaError, "Missing Required inputs for HEAT Template: " + missingParams);
+            logger.error("{} for HEAT Template {} Missing Required inputs for HEAT Template: {}",
+                MessageEnum.RA_MISSING_PARAM, MsoLogger.ErrorCode.SchemaError.getValue(), missingParams);
             throw new IllegalArgumentException (error);
         }
 
@@ -821,9 +844,8 @@ public class MsoHeatUtils extends MsoCommonUtils implements VduPlugin{
         }
 
         if (!extraParams.isEmpty ()) {
-            LOGGER.warn (MessageEnum.RA_GENERAL_WARNING, "Heat Stack (" + heatTemplate.getTemplateName ()
-                         + ") extra input params received: "
-                         + extraParams, "", "", MsoLogger.ErrorCode.DataError, "Heat Stack (" + heatTemplate.getTemplateName () + ") extra input params received: "+ extraParams);
+            logger.warn("{} Heat Stack ({}) extra input params received: {} {}", MessageEnum.RA_GENERAL_WARNING,
+                heatTemplate.getTemplateName(), extraParams, MsoLogger.ErrorCode.DataError.getValue());
         }
 
         return updatedParams;
@@ -851,10 +873,10 @@ public class MsoHeatUtils extends MsoCommonUtils implements VduPlugin{
 
         // Obtain an MSO token for the tenant
         CloudIdentity cloudIdentity = cloudSite.getIdentityService();
-        LOGGER.debug("Found: " + cloudIdentity.toString());
+        logger.debug("Found: {}", cloudIdentity.toString());
         MsoTenantUtils tenantUtils = tenantUtilsFactory.getTenantUtilsByServerType(cloudIdentity.getIdentityServerType());
         String keystoneUrl = tenantUtils.getKeystoneUrl(cloudId, cloudIdentity);
-        LOGGER.debug("keystoneUrl=" + keystoneUrl);
+        logger.debug("keystoneUrl={}", keystoneUrl);
         String heatUrl = null;
         String tokenId = null;
         Calendar expiration = null;
@@ -873,19 +895,20 @@ public class MsoHeatUtils extends MsoCommonUtils implements VduPlugin{
                        try {
                                // Isolate trying to printout the region IDs
                                try {
-                                       LOGGER.debug("access=" + access.toString());
-                                       for (Access.Service service : access.getServiceCatalog()) {
+                  logger.debug("access={}", access.toString());
+                  for (Access.Service service : access.getServiceCatalog()) {
                                                List<Access.Service.Endpoint> endpoints = service.getEndpoints();
                                                for (Access.Service.Endpoint endpoint : endpoints) {
-                                                       LOGGER.debug("AIC returned region=" + endpoint.getRegion());
-                                               }
+                      logger.debug("AIC returned region={}", endpoint.getRegion());
+                  }
                                        }
                                } catch (Exception e) {
-                                       LOGGER.debug("Encountered an error trying to printout Access object returned from AIC. " + e.getMessage());
-                               }
+                  logger.debug("Encountered an error trying to printout Access object returned from AIC. {}",
+                      e.getMessage(), e);
+              }
                            heatUrl = KeystoneUtils.findEndpointURL (access.getServiceCatalog (), "orchestration", region, "public");
-                           LOGGER.debug("heatUrl=" + heatUrl + ", region=" + region);
-                       } catch (RuntimeException e) {
+                logger.debug("heatUrl={}, region={}", heatUrl, region);
+            } catch (RuntimeException e) {
                            // This comes back for not found (probably an incorrect region ID)
                            String error = "AIC did not match an orchestration service for: region=" + region + ",cloud=" + cloudIdentity.getIdentityUrl();
                            throw new MsoAdapterException (error, e);
@@ -959,7 +982,7 @@ public class MsoHeatUtils extends MsoCommonUtils implements VduPlugin{
             return executeAndRecordOpenstackRequest (request);
         } catch (OpenStackResponseException e) {
             if (e.getStatus () == 404) {
-                LOGGER.debug ("queryHeatStack - stack not found: " + stackName);
+                logger.debug ("queryHeatStack - stack not found: {}", stackName);
                 return null;
             } else {
                 // Convert the OpenStackResponseException to an MsoOpenstackException
@@ -974,8 +997,8 @@ public class MsoHeatUtils extends MsoCommonUtils implements VduPlugin{
 
        public Map<String, Object> queryStackForOutputs(String cloudSiteId,
                        String tenantId, String stackName) throws MsoException {
-               LOGGER.debug("MsoHeatUtils.queryStackForOutputs)");
-               StackInfo heatStack = this.queryStack(cloudSiteId, tenantId, stackName);
+      logger.debug("MsoHeatUtils.queryStackForOutputs)");
+      StackInfo heatStack = this.queryStack(cloudSiteId, tenantId, stackName);
                if (heatStack == null || heatStack.getStatus() == HeatStatus.NOTFOUND) {
                        return null;
                }
@@ -998,31 +1021,31 @@ public class MsoHeatUtils extends MsoCommonUtils implements VduPlugin{
                                                String str = this.convertNode((JsonNode) obj);
                                                inputs.put(key, str);
                                        } catch (Exception e) {
-                                               LOGGER.debug("DANGER WILL ROBINSON: unable to convert value for JsonNode "+ key, e);
-                                               //effect here is this value will not have been copied to the inputs - and therefore will error out downstream
+              logger.debug("DANGER WILL ROBINSON: unable to convert value for JsonNode {} ", key, e);
+              //effect here is this value will not have been copied to the inputs - and therefore will error out downstream
                                        }
                                } else if (obj instanceof java.util.LinkedHashMap) {
-                                       LOGGER.debug("LinkedHashMap - this is showing up as a LinkedHashMap instead of JsonNode");
-                                       try {
+            logger.debug("LinkedHashMap - this is showing up as a LinkedHashMap instead of JsonNode");
+            try {
                                                String str = JSON_MAPPER.writeValueAsString(obj);
                                                inputs.put(key, str);
                                        } catch (Exception e) {
-                                               LOGGER.debug("DANGER WILL ROBINSON: unable to convert value for LinkedHashMap "+ key, e);
-                                       }
+              logger.debug("DANGER WILL ROBINSON: unable to convert value for LinkedHashMap {} ", key, e);
+          }
                                } else if (obj instanceof Integer) {
                                        try {
                                                String str = "" + obj;
                                                inputs.put(key, str);
                                        } catch (Exception e) {
-                                               LOGGER.debug("DANGER WILL ROBINSON: unable to convert value for Integer "+ key, e);
-                                       }
+              logger.debug("DANGER WILL ROBINSON: unable to convert value for Integer {} ", key, e);
+          }
                                } else {
                                        try {
                                                String str = obj.toString();
                                                inputs.put(key, str);
                                        } catch (Exception e) {
-                                               LOGGER.debug("DANGER WILL ROBINSON: unable to convert value for Other "+ key +" (" + e.getMessage() + ")", e);
-                                               //effect here is this value will not have been copied to the inputs - and therefore will error out downstream
+              logger.debug("DANGER WILL ROBINSON: unable to convert value for Other {} ({}) ", key, e.getMessage(), e);
+              //effect here is this value will not have been copied to the inputs - and therefore will error out downstream
                                        }
                                }
                        }
@@ -1057,8 +1080,8 @@ public class MsoHeatUtils extends MsoCommonUtils implements VduPlugin{
                                                String str = params.get(key).toString();
                                                sb.append("\n").append(key).append("=").append(str);
                                        } catch (Exception e) {
-                                               LOGGER.debug("Exception :",e);
-                                       }
+              logger.debug("Exception :", e);
+          }
                                }
                        }
                }
@@ -1071,8 +1094,8 @@ public class MsoHeatUtils extends MsoCommonUtils implements VduPlugin{
                        final String json = JSON_MAPPER.writeValueAsString(obj);
                        return json;
                } catch (Exception e) {
-                       LOGGER.debug("Error converting json to string " + e.getMessage(), e);
-               }
+        logger.debug("Error converting json to string {} ", e.getMessage(), e);
+    }
                return "[Error converting json to string]";
        }
 
@@ -1108,7 +1131,7 @@ public class MsoHeatUtils extends MsoCommonUtils implements VduPlugin{
                                        String str = JSON_MAPPER.writeValueAsString(obj);
                                        sb.append(str).append(" (a java.util.LinkedHashMap)");
                                } catch (Exception e) {
-                                       LOGGER.debug("Exception :",e);
+            logger.debug("Exception :", e);
                                        sb.append("(a LinkedHashMap value that would not convert nicely)");
                                }
                        } else if (obj instanceof Integer) {
@@ -1116,8 +1139,8 @@ public class MsoHeatUtils extends MsoCommonUtils implements VduPlugin{
                                try {
                                        str = obj.toString() + " (an Integer)\n";
                                } catch (Exception e) {
-                                       LOGGER.debug("Exception :",e);
-                                       str = "(an Integer unable to call .toString() on)";
+            logger.debug("Exception :", e);
+            str = "(an Integer unable to call .toString() on)";
                                }
                                sb.append(str);
                        } else if (obj instanceof ArrayList) {
@@ -1125,8 +1148,8 @@ public class MsoHeatUtils extends MsoCommonUtils implements VduPlugin{
                                try {
                                        str = obj.toString() + " (an ArrayList)";
                                } catch (Exception e) {
-                                       LOGGER.debug("Exception :",e);
-                                       str = "(an ArrayList unable to call .toString() on?)";
+            logger.debug("Exception :", e);
+            str = "(an ArrayList unable to call .toString() on?)";
                                }
                                sb.append(str);
                        } else if (obj instanceof Boolean) {
@@ -1134,8 +1157,8 @@ public class MsoHeatUtils extends MsoCommonUtils implements VduPlugin{
                                try {
                                        str = obj.toString() + " (a Boolean)";
                                } catch (Exception e) {
-                                       LOGGER.debug("Exception :",e);
-                                       str = "(an Boolean unable to call .toString() on?)";
+            logger.debug("Exception :", e);
+            str = "(an Boolean unable to call .toString() on?)";
                                }
                                sb.append(str);
                        }
@@ -1144,8 +1167,8 @@ public class MsoHeatUtils extends MsoCommonUtils implements VduPlugin{
                                try {
                                        str = obj.toString() + " (unknown Object type)";
                                } catch (Exception e) {
-                                       LOGGER.debug("Exception :",e);
-                                       str = "(a value unable to call .toString() on?)";
+            logger.debug("Exception :", e);
+            str = "(a value unable to call .toString() on?)";
                                }
                                sb.append(str);
                        }
@@ -1163,44 +1186,44 @@ public class MsoHeatUtils extends MsoCommonUtils implements VduPlugin{
                for (String key : otherStackOutputs.keySet()) {
                        if (paramNames != null) {
                                if (!paramNames.contains(key) && !aliases.containsKey(key)) {
-                                       LOGGER.debug("\tParameter " + key + " is NOT defined to be in the template - do not copy to inputs");
-                                       continue;
+            logger.debug("\tParameter {} is NOT defined to be in the template - do not copy to inputs", key);
+            continue;
                                }
                                if (aliases.containsKey(key)) {
-                                       LOGGER.debug("Found an alias! Will move " + key + " to " + aliases.get(key));
-                                       Object obj = otherStackOutputs.get(key);
+            logger.debug("Found an alias! Will move {} to {}", key, aliases.get(key));
+            Object obj = otherStackOutputs.get(key);
                                        key = aliases.get(key);
                                        otherStackOutputs.put(key, obj);
                                }
                        }
                        if (!inputs.containsKey(key)) {
                                Object obj = otherStackOutputs.get(key);
-                               LOGGER.debug("\t**Adding " + key + " to inputs (.toString()=" + obj.toString());
-                               if (obj instanceof String) {
-                                       LOGGER.debug("\t\t**A String");
-                                       inputs.put(key, obj);
+          logger.debug("\t**Adding {} to inputs (.toString()={}", key, obj.toString());
+          if (obj instanceof String) {
+              logger.debug("\t\t**A String");
+              inputs.put(key, obj);
                                } else if (obj instanceof Integer) {
-                                       LOGGER.debug("\t\t**An Integer");
-                                       inputs.put(key, obj);
+              logger.debug("\t\t**An Integer");
+              inputs.put(key, obj);
                                } else if (obj instanceof JsonNode) {
-                                       LOGGER.debug("\t\t**A JsonNode");
-                                       inputs.put(key, obj);
+              logger.debug("\t\t**A JsonNode");
+              inputs.put(key, obj);
                                } else if (obj instanceof Boolean) {
-                                       LOGGER.debug("\t\t**A Boolean");
-                                       inputs.put(key, obj);
+              logger.debug("\t\t**A Boolean");
+              inputs.put(key, obj);
                                } else if (obj instanceof java.util.LinkedHashMap) {
-                                       LOGGER.debug("\t\t**A java.util.LinkedHashMap **");
-                                       inputs.put(key, obj);
+              logger.debug("\t\t**A java.util.LinkedHashMap **");
+              inputs.put(key, obj);
                                } else if (obj instanceof java.util.ArrayList) {
-                                       LOGGER.debug("\t\t**An ArrayList");
-                                       inputs.put(key, obj);
+              logger.debug("\t\t**An ArrayList");
+              inputs.put(key, obj);
                                } else {
-                                       LOGGER.debug("\t\t**UNKNOWN OBJECT TYPE");
-                                       inputs.put(key, obj);
+              logger.debug("\t\t**UNKNOWN OBJECT TYPE");
+              inputs.put(key, obj);
                                }
                        } else {
-                               LOGGER.debug("key=" + key + " is already in the inputs - will not overwrite");
-                       }
+          logger.debug("key={} is already in the inputs - will not overwrite", key);
+      }
                }
                return;
        }
@@ -1239,51 +1262,52 @@ public class MsoHeatUtils extends MsoCommonUtils implements VduPlugin{
                HashMap<String, HeatTemplateParam> paramAliases = new HashMap<>();
 
                if (inputs == null) {
-                       LOGGER.debug("convertInputMap - inputs is null - nothing to do here");
-                       return new HashMap<>();
+        logger.debug("convertInputMap - inputs is null - nothing to do here");
+        return new HashMap<>();
                }
 
-               LOGGER.debug("convertInputMap in MsoHeatUtils called, with " + inputs.size() + " inputs, and template " + template.getArtifactUuid());
-               try {
-                       LOGGER.debug(template.toString());
-                       Set<HeatTemplateParam> paramSet = template.getParameters();
-                       LOGGER.debug("paramSet has " + paramSet.size() + " entries");
-               } catch (Exception e) {
-                       LOGGER.debug("Exception occurred in convertInputMap:" + e.getMessage(), e);
-               }
+      logger.debug("convertInputMap in MsoHeatUtils called, with {} inputs, and template {}", inputs.size(),
+          template.getArtifactUuid());
+      try {
+          logger.debug(template.toString());
+          Set<HeatTemplateParam> paramSet = template.getParameters();
+          logger.debug("paramSet has {} entries", paramSet.size());
+      } catch (Exception e) {
+          logger.debug("Exception occurred in convertInputMap:" + e.getMessage(), e);
+      }
 
                for (HeatTemplateParam htp : template.getParameters()) {
-                       LOGGER.debug("Adding " + htp.getParamName());
-                       params.put(htp.getParamName(), htp);
+        logger.debug("Adding {}", htp.getParamName());
+        params.put(htp.getParamName(), htp);
                        if (htp.getParamAlias() != null && !"".equals(htp.getParamAlias())) {
-                               LOGGER.debug("\tFound ALIAS " + htp.getParamName() + "->" + htp.getParamAlias());
-                               paramAliases.put(htp.getParamAlias(), htp);
+          logger.debug("\tFound ALIAS {} -> {}", htp.getParamName(), htp.getParamAlias());
+          paramAliases.put(htp.getParamAlias(), htp);
                        }
                }
-               LOGGER.debug("Now iterate through the inputs...");
-               for (String key : inputs.keySet()) {
-                       LOGGER.debug("key=" + key);
-                       boolean alias = false;
+      logger.debug("Now iterate through the inputs...");
+      for (String key : inputs.keySet()) {
+        logger.debug("key={}", key);
+        boolean alias = false;
                        String realName = null;
                        if (!params.containsKey(key)) {
-                               LOGGER.debug(key + " is not a parameter in the template! - check for an alias");
-                               // add check here for an alias
+          logger.debug("{} is not a parameter in the template! - check for an alias", key);
+          // add check here for an alias
                                if (!paramAliases.containsKey(key)) {
-                                       LOGGER.debug("The parameter " + key + " is in the inputs, but it's not a parameter for this template - omit");
-                                       continue;
+            logger.debug("The parameter {} is in the inputs, but it's not a parameter for this template - omit", key);
+            continue;
                                } else {
                                        alias = true;
                                        realName = paramAliases.get(key).getParamName();
-                                       LOGGER.debug("FOUND AN ALIAS! Will use " + realName + " in lieu of give key/alias " + key);
-                               }
+            logger.debug("FOUND AN ALIAS! Will use {} in lieu of give key/alias {}", realName, key);
+        }
                        }
                        String type = params.get(key).getParamType();
                        if (type == null || "".equals(type)) {
-                               LOGGER.debug("**PARAM_TYPE is null/empty for " + key + ", will default to string");
-                               type = "string";
+          logger.debug("**PARAM_TYPE is null/empty for {}, will default to string", key);
+          type = "string";
                        }
-                       LOGGER.debug("Parameter: " + key + " is of type " + type);
-                       if ("string".equalsIgnoreCase(type)) {
+        logger.debug("Parameter: {} is of type {}", key, type);
+        if ("string".equalsIgnoreCase(type)) {
                                // Easiest!
                                String str = inputs.get(key);
                                if (alias)
@@ -1296,8 +1320,8 @@ public class MsoHeatUtils extends MsoCommonUtils implements VduPlugin{
                                try {
                                        anInteger = Integer.parseInt(integerString);
                                } catch (Exception e) {
-                                       LOGGER.debug("Unable to convert " + integerString + " to an integer!!", e);
-                                       anInteger = null;
+            logger.debug("Unable to convert {} to an integer!!", integerString, e);
+            anInteger = null;
                                }
                                if (anInteger != null) {
                                        if (alias)
@@ -1314,8 +1338,8 @@ public class MsoHeatUtils extends MsoCommonUtils implements VduPlugin{
                        } else if ("json".equalsIgnoreCase(type)) {
                                // MSO-1475 - Leave this as a string now
                                String jsonString = inputs.get(key);
-                               LOGGER.debug("Skipping conversion to jsonNode...");
-                       if (alias)
+            logger.debug("Skipping conversion to jsonNode...");
+            if (alias)
                                newInputs.put(realName, jsonString);
                        else
                                newInputs.put(key, jsonString);
@@ -1329,8 +1353,8 @@ public class MsoHeatUtils extends MsoCommonUtils implements VduPlugin{
                                        else
                                                newInputs.put(key, anArrayList);
                                } catch (Exception e) {
-                                       LOGGER.debug("Unable to convert " + commaSeparated + " to an ArrayList!!", e);
-                                       if (alias)
+            logger.debug("Unable to convert {} to an ArrayList!!", commaSeparated, e);
+            if (alias)
                                                newInputs.put(realName, commaSeparated);
                                        else
                                                newInputs.put(key, commaSeparated);
@@ -1671,7 +1695,7 @@ public class MsoHeatUtils extends MsoCommonUtils implements VduPlugin{
        try {
             Thread.sleep(time);
         } catch (InterruptedException e) {
-            LOGGER.debug ("Thread interrupted while sleeping", e);
+            logger.debug ("Thread interrupted while sleeping", e);
             Thread.currentThread().interrupt();
         }
     }
index e68a8e7..cbbabc7 100644 (file)
@@ -5,6 +5,8 @@
  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
  * Copyright (C) 2017 Huawei Technologies Co., Ltd. All rights reserved.
  * ================================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ================================================================================
  * 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
 package org.onap.so.openstack.utils;
 
 
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.woorea.openstack.base.client.OpenStackBaseException;
+import com.woorea.openstack.base.client.OpenStackRequest;
+import com.woorea.openstack.heat.Heat;
+import com.woorea.openstack.heat.model.Stack;
+import com.woorea.openstack.heat.model.Stack.Output;
+import com.woorea.openstack.heat.model.UpdateStackParam;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-
 import org.onap.so.db.catalog.beans.CloudSite;
 import org.onap.so.logger.MessageEnum;
 import org.onap.so.logger.MsoLogger;
@@ -37,28 +47,20 @@ import org.onap.so.openstack.exceptions.MsoException;
 import org.onap.so.openstack.exceptions.MsoOpenstackException;
 import org.onap.so.openstack.exceptions.MsoStackNotFound;
 import org.onap.so.openstack.mappers.StackInfoMapper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.env.Environment;
 import org.springframework.stereotype.Component;
 
-import com.fasterxml.jackson.core.type.TypeReference;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.woorea.openstack.base.client.OpenStackBaseException;
-import com.woorea.openstack.base.client.OpenStackRequest;
-import com.woorea.openstack.heat.Heat;
-import com.woorea.openstack.heat.model.Stack;
-import com.woorea.openstack.heat.model.Stack.Output;
-import com.woorea.openstack.heat.model.UpdateStackParam;
-
 @Component
 public class MsoHeatUtilsWithUpdate extends MsoHeatUtils {
 
     private static final String UPDATE_STACK = "UpdateStack";
-    private static final MsoLogger LOGGER = MsoLogger.getMsoLogger (MsoLogger.Catalog.RA, MsoHeatUtilsWithUpdate.class);
+    private static final Logger logger = LoggerFactory.getLogger(MsoHeatUtilsWithUpdate.class);
 
     private static final ObjectMapper JSON_MAPPER = new ObjectMapper();
-    
+
     @Autowired
     private Environment environment;
     /*
@@ -204,15 +206,15 @@ public class MsoHeatUtilsWithUpdate extends MsoHeatUtils {
         // NOTE: This is specific to the v1 Orchestration API.
         String canonicalName = heatStack.getStackName () + "/" + heatStack.getId ();
 
-        LOGGER.debug ("Ready to Update Stack (" + canonicalName + ") with input params: " + stackInputs);
+        logger.debug ("Ready to Update Stack ({}) with input params: {}", canonicalName, stackInputs);
         //force entire stackInput object to generic Map<String, Object> for openstack compatibility
                ObjectMapper mapper = new ObjectMapper();
                Map<String, Object> normalized = new HashMap<>();
                try {
                        normalized = mapper.readValue(mapper.writeValueAsString(stackInputs), new TypeReference<HashMap<String,Object>>() {});
                } catch (IOException e1) {
-                       LOGGER.debug("could not map json", e1);
-               }
+        logger.debug("could not map json", e1);
+    }
         // Build up the stack update parameters
         // Disable auto-rollback, because error reason is lost. Always rollback in the code.
         UpdateStackParam stack = new UpdateStackParam ();
@@ -229,7 +231,7 @@ public class MsoHeatUtilsWithUpdate extends MsoHeatUtils {
         // and then add to stack (both are part of "files:" being added to stack)
         if (haveFiles && haveHeatFiles) {
             // Let's do this here - not in the bean
-            LOGGER.debug ("Found files AND heatFiles - combine and add!");
+            logger.debug ("Found files AND heatFiles - combine and add!");
             Map <String, Object> combinedFiles = new HashMap<>();
             for (String keyString : files.keySet ()) {
                 combinedFiles.put (keyString, files.get (keyString));
@@ -275,11 +277,12 @@ public class MsoHeatUtilsWithUpdate extends MsoHeatUtils {
             while (loopAgain) {
                 try {
                     updateStack = queryHeatStack (heatClient, canonicalName);
-                    LOGGER.debug (updateStack.getStackStatus () + " (" + canonicalName + ")");
+                    logger.debug("{} ({}) ", updateStack.getStackStatus(), canonicalName);
                     try {
-                       LOGGER.debug("Current stack " + this.getOutputsAsStringBuilderWithUpdate(heatStack).toString());
+                        logger
+                            .debug("Current stack {}" + this.getOutputsAsStringBuilderWithUpdate(heatStack).toString());
                     } catch (Exception e) {
-                       LOGGER.debug("an error occurred trying to print out the current outputs of the stack", e);
+                        logger.debug("an error occurred trying to print out the current outputs of the stack", e);
                     }
 
 
@@ -289,7 +292,10 @@ public class MsoHeatUtilsWithUpdate extends MsoHeatUtils {
                         if (pollTimeout <= 0) {
                             // Note that this should not occur, since there is a timeout specified
                             // in the Openstack call.
-                               LOGGER.error (MessageEnum.RA_UPDATE_STACK_TIMEOUT, cloudSiteId, tenantId, stackName, updateStack.getStackStatus(), "", "", MsoLogger.ErrorCode.AvailabilityError, "Update stack timeout");
+                            logger.error(
+                                "{} Cloud site: {} Tenant: {} Stack: {} Stack status: {} {} Update stack timeout",
+                                MessageEnum.RA_UPDATE_STACK_TIMEOUT, cloudSiteId, tenantId, stackName,
+                                updateStack.getStackStatus(), MsoLogger.ErrorCode.AvailabilityError.getValue());
                             loopAgain = false;
                         } else {
                             try {
@@ -302,7 +308,7 @@ public class MsoHeatUtilsWithUpdate extends MsoHeatUtils {
                             }
                         }
                         pollTimeout -= createPollInterval;
-                        LOGGER.debug("pollTimeout remaining: " + pollTimeout);
+                        logger.debug("pollTimeout remaining: {}", pollTimeout);
                     } else {
                         loopAgain = false;
                     }
@@ -316,7 +322,9 @@ public class MsoHeatUtilsWithUpdate extends MsoHeatUtils {
             }
 
             if (!"UPDATE_COMPLETE".equals (updateStack.getStackStatus ())) {
-               LOGGER.error (MessageEnum.RA_UPDATE_STACK_ERR, updateStack.getStackStatus(), updateStack.getStackStatusReason(), "", "", MsoLogger.ErrorCode.DataError, "Update Stack error");
+                logger.error("{} Stack status: {} Stack status reason: {} {} Update Stack error",
+                    MessageEnum.RA_UPDATE_STACK_ERR, updateStack.getStackStatus(), updateStack.getStackStatusReason(),
+                    MsoLogger.ErrorCode.DataError.getValue());
 
                 // TODO: No way to roll back the stack at this point. What to do?
                 // Throw a 'special case' of MsoOpenstackException to report the Heat status
@@ -337,14 +345,14 @@ public class MsoHeatUtilsWithUpdate extends MsoHeatUtils {
             // Return the current status.
             updateStack = queryHeatStack (heatClient, canonicalName);
             if (updateStack != null) {
-                LOGGER.debug ("UpdateStack, status = " + updateStack.getStackStatus ());
+                logger.debug("UpdateStack, status = {}", updateStack.getStackStatus());
             } else {
-                LOGGER.debug ("UpdateStack, stack not found");
+                logger.debug("UpdateStack, stack not found");
             }
         }
         return new StackInfoMapper(updateStack).map();
     }
-    
+
        private StringBuilder getOutputsAsStringBuilderWithUpdate(Stack heatStack) {
                // This should only be used as a utility to print out the stack outputs
                // to the log
@@ -376,16 +384,16 @@ public class MsoHeatUtilsWithUpdate extends MsoHeatUtils {
                                        String str = JSON_MAPPER.writeValueAsString(obj);
                                        sb.append(str).append(" (a java.util.LinkedHashMap)");
                                } catch (Exception e) {
-                                       LOGGER.debug("Exception :", e);
-                                       sb.append("(a LinkedHashMap value that would not convert nicely)");
-                               }                               
+            logger.debug("Exception :", e);
+            sb.append("(a LinkedHashMap value that would not convert nicely)");
+                               }
                        } else if (obj instanceof Integer) {
                                String str = "";
                                try {
                                        str = obj.toString() + " (an Integer)\n";
                                } catch (Exception e) {
-                                       LOGGER.debug("Exception :", e);
-                                       str = "(an Integer unable to call .toString() on)";
+            logger.debug("Exception :", e);
+            str = "(an Integer unable to call .toString() on)";
                                }
                                sb.append(str);
                        } else if (obj instanceof ArrayList) {
@@ -393,8 +401,8 @@ public class MsoHeatUtilsWithUpdate extends MsoHeatUtils {
                                try {
                                        str = obj.toString() + " (an ArrayList)";
                                } catch (Exception e) {
-                                       LOGGER.debug("Exception :", e);
-                                       str = "(an ArrayList unable to call .toString() on?)";
+            logger.debug("Exception :", e);
+            str = "(an ArrayList unable to call .toString() on?)";
                                }
                                sb.append(str);
                        } else if (obj instanceof Boolean) {
@@ -402,8 +410,8 @@ public class MsoHeatUtilsWithUpdate extends MsoHeatUtils {
                                try {
                                        str = obj.toString() + " (a Boolean)";
                                } catch (Exception e) {
-                                       LOGGER.debug("Exception :", e);
-                                       str = "(an Boolean unable to call .toString() on?)";
+            logger.debug("Exception :", e);
+            str = "(an Boolean unable to call .toString() on?)";
                                }
                                sb.append(str);
                        }
@@ -412,8 +420,8 @@ public class MsoHeatUtilsWithUpdate extends MsoHeatUtils {
                                try {
                                        str = obj.toString() + " (unknown Object type)";
                                } catch (Exception e) {
-                                       LOGGER.debug("Exception :", e);
-                                       str = "(a value unable to call .toString() on?)";
+            logger.debug("Exception :", e);
+            str = "(a value unable to call .toString() on?)";
                                }
                                sb.append(str);
                        }
@@ -422,16 +430,16 @@ public class MsoHeatUtilsWithUpdate extends MsoHeatUtils {
                sb.append("[END]");
                return sb;
        }
-       
+
        private String convertNodeWithUpdate(final JsonNode node) {
                try {
                        final Object obj = JSON_MAPPER.treeToValue(node, Object.class);
                        final String json = JSON_MAPPER.writeValueAsString(obj);
                        return json;
                } catch (Exception e) {
-                       LOGGER.debug("Error converting json to string " + e.getMessage(), e);
-               }
+        logger.debug("Error converting json to string {} ", e.getMessage(), e);
+    }
                return "[Error converting json to string]";
        }
-       
+
 }
index 0bd2a39..56a42e9 100644 (file)
@@ -4,6 +4,8 @@
  * ================================================================================
  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ================================================================================
  * 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
 package org.onap.so.openstack.utils;
 
 
-import java.io.Serializable;
-import java.util.Calendar;
+import com.woorea.openstack.base.client.OpenStackBaseException;
+import com.woorea.openstack.base.client.OpenStackConnectException;
+import com.woorea.openstack.base.client.OpenStackRequest;
+import com.woorea.openstack.base.client.OpenStackResponseException;
+import com.woorea.openstack.keystone.Keystone;
+import com.woorea.openstack.keystone.model.Access;
+import com.woorea.openstack.keystone.model.Authentication;
+import com.woorea.openstack.keystone.model.Metadata;
+import com.woorea.openstack.keystone.model.Role;
+import com.woorea.openstack.keystone.model.Roles;
+import com.woorea.openstack.keystone.model.Tenant;
+import com.woorea.openstack.keystone.model.User;
+import com.woorea.openstack.keystone.utils.KeystoneUtils;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Optional;
-
+import org.onap.so.cloud.authentication.AuthenticationMethodFactory;
 import org.onap.so.db.catalog.beans.CloudIdentity;
 import org.onap.so.db.catalog.beans.CloudSite;
-import org.onap.so.cloud.authentication.AuthenticationMethodFactory;
 import org.onap.so.logger.MessageEnum;
-
 import org.onap.so.logger.MsoLogger;
 import org.onap.so.openstack.beans.MsoTenant;
 import org.onap.so.openstack.exceptions.MsoAdapterException;
@@ -39,30 +50,17 @@ import org.onap.so.openstack.exceptions.MsoCloudSiteNotFound;
 import org.onap.so.openstack.exceptions.MsoException;
 import org.onap.so.openstack.exceptions.MsoOpenstackException;
 import org.onap.so.openstack.exceptions.MsoTenantAlreadyExists;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import com.woorea.openstack.base.client.OpenStackBaseException;
-import com.woorea.openstack.base.client.OpenStackConnectException;
-import com.woorea.openstack.base.client.OpenStackRequest;
-import com.woorea.openstack.base.client.OpenStackResponseException;
-import com.woorea.openstack.keystone.Keystone;
-import com.woorea.openstack.keystone.model.Access;
-import com.woorea.openstack.keystone.model.Authentication;
-import com.woorea.openstack.keystone.model.Metadata;
-import com.woorea.openstack.keystone.model.Role;
-import com.woorea.openstack.keystone.model.Roles;
-import com.woorea.openstack.keystone.model.Tenant;
-import com.woorea.openstack.keystone.model.User;
-import com.woorea.openstack.keystone.utils.KeystoneUtils;
-
 @Component
 public class MsoKeystoneUtils extends MsoTenantUtils {
 
+    private static Logger logger = LoggerFactory.getLogger(MsoKeystoneUtils.class);
 
-       private static MsoLogger LOGGER = MsoLogger.getMsoLogger (MsoLogger.Catalog.RA, MsoKeystoneUtils.class);
-       
-       @Autowired
+    @Autowired
     private AuthenticationMethodFactory authenticationMethodFactory;
        
        @Autowired
@@ -98,7 +96,8 @@ public class MsoKeystoneUtils extends MsoTenantUtils {
         // Obtain the cloud site information where we will create the tenant
         Optional<CloudSite> cloudSiteOpt = cloudConfig.getCloudSite(cloudSiteId);
         if (!cloudSiteOpt.isPresent()) {
-               LOGGER.error(MessageEnum.RA_CREATE_TENANT_ERR, "MSOCloudSite not found", "", "", MsoLogger.ErrorCode.DataError, "MSOCloudSite not found");
+            logger.error("{} MSOCloudSite {} not found {} ", MessageEnum.RA_CREATE_TENANT_ERR, cloudSiteId,
+                MsoLogger.ErrorCode.DataError.getValue());
             throw new MsoCloudSiteNotFound (cloudSiteId);
         }
         Keystone keystoneAdminClient = getKeystoneAdminClient(cloudSiteOpt.get());
@@ -109,7 +108,8 @@ public class MsoKeystoneUtils extends MsoTenantUtils {
 
             if (tenant != null) {
                 // Tenant already exists. Throw an exception
-               LOGGER.error(MessageEnum.RA_TENANT_ALREADY_EXIST, tenantName, cloudSiteId, "", "", MsoLogger.ErrorCode.DataError, "Tenant already exists");
+                logger.error("{} Tenant name {} already exists on Cloud site id {}, {}",
+                    MessageEnum.RA_TENANT_ALREADY_EXIST, tenantName, cloudSiteId, MsoLogger.ErrorCode.DataError.getValue());
                 throw new MsoTenantAlreadyExists (tenantName, cloudSiteId);
             }
 
@@ -158,8 +158,9 @@ public class MsoKeystoneUtils extends MsoTenantUtils {
             // so roll back the tenant.
                if (!backout)
                {
-                       LOGGER.warn(MessageEnum.RA_CREATE_TENANT_ERR, "Create Tenant errored, Tenant deletion suppressed", "Openstack", "", MsoLogger.ErrorCode.DataError, "Create Tenant error, Tenant deletion suppressed");
-               }
+              logger.warn("{} Create Tenant errored, Tenant deletion suppressed {} ", MessageEnum.RA_CREATE_TENANT_ERR,
+                  MsoLogger.ErrorCode.DataError.getValue());
+          }
                else
                {
                        try {
@@ -167,8 +168,9 @@ public class MsoKeystoneUtils extends MsoTenantUtils {
                                executeAndRecordOpenstackRequest (request);
                        } catch (Exception e2) {
                                // Just log this one. We will report the original exception.
-                               LOGGER.error (MessageEnum.RA_CREATE_TENANT_ERR, "Nested exception rolling back tenant", "Openstack", "", MsoLogger.ErrorCode.DataError, "Create Tenant error, Nested exception rolling back tenant", e2);
-                       }
+                logger.error("{} Nested exception rolling back tenant {} ", MessageEnum.RA_CREATE_TENANT_ERR,
+                    MsoLogger.ErrorCode.DataError.getValue(), e2);
+            }
                }
                
 
@@ -303,13 +305,14 @@ public class MsoKeystoneUtils extends MsoTenantUtils {
             // Check that the tenant exists. Also, need the ID to delete
             Tenant tenant = findTenantById (keystoneAdminClient, tenantId);
             if (tenant == null) {
-               LOGGER.error(MessageEnum.RA_TENANT_NOT_FOUND, tenantId, cloudSiteId, "", "", MsoLogger.ErrorCode.DataError, "Tenant not found");
+                logger.error("{} Tenant id {} not found on cloud site id {}, {}", MessageEnum.RA_TENANT_NOT_FOUND,
+                    tenantId, cloudSiteId, MsoLogger.ErrorCode.DataError.getValue());
                 return false;
             }
 
             OpenStackRequest <Void> request = keystoneAdminClient.tenants ().delete (tenant.getId ());
             executeAndRecordOpenstackRequest (request);
-            LOGGER.debug ("Deleted Tenant " + tenant.getId () + " (" + tenant.getName () + ")");
+            logger.debug ("Deleted Tenant {} ({})", tenant.getId(), tenant.getName());
         } catch (OpenStackBaseException e) {
             // Convert Keystone OpenStackResponseException to MsoOpenstackException
             throw keystoneErrorToMsoException (e, "Delete Tenant");
@@ -349,7 +352,8 @@ public class MsoKeystoneUtils extends MsoTenantUtils {
             Tenant tenant = findTenantByName (keystoneAdminClient, tenantName);
             if (tenant == null) {
                 // OK if tenant already doesn't exist.
-               LOGGER.error(MessageEnum.RA_TENANT_NOT_FOUND, tenantName, cloudSiteId, "", "", MsoLogger.ErrorCode.DataError, "Tenant not found");
+                logger.error("{} Tenant {} not found on Cloud site id {}, {}", MessageEnum.RA_TENANT_NOT_FOUND,
+                    tenantName, cloudSiteId, MsoLogger.ErrorCode.DataError.getValue());
                 return false;
             }
 
@@ -357,7 +361,7 @@ public class MsoKeystoneUtils extends MsoTenantUtils {
             OpenStackRequest <Void> request = keystoneAdminClient.tenants ().delete (tenant.getId ());
             executeAndRecordOpenstackRequest (request);
 
-            LOGGER.debug ("Deleted Tenant " + tenant.getId () + " (" + tenant.getName () + ")");
+            logger.debug("Deleted Tenant {} ({})", tenant.getId(), tenant.getName());
 
         } catch (OpenStackBaseException e) {
             // Note: It doesn't seem to matter if tenant doesn't exist, no exception is thrown.
@@ -431,7 +435,9 @@ public class MsoKeystoneUtils extends MsoTenantUtils {
         } catch (RuntimeException e) {
             String error = "Identity service not found: region=" + region + ",cloud=" + cloudIdentity.getId ();
 
-            LOGGER.error(MessageEnum.IDENTITY_SERVICE_NOT_FOUND, region, cloudIdentity.getId(), "Openstack", "", MsoLogger.ErrorCode.DataError, "Exception in findEndpointURL");
+            logger.error("{} Region: {} Cloud identity {} {} Exception in findEndpointURL ",
+                MessageEnum.IDENTITY_SERVICE_NOT_FOUND, region, cloudIdentity.getId(),
+                MsoLogger.ErrorCode.DataError.getValue(), e);
             throw new MsoAdapterException (error, e);
         }
 
@@ -486,7 +492,8 @@ public class MsoKeystoneUtils extends MsoTenantUtils {
             if (e.getStatus () == 404) {
                 return null;
             } else {
-               LOGGER.error(MessageEnum.RA_CONNECTION_EXCEPTION, "Openstack Error, GET Tenant by Id (" + tenantId + "): " + e, "Openstack", "", MsoLogger.ErrorCode.DataError, "Exception in Openstack GET tenant by Id");
+                logger.error("{} {} Openstack Error, GET Tenant by Id ({}): ", MessageEnum.RA_CONNECTION_EXCEPTION,
+                    MsoLogger.ErrorCode.DataError.getValue(), tenantId, e);
                 throw e;
             }
         }
@@ -514,7 +521,8 @@ public class MsoKeystoneUtils extends MsoTenantUtils {
             if (e.getStatus () == 404) {
                 return null;
             } else {
-               LOGGER.error (MessageEnum.RA_CONNECTION_EXCEPTION, "Openstack Error, GET Tenant By Name (" + tenantName + "): " + e, "Openstack", "", MsoLogger.ErrorCode.DataError, "Exception in Openstack GET Tenant By Name");
+                logger.error("{} {} Openstack Error, GET Tenant By Name ({}) ", MessageEnum.RA_CONNECTION_EXCEPTION,
+                    MsoLogger.ErrorCode.DataError.getValue(), tenantName, e);
                 throw e;
             }
         }
@@ -543,7 +551,8 @@ public class MsoKeystoneUtils extends MsoTenantUtils {
                 // Not found by ID. Search for name
                 return findUserByName (adminClient, userNameOrId);
             } else {
-               LOGGER.error (MessageEnum.RA_CONNECTION_EXCEPTION, "Openstack Error, GET User (" + userNameOrId + "): " + e, "Openstack", "", MsoLogger.ErrorCode.DataError, "Exception in Openstack GET User");
+                logger.error("{} {} Openstack Error, GET User ({}) ", MessageEnum.RA_CONNECTION_EXCEPTION,
+                    MsoLogger.ErrorCode.DataError.getValue(), userNameOrId, e);
                 throw e;
             }
         }
@@ -571,7 +580,8 @@ public class MsoKeystoneUtils extends MsoTenantUtils {
             if (e.getStatus () == 404) {
                 return null;
             } else {
-               LOGGER.error (MessageEnum.RA_CONNECTION_EXCEPTION, "Openstack Error, GET User By Name (" + userName + "): " + e, "Openstack", "", MsoLogger.ErrorCode.DataError, "Exception in Openstack GET User By Name");
+                logger.error("{} {} Openstack Error, GET User By Name ({}): ", MessageEnum.RA_CONNECTION_EXCEPTION,
+                    MsoLogger.ErrorCode.DataError.getValue(), userName, e);
                 throw e;
             }
         }
index 785e860..b904a59 100644 (file)
@@ -4,6 +4,8 @@
  * ================================================================================
  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ================================================================================
  * 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
 package org.onap.so.openstack.utils;
 
 
+import com.woorea.openstack.base.client.OpenStackBaseException;
+import com.woorea.openstack.base.client.OpenStackConnectException;
+import com.woorea.openstack.base.client.OpenStackRequest;
+import com.woorea.openstack.base.client.OpenStackResponseException;
+import com.woorea.openstack.keystone.Keystone;
+import com.woorea.openstack.keystone.model.Access;
+import com.woorea.openstack.keystone.model.Authentication;
+import com.woorea.openstack.keystone.utils.KeystoneUtils;
+import com.woorea.openstack.quantum.Quantum;
+import com.woorea.openstack.quantum.model.Network;
+import com.woorea.openstack.quantum.model.Networks;
+import com.woorea.openstack.quantum.model.Segment;
 import java.util.ArrayList;
 import java.util.Calendar;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-
 import org.onap.so.cloud.CloudConfig;
 import org.onap.so.cloud.authentication.AuthenticationMethodFactory;
 import org.onap.so.cloud.authentication.KeystoneAuthHolder;
@@ -36,10 +47,8 @@ import org.onap.so.db.catalog.beans.CloudIdentity;
 import org.onap.so.db.catalog.beans.CloudSite;
 import org.onap.so.db.catalog.beans.ServerType;
 import org.onap.so.logger.MessageEnum;
-
 import org.onap.so.logger.MsoLogger;
 import org.onap.so.openstack.beans.NetworkInfo;
-import org.onap.so.openstack.beans.NeutronCacheEntry;
 import org.onap.so.openstack.exceptions.MsoAdapterException;
 import org.onap.so.openstack.exceptions.MsoCloudSiteNotFound;
 import org.onap.so.openstack.exceptions.MsoException;
@@ -48,22 +57,11 @@ import org.onap.so.openstack.exceptions.MsoNetworkAlreadyExists;
 import org.onap.so.openstack.exceptions.MsoNetworkNotFound;
 import org.onap.so.openstack.exceptions.MsoOpenstackException;
 import org.onap.so.openstack.mappers.NetworkInfoMapper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import com.woorea.openstack.base.client.OpenStackBaseException;
-import com.woorea.openstack.base.client.OpenStackConnectException;
-import com.woorea.openstack.base.client.OpenStackRequest;
-import com.woorea.openstack.base.client.OpenStackResponseException;
-import com.woorea.openstack.keystone.Keystone;
-import com.woorea.openstack.keystone.model.Access;
-import com.woorea.openstack.keystone.model.Authentication;
-import com.woorea.openstack.keystone.utils.KeystoneUtils;
-import com.woorea.openstack.quantum.Quantum;
-import com.woorea.openstack.quantum.model.Network;
-import com.woorea.openstack.quantum.model.Networks;
-import com.woorea.openstack.quantum.model.Segment;
-
 @Component
 public class MsoNeutronUtils extends MsoCommonUtils
 {
@@ -80,10 +78,10 @@ public class MsoNeutronUtils extends MsoCommonUtils
 
        @Autowired
        private KeystoneV3Authentication keystoneV3Authentication;
-       
-       private static MsoLogger LOGGER = MsoLogger.getMsoLogger (MsoLogger.Catalog.RA, MsoNeutronUtils.class);
-       
-       public enum NetworkType {
+
+    private static Logger logger = LoggerFactory.getLogger(MsoNeutronUtils.class);
+
+    public enum NetworkType {
                BASIC, PROVIDER, MULTI_PROVIDER
        };
 
@@ -119,8 +117,10 @@ public class MsoNeutronUtils extends MsoCommonUtils
 
                if (network != null) {
                        // Network already exists.  Throw an exception
-                       LOGGER.error(MessageEnum.RA_NETWORK_ALREADY_EXIST, networkName, cloudSiteId, tenantId, "Openstack", "", MsoLogger.ErrorCode.DataError, "Network already exists");
-                       throw new MsoNetworkAlreadyExists (networkName, tenantId, cloudSiteId);
+        logger.error("{} Network {} on Cloud site {} for tenant {} already exists {}",
+            MessageEnum.RA_NETWORK_ALREADY_EXIST, networkName, cloudSiteId, tenantId,
+            MsoLogger.ErrorCode.DataError.getValue());
+        throw new MsoNetworkAlreadyExists (networkName, tenantId, cloudSiteId);
                }
 
                // Does not exist, create a new one
@@ -183,7 +183,7 @@ public class MsoNeutronUtils extends MsoCommonUtils
         */
     public NetworkInfo queryNetwork(String networkNameOrId, String tenantId, String cloudSiteId) throws MsoException
        {
-               LOGGER.debug("In queryNetwork");
+      logger.debug("In queryNetwork");
 
                // Obtain the cloud site information
         CloudSite cloudSite = cloudConfig.getCloudSite(cloudSiteId).orElseThrow(
@@ -195,8 +195,8 @@ public class MsoNeutronUtils extends MsoCommonUtils
                try {
                        Network network = findNetworkByNameOrId (neutronClient, networkNameOrId);
                        if (network == null) {
-                               LOGGER.debug ("Query Network: " + networkNameOrId + " not found in tenant " + tenantId);
-                               return null;
+          logger.debug("Query Network: {} not found in tenant {}", networkNameOrId, tenantId);
+          return null;
                        }
                        return new NetworkInfoMapper(network).map();
                }
@@ -235,15 +235,16 @@ public class MsoNeutronUtils extends MsoCommonUtils
                        // Check that the network exists.
                        Network network = findNetworkById (neutronClient, networkId);
                        if (network == null) {
-                               LOGGER.info(MessageEnum.RA_DELETE_NETWORK_EXC, networkId, cloudSiteId, tenantId, "Openstack", "");
-                               return false;
+          logger.info("{} Network not found! Network id: {} Cloud site: {} Tenant: {} ",
+              MessageEnum.RA_DELETE_NETWORK_EXC, networkId, cloudSiteId, tenantId);
+          return false;
                        }
 
                        OpenStackRequest<Void> request = neutronClient.networks().delete(network.getId());
                        executeAndRecordOpenstackRequest(request);
 
-                       LOGGER.debug ("Deleted Network " + network.getId() + " (" + network.getName() + ")");
-               }
+        logger.debug("Deleted Network {} ({})", network.getId(), network.getName());
+    }
                catch (OpenStackBaseException e) {
                        // Convert Neutron exception to an MsoOpenstackException
                        MsoException me = neutronExceptionToMsoException (e, "Delete Network");
@@ -294,7 +295,8 @@ public class MsoNeutronUtils extends MsoCommonUtils
 
                if (network == null) {
                        // Network not found.  Throw an exception
-                       LOGGER.error(MessageEnum.RA_NETWORK_NOT_FOUND, networkId, cloudSiteId, tenantId, "Openstack", "", MsoLogger.ErrorCode.DataError, "Network not found");
+        logger.error("{} Network {} on Cloud site {} for Tenant {} not found {}", MessageEnum.RA_NETWORK_NOT_FOUND,
+            networkId, cloudSiteId, tenantId, MsoLogger.ErrorCode.DataError.getValue());
                        throw new MsoNetworkNotFound (networkId, tenantId, cloudSiteId);
                }
 
@@ -480,8 +482,9 @@ public class MsoNeutronUtils extends MsoCommonUtils
                        if (e.getStatus() == 404) {
                                return null;
                        } else {
-                               LOGGER.error (MessageEnum.RA_CONNECTION_EXCEPTION, "OpenStack", "Openstack Error, GET Network By ID (" + networkId + "): " + e, "Openstack", "", MsoLogger.ErrorCode.DataError, "Exception in Openstack");
-                               throw e;
+          logger.error("{} {} Openstack Error, GET Network By ID ({}): ", MessageEnum.RA_CONNECTION_EXCEPTION,
+              MsoLogger.ErrorCode.DataError.getValue(), networkId, e);
+          throw e;
                        }
                }
        }
@@ -515,19 +518,20 @@ public class MsoNeutronUtils extends MsoCommonUtils
                        Networks networks = executeAndRecordOpenstackRequest(request);
                        for (Network network : networks.getList()) {
                                if (network.getName().equals(networkName)) {
-                                       LOGGER.debug ("Found match on network name: " + networkName);
-                                       return network;
+            logger.debug("Found match on network name: {}", networkName);
+            return network;
                                }
                        }
-                       LOGGER.debug ("findNetworkByName - no match found for " + networkName);
-                       return null;
+        logger.debug("findNetworkByName - no match found for {}", networkName);
+        return null;
                }
                catch (OpenStackResponseException e) {
                        if (e.getStatus() == 404) {
                                return null;
                        } else {
-                               LOGGER.error (MessageEnum.RA_CONNECTION_EXCEPTION, "OpenStack", "Openstack Error, GET Network By Name (" + networkName + "): " + e, "OpenStack", "", MsoLogger.ErrorCode.DataError, "Exception in OpenStack");
-                               throw e;
+          logger.error("{} {} Openstack Error, GET Network By Name ({}): ", MessageEnum.RA_CONNECTION_EXCEPTION,
+              MsoLogger.ErrorCode.DataError.getValue(), networkName, e);
+          throw e;
                        }
                }
        }
index 383409f..7cf41db 100644 (file)
@@ -4,6 +4,8 @@
  * ================================================================================
  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ================================================================================
  * 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
@@ -22,10 +24,8 @@ package org.onap.so.openstack.utils;
 
 
 import java.util.Map;
-
 import org.onap.so.cloud.CloudConfig;
 import org.onap.so.db.catalog.beans.CloudIdentity;
-import org.onap.so.logger.MsoLogger;
 import org.onap.so.openstack.beans.MsoTenant;
 import org.onap.so.openstack.exceptions.MsoCloudSiteNotFound;
 import org.onap.so.openstack.exceptions.MsoException;
@@ -35,9 +35,7 @@ import org.springframework.stereotype.Component;
 @Component
 public abstract class MsoTenantUtils extends MsoCommonUtils {
 
-       protected static MsoLogger LOGGER = MsoLogger.getMsoLogger (MsoLogger.Catalog.RA, MsoTenantUtils.class);
-       
-       @Autowired
+    @Autowired
     protected CloudConfig cloudConfig;
 
     public abstract String createTenant (String tenantName, String cloudSiteId, Map <String, String> metadata, boolean backout) 
index 08c98f3..c5b93d9 100644 (file)
@@ -4,6 +4,8 @@
  * ================================================================================
  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ================================================================================
  * 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
@@ -23,16 +25,17 @@ package org.onap.so.openstack.utils;
 import org.onap.so.cloud.CloudConfig;
 import org.onap.so.db.catalog.beans.CloudSite;
 import org.onap.so.db.catalog.beans.ServerType;
-import org.onap.so.logger.MsoLogger;
 import org.onap.so.openstack.exceptions.MsoCloudSiteNotFound;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 @Component
 public class MsoTenantUtilsFactory {
 
-       protected static MsoLogger LOGGER = MsoLogger.getMsoLogger(MsoLogger.Catalog.RA, MsoTenantUtilsFactory.class);
-       @Autowired
+    protected static Logger logger = LoggerFactory.getLogger(MsoTenantUtilsFactory.class);
+    @Autowired
        protected CloudConfig cloudConfig;
        @Autowired
        protected MsoKeystoneUtils keystoneUtils;
index 649eb6b..5f26449 100644 (file)
@@ -5,6 +5,8 @@
  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
  * Copyright (C) 2017 Huawei Technologies Co., Ltd. All rights reserved.
  * ================================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ================================================================================
  * 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
 package org.onap.so.openstack.utils;
 
 
-
+import com.fasterxml.jackson.databind.ObjectMapper;
 import java.io.ByteArrayInputStream;
 import java.io.InputStream;
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Set;
-
 import org.onap.so.db.catalog.beans.HeatTemplateParam;
-import org.onap.so.logger.MsoLogger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.yaml.snakeyaml.Yaml;
 
-import com.fasterxml.jackson.databind.ObjectMapper;
-
 public class MsoYamlEditorWithEnvt {
 
-    private static final MsoLogger LOGGER = MsoLogger.getMsoLogger (MsoLogger.Catalog.RA, MsoYamlEditorWithEnvt.class);
+    private static final Logger logger = LoggerFactory.getLogger(MsoYamlEditorWithEnvt.class);
     
     private Map <String, Object> yml;
     private Yaml yaml = new Yaml ();
@@ -68,8 +67,8 @@ public class MsoYamlEditorWithEnvt {
        try {
                resourceMap = (Map<String,Object>) yml.get("parameters");
        } catch (Exception e) {
-           LOGGER.debug("Exception:", e);
-               return paramSet;
+          logger.debug("Exception:", e);
+          return paramSet;
        }
        if (resourceMap == null) {
                return paramSet;
@@ -89,7 +88,7 @@ public class MsoYamlEditorWithEnvt {
                 try {
                     value = JSON_MAPPER.writeValueAsString(obj);
                 } catch (Exception e) {
-                    LOGGER.debug("Exception:", e);
+                    logger.debug("Exception:", e);
                     value = "_BAD_JSON_MAPPING";
                 }
             } else {
@@ -117,8 +116,8 @@ public class MsoYamlEditorWithEnvt {
             }
                return resourceList;
        } catch (Exception e) {
-           LOGGER.debug("Exception:", e);
-       }
+          logger.debug("Exception:", e);
+      }
        return null;
     }
     public synchronized Set <HeatTemplateParam> getParameterList () {
@@ -135,7 +134,7 @@ public class MsoYamlEditorWithEnvt {
             try {
                 value = resourceEntry.get("default");
             } catch (ClassCastException cce) {
-                LOGGER.debug("Exception:", cce);
+                logger.debug("Exception:", cce);
                 // This exception only - the value is an integer. For what we're doing
                 // here - we don't care - so set value to something - and it will
                 // get marked as not being required - which is correct.