This is an automated email from the ASF dual-hosted git repository.

dahn pushed a commit to branch 4.18
in repository https://gitbox.apache.org/repos/asf/cloudstack.git


The following commit(s) were added to refs/heads/4.18 by this push:
     new 523ab58d028 Fix PR 7131 bugs and vulnerabilities (#7140)
523ab58d028 is described below

commit 523ab58d02819addfe9ec4cab1e95c25f124a950
Author: João Jandre <48719461+joaojan...@users.noreply.github.com>
AuthorDate: Tue Mar 21 11:06:18 2023 -0300

    Fix PR 7131 bugs and vulnerabilities (#7140)
---
 .../kvm/resource/LibvirtComputingResource.java     |   2 +-
 .../kvm/storage/LibvirtStorageAdaptor.java         |   4 +-
 .../com/cloud/ovm/hypervisor/OvmResourceBase.java  |   2 +-
 .../hypervisor/vmware/resource/VmwareResource.java |   5 +
 .../resource/XenServerConnectionPool.java          |   3 +-
 .../com/cloud/alert/ConsoleProxyAlertAdapter.java  | 169 ++++++++++----------
 .../alert/SecondaryStorageVmAlertAdapter.java      | 173 +++++++++++----------
 server/src/main/java/com/cloud/api/ApiServer.java  |  11 +-
 .../ExternalLoadBalancerDeviceManagerImpl.java     |   8 +-
 .../com/cloud/servlet/ConsoleProxyServlet.java     |  26 +++-
 .../main/java/com/cloud/vm/UserVmManagerImpl.java  |   3 +-
 .../OutOfBandManagementServiceImpl.java            |   3 +-
 .../resource/NfsSecondaryStorageResource.java      |   2 +-
 13 files changed, 229 insertions(+), 182 deletions(-)

diff --git 
a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
 
b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
index ad1ab77c3a8..3f711fa9b80 100644
--- 
a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
+++ 
b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
@@ -1759,7 +1759,7 @@ public class LibvirtComputingResource extends 
ServerResourceBase implements Serv
     }
 
     public boolean passCmdLine(final String vmName, final String cmdLine) 
throws InternalErrorException {
-        final Script command = new Script(_patchScriptPath, 300 * 1000, 
s_logger);
+        final Script command = new Script(_patchScriptPath, 300000, s_logger);
         String result;
         command.add("-n", vmName);
         command.add("-c", cmdLine);
diff --git 
a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java
 
b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java
index 4f228ac9e2d..183a36446cf 100644
--- 
a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java
+++ 
b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java
@@ -1427,7 +1427,9 @@ public class LibvirtStorageAdaptor implements 
StorageAdaptor {
 
                 r.ioCtxDestroy(io);
             } catch (QemuImgException | LibvirtException e) {
-                s_logger.error("Failed to convert from " + 
srcFile.getFileName() + " to " + destFile.getFileName() + " the error was: " + 
e.getMessage());
+                String srcFilename = srcFile != null ? srcFile.getFileName() : 
null;
+                String destFilename = destFile != null ? 
destFile.getFileName() : null;
+                s_logger.error(String.format("Failed to convert from %s to %s 
the error was: %s", srcFilename, destFilename, e.getMessage()));
                 newDisk = null;
             } catch (RadosException e) {
                 s_logger.error("A Ceph RADOS operation failed (" + 
e.getReturnValue() + "). The error was: " + e.getMessage());
diff --git 
a/plugins/hypervisors/ovm/src/main/java/com/cloud/ovm/hypervisor/OvmResourceBase.java
 
b/plugins/hypervisors/ovm/src/main/java/com/cloud/ovm/hypervisor/OvmResourceBase.java
index f24783190d4..cf2f1fbed64 100644
--- 
a/plugins/hypervisors/ovm/src/main/java/com/cloud/ovm/hypervisor/OvmResourceBase.java
+++ 
b/plugins/hypervisors/ovm/src/main/java/com/cloud/ovm/hypervisor/OvmResourceBase.java
@@ -258,7 +258,7 @@ public class OvmResourceBase implements ServerResource, 
HypervisorResource {
 
         _canBridgeFirewall = false;
 
-        s_logger.debug(_canBridgeFirewall ? "OVM host supports security 
groups." : "OVM host doesn't support security groups.");
+        s_logger.debug("OVM host doesn't support security groups.");
 
         return true;
     }
diff --git 
a/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java
 
b/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java
index 5be98d4c43c..aa26f63b3a9 100644
--- 
a/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java
+++ 
b/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java
@@ -7541,6 +7541,11 @@ public class VmwareResource extends ServerResourceBase 
implements StoragePoolRes
                     // prepare network on the host
                     prepareNetworkFromNicInfo((HostMO)targetHyperHost, nic, 
false, vmTo.getType());
                 }
+
+                if (targetHyperHost == null) {
+                    throw new CloudRuntimeException(String.format("Trying to 
relocate VM [%s], but target hyper host is null.", vmTo.getUuid()));
+                }
+
                 // Ensure secondary storage mounted on target host
                 VmwareManager mgr = 
targetHyperHost.getContext().getStockObject(VmwareManager.CONTEXT_STOCK_NAME);
                 Pair<String, Long> secStoreUrlAndId = 
mgr.getSecondaryStorageStoreUrlAndId(Long.parseLong(_dcId));
diff --git 
a/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/xenserver/resource/XenServerConnectionPool.java
 
b/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/xenserver/resource/XenServerConnectionPool.java
index 9bc8d9e8bf0..2f27b1376fd 100644
--- 
a/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/xenserver/resource/XenServerConnectionPool.java
+++ 
b/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/xenserver/resource/XenServerConnectionPool.java
@@ -210,7 +210,8 @@ public class XenServerConnectionPool {
                         throw e;
                 } catch (Exception e) {
                     if (s_logger.isDebugEnabled()) {
-                        s_logger.debug("connect through IP(" + mConn.getIp() + 
" for pool(" + poolUuid + ") is broken due to " + e.toString());
+                        String ip = mConn != null ? mConn.getIp() : null;
+                        s_logger.debug("connect through IP(" + ip + ") for 
pool(" + poolUuid + ") is broken due to " + e.toString());
                     }
                     removeConnect(poolUuid);
                     mConn = null;
diff --git a/server/src/main/java/com/cloud/alert/ConsoleProxyAlertAdapter.java 
b/server/src/main/java/com/cloud/alert/ConsoleProxyAlertAdapter.java
index 72dd0d7fb0b..cdcf68b10fd 100644
--- a/server/src/main/java/com/cloud/alert/ConsoleProxyAlertAdapter.java
+++ b/server/src/main/java/com/cloud/alert/ConsoleProxyAlertAdapter.java
@@ -21,6 +21,7 @@ import java.util.Map;
 import javax.inject.Inject;
 import javax.naming.ConfigurationException;
 
+import org.apache.cloudstack.alert.AlertService;
 import org.apache.log4j.Logger;
 import org.springframework.stereotype.Component;
 
@@ -60,87 +61,95 @@ public class ConsoleProxyAlertAdapter extends AdapterBase 
implements AlertAdapte
             throw new CloudRuntimeException("Invalid alert arguments, proxy 
must be set");
         }
 
+        String proxyHostName = "";
+        String proxyPublicIpAddress = "";
+        String proxyPrivateIpAddress = "N/A";
+        Long proxyPodIdToDeployIn = null;
+
+        if (proxy != null) {
+            proxyHostName = proxy.getHostName();
+            proxyPublicIpAddress = proxy.getPublicIpAddress();
+            proxyPrivateIpAddress = proxy.getPrivateIpAddress() == null ? 
"N/A" : proxy.getPrivateIpAddress();
+            proxyPodIdToDeployIn = proxy.getPodIdToDeployIn();
+        }
+
+        String message = "";
+        String zoneProxyPublicAndPrivateIp = String.format("zone [%s], proxy 
[%s], public IP [%s], private IP [%s].", dc.getName(), proxyHostName, 
proxyPublicIpAddress,
+                proxyPrivateIpAddress);
+        String zone = String.format("(zone %s)", dc.getName());
+        String errorDetails = " Error details: " + args.getMessage();
+
+
         switch (args.getType()) {
-        case ConsoleProxyAlertEventArgs.PROXY_CREATED:
-            if (s_logger.isDebugEnabled())
-                s_logger.debug("New console proxy created, zone: " + 
dc.getName() + ", proxy: " + proxy.getHostName() + ", public IP: " + 
proxy.getPublicIpAddress() +
-                        ", private IP: " + proxy.getPrivateIpAddress());
-            break;
-
-        case ConsoleProxyAlertEventArgs.PROXY_UP:
-            if (s_logger.isDebugEnabled())
-                s_logger.debug("Console proxy is up, zone: " + dc.getName() + 
", proxy: " + proxy.getHostName() + ", public IP: " + 
proxy.getPublicIpAddress() +
-                        ", private IP: " + proxy.getPrivateIpAddress());
-
-            
_alertMgr.sendAlert(AlertManager.AlertType.ALERT_TYPE_CONSOLE_PROXY, 
args.getZoneId(), proxy.getPodIdToDeployIn(),
-                    "Console proxy up in zone: " + dc.getName() +
-                    ", proxy: " + proxy.getHostName() + ", public IP: " + 
proxy.getPublicIpAddress() + ", private IP: " +
-                    (proxy.getPrivateIpAddress() == null ? "N/A" : 
proxy.getPrivateIpAddress()), "Console proxy up (zone " + dc.getName() + ")");
-            break;
-
-        case ConsoleProxyAlertEventArgs.PROXY_DOWN:
-            if (s_logger.isDebugEnabled())
-                s_logger.debug("Console proxy is down, zone: " + dc.getName() 
+ ", proxy: " + proxy.getHostName() + ", public IP: " + 
proxy.getPublicIpAddress() +
-                        ", private IP: " + (proxy.getPrivateIpAddress() == 
null ? "N/A" : proxy.getPrivateIpAddress()));
-
-            
_alertMgr.sendAlert(AlertManager.AlertType.ALERT_TYPE_CONSOLE_PROXY, 
args.getZoneId(), proxy.getPodIdToDeployIn(),
-                    "Console proxy down in zone: " + dc.getName() +
-                    ", proxy: " + proxy.getHostName() + ", public IP: " + 
proxy.getPublicIpAddress() + ", private IP: " +
-                    (proxy.getPrivateIpAddress() == null ? "N/A" : 
proxy.getPrivateIpAddress()), "Console proxy down (zone " + dc.getName() + ")");
-            break;
-
-        case ConsoleProxyAlertEventArgs.PROXY_REBOOTED:
-            if (s_logger.isDebugEnabled())
-                s_logger.debug("Console proxy is rebooted, zone: " + 
dc.getName() + ", proxy: " + proxy.getHostName() + ", public IP: " + 
proxy.getPublicIpAddress() +
-                        ", private IP: " + (proxy.getPrivateIpAddress() == 
null ? "N/A" : proxy.getPrivateIpAddress()));
-
-            
_alertMgr.sendAlert(AlertManager.AlertType.ALERT_TYPE_CONSOLE_PROXY, 
args.getZoneId(), proxy.getPodIdToDeployIn(),
-                    "Console proxy rebooted in zone: " + dc.getName() + ", 
proxy: " + proxy.getHostName() + ", public IP: " + proxy.getPublicIpAddress() +
-                    ", private IP: " + (proxy.getPrivateIpAddress() == null ? 
"N/A" : proxy.getPrivateIpAddress()), "Console proxy rebooted (zone " + 
dc.getName() +
-                    ")");
-            break;
-
-        case ConsoleProxyAlertEventArgs.PROXY_CREATE_FAILURE:
-            if (s_logger.isDebugEnabled())
-                s_logger.debug("Console proxy creation failure, zone: " + 
dc.getName());
-            
_alertMgr.sendAlert(AlertManager.AlertType.ALERT_TYPE_CONSOLE_PROXY, 
args.getZoneId(), null,
-                    "Console proxy creation failure. zone: " + dc.getName() + 
", error details: " + args.getMessage(),
-                    "Console proxy creation failure (zone " + dc.getName() + 
")");
-            break;
-
-        case ConsoleProxyAlertEventArgs.PROXY_START_FAILURE:
-            if (s_logger.isDebugEnabled())
-                s_logger.debug("Console proxy startup failure, zone: " + 
dc.getName() + ", proxy: " + proxy.getHostName() + ", public IP: " +
-                        proxy.getPublicIpAddress() + ", private IP: " + 
(proxy.getPrivateIpAddress() == null ? "N/A" : proxy.getPrivateIpAddress()));
-
-            
_alertMgr.sendAlert(AlertManager.AlertType.ALERT_TYPE_CONSOLE_PROXY, 
args.getZoneId(), proxy.getPodIdToDeployIn(),
-                    "Console proxy startup failure. zone: " + dc.getName() + 
", proxy: " + proxy.getHostName() + ", public IP: " + 
proxy.getPublicIpAddress() +
-                    ", private IP: " + (proxy.getPrivateIpAddress() == null ? 
"N/A" : proxy.getPrivateIpAddress()) + ", error details: " + args.getMessage(),
-                    "Console proxy startup failure (zone " + dc.getName() + 
")");
-            break;
-
-        case ConsoleProxyAlertEventArgs.PROXY_FIREWALL_ALERT:
-            if (s_logger.isDebugEnabled())
-                s_logger.debug("Console proxy firewall alert, zone: " + 
dc.getName() + ", proxy: " + proxy.getHostName() + ", public IP: " +
-                        proxy.getPublicIpAddress() + ", private IP: " + 
(proxy.getPrivateIpAddress() == null ? "N/A" : proxy.getPrivateIpAddress()));
-
-            _alertMgr.sendAlert(
-                    AlertManager.AlertType.ALERT_TYPE_CONSOLE_PROXY,
-                    args.getZoneId(),
-                    proxy.getPodIdToDeployIn(),
-                    "Failed to open console proxy firewall port. zone: " + 
dc.getName() + ", proxy: " + proxy.getHostName() + ", public IP: " +
-                            proxy.getPublicIpAddress() + ", private IP: " + 
(proxy.getPrivateIpAddress() == null ? "N/A" : proxy.getPrivateIpAddress()),
-                            "Console proxy alert (zone " + dc.getName() + ")");
-            break;
-
-        case ConsoleProxyAlertEventArgs.PROXY_STORAGE_ALERT:
-            if (s_logger.isDebugEnabled())
-                s_logger.debug("Console proxy storage alert, zone: " + 
dc.getName() + ", proxy: " + proxy.getHostName() + ", public IP: " +
-                        proxy.getPublicIpAddress() + ", private IP: " + 
proxy.getPrivateIpAddress() + ", message: " + args.getMessage());
-
-            
_alertMgr.sendAlert(AlertManager.AlertType.ALERT_TYPE_STORAGE_MISC, 
args.getZoneId(), proxy.getPodIdToDeployIn(),
-                    "Console proxy storage issue. zone: " + dc.getName() + ", 
message: " + args.getMessage(), "Console proxy alert (zone " + dc.getName() + 
")");
-            break;
+            case ConsoleProxyAlertEventArgs.PROXY_CREATED:
+                if (s_logger.isDebugEnabled()) {
+                    s_logger.debug("New console proxy created, " + 
zoneProxyPublicAndPrivateIp);
+                }
+                break;
+
+            case ConsoleProxyAlertEventArgs.PROXY_UP:
+                message = "Console proxy up in " + zoneProxyPublicAndPrivateIp;
+                if (s_logger.isDebugEnabled()) {
+                    s_logger.debug(message);
+                }
+
+                
_alertMgr.sendAlert(AlertService.AlertType.ALERT_TYPE_CONSOLE_PROXY, 
args.getZoneId(), proxyPodIdToDeployIn, message, "Console proxy up " + zone);
+                break;
+
+            case ConsoleProxyAlertEventArgs.PROXY_DOWN:
+                message = "Console proxy is down in " + 
zoneProxyPublicAndPrivateIp;
+                if (s_logger.isDebugEnabled()) {
+                    s_logger.debug(message);
+                }
+
+                
_alertMgr.sendAlert(AlertService.AlertType.ALERT_TYPE_CONSOLE_PROXY, 
args.getZoneId(), proxyPodIdToDeployIn, message, "Console proxy down " + zone);
+                break;
+
+            case ConsoleProxyAlertEventArgs.PROXY_REBOOTED:
+                message = "Console proxy is rebooted in " + 
zoneProxyPublicAndPrivateIp;
+                if (s_logger.isDebugEnabled()) {
+                    s_logger.debug(message);
+                }
+
+                
_alertMgr.sendAlert(AlertService.AlertType.ALERT_TYPE_CONSOLE_PROXY, 
args.getZoneId(), proxyPodIdToDeployIn, message, "Console proxy rebooted " + 
zone);
+                break;
+
+            case ConsoleProxyAlertEventArgs.PROXY_CREATE_FAILURE:
+                message = String.format("Console proxy creation failure. Zone 
[%s].", dc.getName());
+                if (s_logger.isDebugEnabled()) {
+                    s_logger.debug(message);
+                }
+
+                
_alertMgr.sendAlert(AlertService.AlertType.ALERT_TYPE_CONSOLE_PROXY, 
args.getZoneId(), null, message + errorDetails, "Console proxy creation failure 
" + zone);
+                break;
+
+            case ConsoleProxyAlertEventArgs.PROXY_START_FAILURE:
+                message = "Console proxy startup failure in " + 
zoneProxyPublicAndPrivateIp;
+                if (s_logger.isDebugEnabled()) {
+                    s_logger.debug(message);
+                }
+
+                
_alertMgr.sendAlert(AlertService.AlertType.ALERT_TYPE_CONSOLE_PROXY, 
args.getZoneId(), proxyPodIdToDeployIn, message + errorDetails,
+                        "Console proxy startup failure " + zone);
+                break;
+
+            case ConsoleProxyAlertEventArgs.PROXY_FIREWALL_ALERT:
+                if (s_logger.isDebugEnabled()) {
+                    s_logger.debug("Console proxy firewall alert, " + 
zoneProxyPublicAndPrivateIp);
+                }
+
+                
_alertMgr.sendAlert(AlertService.AlertType.ALERT_TYPE_CONSOLE_PROXY, 
args.getZoneId(), proxyPodIdToDeployIn, "Failed to open console proxy firewall 
port. " +
+                        zoneProxyPublicAndPrivateIp, "Console proxy alert " + 
zone);
+                break;
+
+            case ConsoleProxyAlertEventArgs.PROXY_STORAGE_ALERT:
+                message = zoneProxyPublicAndPrivateIp + ", message: " + 
args.getMessage();
+                if (s_logger.isDebugEnabled()) {
+                    s_logger.debug("Console proxy storage alert, " + message);
+                }
+                
_alertMgr.sendAlert(AlertService.AlertType.ALERT_TYPE_STORAGE_MISC, 
args.getZoneId(), proxyPodIdToDeployIn, "Console proxy storage issue. " + 
message,
+                        "Console proxy alert " + zone);
+                break;
         }
     }
 
diff --git 
a/server/src/main/java/com/cloud/alert/SecondaryStorageVmAlertAdapter.java 
b/server/src/main/java/com/cloud/alert/SecondaryStorageVmAlertAdapter.java
index c29b982a5c4..c7d7c5c4fef 100644
--- a/server/src/main/java/com/cloud/alert/SecondaryStorageVmAlertAdapter.java
+++ b/server/src/main/java/com/cloud/alert/SecondaryStorageVmAlertAdapter.java
@@ -21,6 +21,7 @@ import java.util.Map;
 import javax.inject.Inject;
 import javax.naming.ConfigurationException;
 
+import org.apache.cloudstack.alert.AlertService;
 import org.apache.log4j.Logger;
 import org.springframework.stereotype.Component;
 
@@ -59,92 +60,94 @@ public class SecondaryStorageVmAlertAdapter extends 
AdapterBase implements Alert
             throw new CloudRuntimeException("Invalid alert arguments, 
secStorageVm must be set");
         }
 
+        String secStorageVmHostName = "";
+        String secStorageVmPublicIpAddress = "";
+        String secStorageVmPrivateIpAddress = "N/A";
+        Long secStorageVmPodIdToDeployIn = null;
+
+        if (secStorageVm != null) {
+            secStorageVmHostName = secStorageVm.getHostName();
+            secStorageVmPublicIpAddress = secStorageVm.getPublicIpAddress();
+            secStorageVmPrivateIpAddress = secStorageVm.getPrivateIpAddress() 
== null ? "N/A" : secStorageVm.getPrivateIpAddress();
+            secStorageVmPodIdToDeployIn = secStorageVm.getPodIdToDeployIn();
+        }
+        String message = "";
+        String zoneSecStorageVmPrivateAndPublicIp = String.format("zone [%s], 
secStorageVm [%s], public IP [%s], private IP [%s].", dc.getName(), 
secStorageVmHostName,
+                secStorageVmPublicIpAddress, secStorageVmPrivateIpAddress);
+        String errorDetails = " Error details: " + args.getMessage();
+        String zone = String.format("(zone %s)", dc.getName());
+
         switch (args.getType()) {
-        case SecStorageVmAlertEventArgs.SSVM_CREATED:
-            if (s_logger.isDebugEnabled())
-                s_logger.debug("New secondary storage vm created, zone: " + 
dc.getName() + ", secStorageVm: " + secStorageVm.getHostName() + ", public IP: 
" +
-                        secStorageVm.getPublicIpAddress() + ", private IP: " + 
secStorageVm.getPrivateIpAddress());
-            break;
-
-        case SecStorageVmAlertEventArgs.SSVM_UP:
-            if (s_logger.isDebugEnabled())
-                s_logger.debug("Secondary Storage Vm is up, zone: " + 
dc.getName() + ", secStorageVm: " + secStorageVm.getHostName() + ", public IP: 
" +
-                        secStorageVm.getPublicIpAddress() + ", private IP: " + 
secStorageVm.getPrivateIpAddress());
-
-            _alertMgr.sendAlert(AlertManager.AlertType.ALERT_TYPE_SSVM, 
args.getZoneId(), secStorageVm.getPodIdToDeployIn(), "Secondary Storage Vm up 
in zone: " +
-                    dc.getName() + ", secStorageVm: " + 
secStorageVm.getHostName() + ", public IP: " + 
secStorageVm.getPublicIpAddress() + ", private IP: " +
-                    (secStorageVm.getPrivateIpAddress() == null ? "N/A" : 
secStorageVm.getPrivateIpAddress()), "Secondary Storage Vm up (zone " + 
dc.getName() + ")");
-            break;
-
-        case SecStorageVmAlertEventArgs.SSVM_DOWN:
-            if (s_logger.isDebugEnabled())
-                s_logger.debug("Secondary Storage Vm is down, zone: " + 
dc.getName() + ", secStorageVm: " + secStorageVm.getHostName() + ", public IP: 
" +
-                        secStorageVm.getPublicIpAddress() + ", private IP: " + 
(secStorageVm.getPrivateIpAddress() == null ? "N/A" : 
secStorageVm.getPrivateIpAddress()));
-
-            _alertMgr.sendAlert(
-                    AlertManager.AlertType.ALERT_TYPE_SSVM,
-                    args.getZoneId(),
-                    secStorageVm.getPodIdToDeployIn(),
-                    "Secondary Storage Vm down in zone: " + dc.getName() + ", 
secStorageVm: " + secStorageVm.getHostName() + ", public IP: " +
-                            secStorageVm.getPublicIpAddress() + ", private IP: 
" + (secStorageVm.getPrivateIpAddress() == null ? "N/A" : 
secStorageVm.getPrivateIpAddress()),
-                            "Secondary Storage Vm down (zone " + dc.getName() 
+ ")");
-            break;
-
-        case SecStorageVmAlertEventArgs.SSVM_REBOOTED:
-            if (s_logger.isDebugEnabled())
-                s_logger.debug("Secondary Storage Vm is rebooted, zone: " + 
dc.getName() + ", secStorageVm: " + secStorageVm.getHostName() + ", public IP: 
" +
-                        secStorageVm.getPublicIpAddress() + ", private IP: " + 
(secStorageVm.getPrivateIpAddress() == null ? "N/A" : 
secStorageVm.getPrivateIpAddress()));
-
-            _alertMgr.sendAlert(
-                    AlertManager.AlertType.ALERT_TYPE_SSVM,
-                    args.getZoneId(),
-                    secStorageVm.getPodIdToDeployIn(),
-                    "Secondary Storage Vm rebooted in zone: " + dc.getName() + 
", secStorageVm: " + secStorageVm.getHostName() + ", public IP: " +
-                            secStorageVm.getPublicIpAddress() + ", private IP: 
" + (secStorageVm.getPrivateIpAddress() == null ? "N/A" : 
secStorageVm.getPrivateIpAddress()),
-                            "Secondary Storage Vm rebooted (zone " + 
dc.getName() + ")");
-            break;
-
-        case SecStorageVmAlertEventArgs.SSVM_CREATE_FAILURE:
-            if (s_logger.isDebugEnabled())
-                s_logger.debug("Secondary Storage Vm creation failure, zone: " 
+ dc.getName());
-
-            _alertMgr.sendAlert(AlertManager.AlertType.ALERT_TYPE_SSVM, 
args.getZoneId(), null,
-                    "Secondary Storage Vm creation failure. zone: " + 
dc.getName() + ", error details: " + args.getMessage(),
-                    "Secondary Storage Vm creation failure (zone " + 
dc.getName() + ")");
-            break;
-
-        case SecStorageVmAlertEventArgs.SSVM_START_FAILURE:
-            if (s_logger.isDebugEnabled())
-                s_logger.debug("Secondary Storage Vm startup failure, zone: " 
+ dc.getName() + ", secStorageVm: " + secStorageVm.getHostName() + ", public 
IP: " +
-                        secStorageVm.getPublicIpAddress() + ", private IP: " + 
(secStorageVm.getPrivateIpAddress() == null ? "N/A" : 
secStorageVm.getPrivateIpAddress()));
-
-            _alertMgr.sendAlert(AlertManager.AlertType.ALERT_TYPE_SSVM, 
args.getZoneId(), secStorageVm.getPodIdToDeployIn(),
-                    "Secondary Storage Vm startup failure. zone: " +
-                            dc.getName() + ", secStorageVm: " + 
secStorageVm.getHostName() + ", public IP: " + 
secStorageVm.getPublicIpAddress() + ", private IP: " +
-                            (secStorageVm.getPrivateIpAddress() == null ? 
"N/A" : secStorageVm.getPrivateIpAddress()) + ", error details: " + 
args.getMessage(),
-                            "Secondary Storage Vm startup failure (zone " + 
dc.getName() + ")");
-            break;
-
-        case SecStorageVmAlertEventArgs.SSVM_FIREWALL_ALERT:
-            if (s_logger.isDebugEnabled())
-                s_logger.debug("Secondary Storage Vm firewall alert, zone: " + 
dc.getName() + ", secStorageVm: " + secStorageVm.getHostName() + ", public IP: 
" +
-                        secStorageVm.getPublicIpAddress() + ", private IP: " + 
(secStorageVm.getPrivateIpAddress() == null ? "N/A" : 
secStorageVm.getPrivateIpAddress()));
-
-            _alertMgr.sendAlert(AlertManager.AlertType.ALERT_TYPE_SSVM, 
args.getZoneId(), secStorageVm.getPodIdToDeployIn(),
-                    "Failed to open secondary storage vm firewall port. zone: 
" + dc.getName() + ", secStorageVm: " + secStorageVm.getHostName() + ", public 
IP: " +
-                            secStorageVm.getPublicIpAddress() + ", private IP: 
" + (secStorageVm.getPrivateIpAddress() == null ? "N/A" : 
secStorageVm.getPrivateIpAddress()),
-                            "Secondary Storage Vm alert (zone " + dc.getName() 
+ ")");
-            break;
-
-        case SecStorageVmAlertEventArgs.SSVM_STORAGE_ALERT:
-            if (s_logger.isDebugEnabled())
-                s_logger.debug("Secondary Storage Vm storage alert, zone: " + 
dc.getName() + ", secStorageVm: " + secStorageVm.getHostName() + ", public IP: 
" +
-                        secStorageVm.getPublicIpAddress() + ", private IP: " + 
secStorageVm.getPrivateIpAddress() + ", message: " + args.getMessage());
-
-            
_alertMgr.sendAlert(AlertManager.AlertType.ALERT_TYPE_STORAGE_MISC, 
args.getZoneId(), secStorageVm.getPodIdToDeployIn(),
-                    "Secondary Storage Vm storage issue. zone: " + 
dc.getName() + ", message: " + args.getMessage(), "Secondary Storage Vm alert 
(zone " + dc.getName() +
-                    ")");
-            break;
+            case SecStorageVmAlertEventArgs.SSVM_CREATED:
+                if (s_logger.isDebugEnabled()) {
+                    s_logger.debug("New secondary storage vm created in " + 
zoneSecStorageVmPrivateAndPublicIp);
+                }
+                break;
+
+            case SecStorageVmAlertEventArgs.SSVM_UP:
+                message = "Secondary Storage Vm is up in " + 
zoneSecStorageVmPrivateAndPublicIp;
+                if (s_logger.isDebugEnabled()) {
+                    s_logger.debug(message);
+                }
+
+                _alertMgr.sendAlert(AlertService.AlertType.ALERT_TYPE_SSVM, 
args.getZoneId(), secStorageVmPodIdToDeployIn, message, "Secondary Storage Vm 
up " + zone);
+                break;
+
+            case SecStorageVmAlertEventArgs.SSVM_DOWN:
+                message = "Secondary Storage Vm is down in " + 
zoneSecStorageVmPrivateAndPublicIp;
+                if (s_logger.isDebugEnabled()) {
+                    s_logger.debug(message);
+                }
+
+                _alertMgr.sendAlert(AlertService.AlertType.ALERT_TYPE_SSVM, 
args.getZoneId(), secStorageVmPodIdToDeployIn, message, "Secondary Storage Vm 
down " + zone);
+                break;
+
+            case SecStorageVmAlertEventArgs.SSVM_REBOOTED:
+                message = "Secondary Storage Vm rebooted in " + 
zoneSecStorageVmPrivateAndPublicIp;
+                if (s_logger.isDebugEnabled()) {
+                    s_logger.debug(message);
+                }
+
+                _alertMgr.sendAlert(AlertService.AlertType.ALERT_TYPE_SSVM, 
args.getZoneId(), secStorageVmPodIdToDeployIn, message, "Secondary Storage Vm 
rebooted " + zone);
+                break;
+
+            case SecStorageVmAlertEventArgs.SSVM_CREATE_FAILURE:
+                message = String.format("Secondary Storage Vm creation failure 
in zone [%s].", dc.getName());
+                if (s_logger.isDebugEnabled()) {
+                    s_logger.debug(message);
+                }
+
+                _alertMgr.sendAlert(AlertService.AlertType.ALERT_TYPE_SSVM, 
args.getZoneId(), null, message + errorDetails,
+                        "Secondary Storage Vm creation failure " + zone);
+                break;
+
+            case SecStorageVmAlertEventArgs.SSVM_START_FAILURE:
+                message = "Secondary Storage Vm startup failure in " + 
zoneSecStorageVmPrivateAndPublicIp;
+                if (s_logger.isDebugEnabled()) {
+                    s_logger.debug(message);
+                }
+
+                _alertMgr.sendAlert(AlertService.AlertType.ALERT_TYPE_SSVM, 
args.getZoneId(), secStorageVmPodIdToDeployIn, message + errorDetails,
+                        "Secondary Storage Vm startup failure " + zone);
+                break;
+
+            case SecStorageVmAlertEventArgs.SSVM_FIREWALL_ALERT:
+                if (s_logger.isDebugEnabled()) {
+                    s_logger.debug("Secondary Storage Vm firewall alert, " + 
zoneSecStorageVmPrivateAndPublicIp);
+                }
+
+                _alertMgr.sendAlert(AlertService.AlertType.ALERT_TYPE_SSVM, 
args.getZoneId(), secStorageVmPodIdToDeployIn, "Failed to open secondary 
storage vm firewall port. "
+                                + zoneSecStorageVmPrivateAndPublicIp, 
"Secondary Storage Vm alert " + zone);
+                break;
+
+            case SecStorageVmAlertEventArgs.SSVM_STORAGE_ALERT:
+                if (s_logger.isDebugEnabled()) {
+                    s_logger.debug("Secondary Storage Vm storage alert, " + 
zoneSecStorageVmPrivateAndPublicIp + ", message: " + args.getMessage());
+                }
+
+                
_alertMgr.sendAlert(AlertService.AlertType.ALERT_TYPE_STORAGE_MISC, 
args.getZoneId(), secStorageVmPodIdToDeployIn,
+                        "Secondary Storage Vm storage issue. zone: " + 
dc.getName() + ", message: " + args.getMessage(), "Secondary Storage Vm alert " 
+ zone);
+                break;
         }
     }
 
diff --git a/server/src/main/java/com/cloud/api/ApiServer.java 
b/server/src/main/java/com/cloud/api/ApiServer.java
index db79141b437..b62e59f5c27 100644
--- a/server/src/main/java/com/cloud/api/ApiServer.java
+++ b/server/src/main/java/com/cloud/api/ApiServer.java
@@ -188,6 +188,8 @@ public class ApiServer extends ManagerBase implements 
HttpRequestHandler, ApiSer
     private static final Logger s_logger = 
Logger.getLogger(ApiServer.class.getName());
     private static final Logger s_accessLogger = Logger.getLogger("apiserver." 
+ ApiServer.class.getName());
 
+    private static final String SANITIZATION_REGEX = "[\n\r]";
+
     private static boolean encodeApiResponse = false;
 
     /**
@@ -919,7 +921,7 @@ public class ApiServer extends ManagerBase implements 
HttpRequestHandler, ApiSer
             if ("3".equals(signatureVersion)) {
                 // New signature authentication. Check for expire parameter 
and its validity
                 if (expires == null) {
-                    s_logger.debug("Missing Expires parameter -- ignoring 
request. Signature: " + signature + ", apiKey: " + apiKey);
+                    s_logger.debug("Missing Expires parameter -- ignoring 
request.");
                     return false;
                 }
 
@@ -932,7 +934,9 @@ public class ApiServer extends ManagerBase implements 
HttpRequestHandler, ApiSer
 
                 final Date now = new Date(System.currentTimeMillis());
                 if (expiresTS.before(now)) {
-                    s_logger.debug("Request expired -- ignoring ...sig: " + 
signature + ", apiKey: " + apiKey);
+                    signature = signature.replaceAll(SANITIZATION_REGEX, "_");
+                    apiKey = apiKey.replaceAll(SANITIZATION_REGEX, "_");
+                    s_logger.debug(String.format("Request expired -- ignoring 
...sig [%s], apiKey [%s].", signature, apiKey));
                     return false;
                 }
             }
@@ -979,7 +983,8 @@ public class ApiServer extends ManagerBase implements 
HttpRequestHandler, ApiSer
             final boolean equalSig = 
ConstantTimeComparator.compareStrings(signature, computedSignature);
 
             if (!equalSig) {
-                s_logger.info("User signature: " + signature + " is not 
equaled to computed signature: " + computedSignature);
+                signature = signature.replaceAll(SANITIZATION_REGEX, "_");
+                s_logger.info(String.format("User signature [%s] is not 
equaled to computed signature [%s].", signature, computedSignature));
             } else {
                 CallContext.register(user, account);
             }
diff --git 
a/server/src/main/java/com/cloud/network/ExternalLoadBalancerDeviceManagerImpl.java
 
b/server/src/main/java/com/cloud/network/ExternalLoadBalancerDeviceManagerImpl.java
index 34f1c4b2bca..c44dfa54eea 100644
--- 
a/server/src/main/java/com/cloud/network/ExternalLoadBalancerDeviceManagerImpl.java
+++ 
b/server/src/main/java/com/cloud/network/ExternalLoadBalancerDeviceManagerImpl.java
@@ -720,10 +720,10 @@ public abstract class 
ExternalLoadBalancerDeviceManagerImpl extends AdapterBase
                     DestroyLoadBalancerApplianceAnswer answer = null;
                     try {
                         answer = 
(DestroyLoadBalancerApplianceAnswer)_agentMgr.easySend(lbDevice.getParentHostId(),
 lbDeleteCmd);
-                        if (answer == null || !answer.getResult()) {
-                            s_logger.warn("Failed to destoy load balancer 
appliance used by the network"
-                                    + guestConfig.getId() + " due to " + 
answer == null ? "communication error with agent"
-                                    : answer.getDetails());
+                        if (answer == null) {
+                            s_logger.warn(String.format("Failed to destroy 
load balancer appliance used by the network [%s] due to a communication error 
with agent.", guestConfig.getId()));
+                        } else if (!answer.getResult()) {
+                            s_logger.warn(String.format("Failed to destroy 
load balancer appliance used by the network [%s] due to [%s].", 
guestConfig.getId(),  answer.getDetails()));
                         }
                     } catch (Exception e) {
                         s_logger.warn("Failed to destroy load balancer 
appliance used by the network" + guestConfig.getId() + " due to " + 
e.getMessage());
diff --git a/server/src/main/java/com/cloud/servlet/ConsoleProxyServlet.java 
b/server/src/main/java/com/cloud/servlet/ConsoleProxyServlet.java
index 595299440fe..83c359a96f9 100644
--- a/server/src/main/java/com/cloud/servlet/ConsoleProxyServlet.java
+++ b/server/src/main/java/com/cloud/servlet/ConsoleProxyServlet.java
@@ -71,6 +71,8 @@ public class ConsoleProxyServlet extends HttpServlet {
     private static final int DEFAULT_THUMBNAIL_WIDTH = 144;
     private static final int DEFAULT_THUMBNAIL_HEIGHT = 110;
 
+    private static final String SANITIZATION_REGEX = "[\n\r]";
+
     @Inject
     AccountManager _accountMgr;
     @Inject
@@ -154,7 +156,13 @@ public class ConsoleProxyServlet extends HttpServlet {
 
             String cmd = req.getParameter("cmd");
             if (cmd == null || !isValidCmd(cmd)) {
-                s_logger.debug("invalid console servlet command: " + cmd);
+                if (cmd != null) {
+                    cmd = cmd.replaceAll(SANITIZATION_REGEX, "_");
+                    s_logger.debug(String.format("invalid console servlet 
command [%s].", cmd));
+                } else {
+                    s_logger.debug("Null console servlet command.");
+                }
+
                 sendResponse(resp, "");
                 return;
             }
@@ -162,7 +170,13 @@ public class ConsoleProxyServlet extends HttpServlet {
             String vmIdString = req.getParameter("vm");
             VirtualMachine vm = _entityMgr.findByUuid(VirtualMachine.class, 
vmIdString);
             if (vm == null) {
-                s_logger.info("invalid console servlet command parameter: " + 
vmIdString);
+                if (vmIdString != null) {
+                    vmIdString = vmIdString.replaceAll(SANITIZATION_REGEX, 
"_");
+                    s_logger.info(String.format("invalid console servlet 
command vm parameter[%s].", vmIdString));
+                } else {
+                    s_logger.info("Null console servlet command VM 
parameter.");
+                }
+
                 sendResponse(resp, "");
                 return;
             }
@@ -262,7 +276,13 @@ public class ConsoleProxyServlet extends HttpServlet {
 
         String sid = req.getParameter("sid");
         if (sid == null || !sid.equals(vm.getVncPassword())) {
-            s_logger.warn("sid " + sid + " in url does not match stored sid.");
+            if(sid != null) {
+                sid = sid.replaceAll(SANITIZATION_REGEX, "_");
+                s_logger.warn(String.format("sid [%s] in url does not match 
stored sid.", sid));
+            } else {
+                s_logger.warn("Null sid in URL.");
+            }
+
             sendResponse(resp, "failed");
             return;
         }
diff --git a/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java 
b/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java
index 0023853c838..719971a261f 100644
--- a/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java
+++ b/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java
@@ -7201,7 +7201,8 @@ public class UserVmManagerImpl extends ManagerBase 
implements UserVmManager, Vir
 
             _securityGroupMgr.addInstanceToGroups(vm.getId(), 
securityGroupIdList);
 
-            s_logger.debug("AssignVM: Basic zone, adding security groups no " 
+ securityGroupIdList.size() + " to " + vm.getInstanceName());
+            int securityIdList = securityGroupIdList != null ? 
securityGroupIdList.size() : 0;
+            s_logger.debug("AssignVM: Basic zone, adding security groups no " 
+ securityIdList + " to " + vm.getInstanceName());
         } else {
             Set<NetworkVO> applicableNetworks = new LinkedHashSet<>();
             Map<Long, String> requestedIPv4ForNics = new HashMap<>();
diff --git 
a/server/src/main/java/org/apache/cloudstack/outofbandmanagement/OutOfBandManagementServiceImpl.java
 
b/server/src/main/java/org/apache/cloudstack/outofbandmanagement/OutOfBandManagementServiceImpl.java
index 39cea17d9f0..302765aa287 100644
--- 
a/server/src/main/java/org/apache/cloudstack/outofbandmanagement/OutOfBandManagementServiceImpl.java
+++ 
b/server/src/main/java/org/apache/cloudstack/outofbandmanagement/OutOfBandManagementServiceImpl.java
@@ -255,7 +255,8 @@ public class OutOfBandManagementServiceImpl extends 
ManagerBase implements OutOf
 
         Host host = hostDao.findById(hostId);
         if (host == null || host.getResourceState() == ResourceState.Degraded) 
{
-            LOG.debug(String.format("Host [id=%s, state=] was removed or 
placed in Degraded state by the Admin.", hostId, host.getResourceState()));
+            String state = host != null ? 
String.valueOf(host.getResourceState()) : null;
+            LOG.debug(String.format("Host [id=%s, state=%s] was removed or 
placed in Degraded state by the Admin.", hostId, state));
             return false;
         }
 
diff --git 
a/services/secondary-storage/server/src/main/java/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java
 
b/services/secondary-storage/server/src/main/java/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java
index e32e2455e09..3300207a280 100644
--- 
a/services/secondary-storage/server/src/main/java/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java
+++ 
b/services/secondary-storage/server/src/main/java/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java
@@ -865,7 +865,7 @@ public class NfsSecondaryStorageResource extends 
ServerResourceBase implements S
 
             String templateUuid = UUID.randomUUID().toString();
             String templateName = templateUuid + ".vhd";
-            Script command = new Script(createTemplateFromSnapshotXenScript, 
cmd.getWait() * 1000, s_logger);
+            Script command = new Script(createTemplateFromSnapshotXenScript, 
cmd.getWait() * 1000L, s_logger);
             command.add("-p", snapshotPath);
             command.add("-s", snapshotName);
             command.add("-n", templateName);


Reply via email to