Skip to content

Commit 1d0762e

Browse files
committed
Merge release branch 4.18 to main
* 4.18: Fix PR 7131 bugs and vulnerabilities (#7140)
2 parents 9ca5f28 + 523ab58 commit 1d0762e

13 files changed

Lines changed: 229 additions & 182 deletions

File tree

plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1759,7 +1759,7 @@ private boolean checkOvsNetwork(final String networkName) {
17591759
}
17601760

17611761
public boolean passCmdLine(final String vmName, final String cmdLine) throws InternalErrorException {
1762-
final Script command = new Script(_patchScriptPath, 300 * 1000, s_logger);
1762+
final Script command = new Script(_patchScriptPath, 300000, s_logger);
17631763
String result;
17641764
command.add("-n", vmName);
17651765
command.add("-c", cmdLine);

plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1427,7 +1427,9 @@ public KVMPhysicalDisk copyPhysicalDisk(KVMPhysicalDisk disk, String name, KVMSt
14271427

14281428
r.ioCtxDestroy(io);
14291429
} catch (QemuImgException | LibvirtException e) {
1430-
s_logger.error("Failed to convert from " + srcFile.getFileName() + " to " + destFile.getFileName() + " the error was: " + e.getMessage());
1430+
String srcFilename = srcFile != null ? srcFile.getFileName() : null;
1431+
String destFilename = destFile != null ? destFile.getFileName() : null;
1432+
s_logger.error(String.format("Failed to convert from %s to %s the error was: %s", srcFilename, destFilename, e.getMessage()));
14311433
newDisk = null;
14321434
} catch (RadosException e) {
14331435
s_logger.error("A Ceph RADOS operation failed (" + e.getReturnValue() + "). The error was: " + e.getMessage());

plugins/hypervisors/ovm/src/main/java/com/cloud/ovm/hypervisor/OvmResourceBase.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@ public boolean configure(String name, Map<String, Object> params) throws Configu
258258

259259
_canBridgeFirewall = false;
260260

261-
s_logger.debug(_canBridgeFirewall ? "OVM host supports security groups." : "OVM host doesn't support security groups.");
261+
s_logger.debug("OVM host doesn't support security groups.");
262262

263263
return true;
264264
}

plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7541,6 +7541,11 @@ private List<VolumeObjectTO> relocateVirtualMachine(final VmwareHypervisorHost h
75417541
// prepare network on the host
75427542
prepareNetworkFromNicInfo((HostMO)targetHyperHost, nic, false, vmTo.getType());
75437543
}
7544+
7545+
if (targetHyperHost == null) {
7546+
throw new CloudRuntimeException(String.format("Trying to relocate VM [%s], but target hyper host is null.", vmTo.getUuid()));
7547+
}
7548+
75447549
// Ensure secondary storage mounted on target host
75457550
VmwareManager mgr = targetHyperHost.getContext().getStockObject(VmwareManager.CONTEXT_STOCK_NAME);
75467551
Pair<String, Long> secStoreUrlAndId = mgr.getSecondaryStorageStoreUrlAndId(Long.parseLong(_dcId));

plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/xenserver/resource/XenServerConnectionPool.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,8 @@ public Connection connect(String hostUuid, String poolUuid, String ipAddress,
210210
throw e;
211211
} catch (Exception e) {
212212
if (s_logger.isDebugEnabled()) {
213-
s_logger.debug("connect through IP(" + mConn.getIp() + " for pool(" + poolUuid + ") is broken due to " + e.toString());
213+
String ip = mConn != null ? mConn.getIp() : null;
214+
s_logger.debug("connect through IP(" + ip + ") for pool(" + poolUuid + ") is broken due to " + e.toString());
214215
}
215216
removeConnect(poolUuid);
216217
mConn = null;

server/src/main/java/com/cloud/alert/ConsoleProxyAlertAdapter.java

Lines changed: 89 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import javax.inject.Inject;
2222
import javax.naming.ConfigurationException;
2323

24+
import org.apache.cloudstack.alert.AlertService;
2425
import org.apache.log4j.Logger;
2526
import org.springframework.stereotype.Component;
2627

@@ -60,87 +61,95 @@ public void onProxyAlert(Object sender, ConsoleProxyAlertEventArgs args) {
6061
throw new CloudRuntimeException("Invalid alert arguments, proxy must be set");
6162
}
6263

64+
String proxyHostName = "";
65+
String proxyPublicIpAddress = "";
66+
String proxyPrivateIpAddress = "N/A";
67+
Long proxyPodIdToDeployIn = null;
68+
69+
if (proxy != null) {
70+
proxyHostName = proxy.getHostName();
71+
proxyPublicIpAddress = proxy.getPublicIpAddress();
72+
proxyPrivateIpAddress = proxy.getPrivateIpAddress() == null ? "N/A" : proxy.getPrivateIpAddress();
73+
proxyPodIdToDeployIn = proxy.getPodIdToDeployIn();
74+
}
75+
76+
String message = "";
77+
String zoneProxyPublicAndPrivateIp = String.format("zone [%s], proxy [%s], public IP [%s], private IP [%s].", dc.getName(), proxyHostName, proxyPublicIpAddress,
78+
proxyPrivateIpAddress);
79+
String zone = String.format("(zone %s)", dc.getName());
80+
String errorDetails = " Error details: " + args.getMessage();
81+
82+
6383
switch (args.getType()) {
64-
case ConsoleProxyAlertEventArgs.PROXY_CREATED:
65-
if (s_logger.isDebugEnabled())
66-
s_logger.debug("New console proxy created, zone: " + dc.getName() + ", proxy: " + proxy.getHostName() + ", public IP: " + proxy.getPublicIpAddress() +
67-
", private IP: " + proxy.getPrivateIpAddress());
68-
break;
69-
70-
case ConsoleProxyAlertEventArgs.PROXY_UP:
71-
if (s_logger.isDebugEnabled())
72-
s_logger.debug("Console proxy is up, zone: " + dc.getName() + ", proxy: " + proxy.getHostName() + ", public IP: " + proxy.getPublicIpAddress() +
73-
", private IP: " + proxy.getPrivateIpAddress());
74-
75-
_alertMgr.sendAlert(AlertManager.AlertType.ALERT_TYPE_CONSOLE_PROXY, args.getZoneId(), proxy.getPodIdToDeployIn(),
76-
"Console proxy up in zone: " + dc.getName() +
77-
", proxy: " + proxy.getHostName() + ", public IP: " + proxy.getPublicIpAddress() + ", private IP: " +
78-
(proxy.getPrivateIpAddress() == null ? "N/A" : proxy.getPrivateIpAddress()), "Console proxy up (zone " + dc.getName() + ")");
79-
break;
80-
81-
case ConsoleProxyAlertEventArgs.PROXY_DOWN:
82-
if (s_logger.isDebugEnabled())
83-
s_logger.debug("Console proxy is down, zone: " + dc.getName() + ", proxy: " + proxy.getHostName() + ", public IP: " + proxy.getPublicIpAddress() +
84-
", private IP: " + (proxy.getPrivateIpAddress() == null ? "N/A" : proxy.getPrivateIpAddress()));
85-
86-
_alertMgr.sendAlert(AlertManager.AlertType.ALERT_TYPE_CONSOLE_PROXY, args.getZoneId(), proxy.getPodIdToDeployIn(),
87-
"Console proxy down in zone: " + dc.getName() +
88-
", proxy: " + proxy.getHostName() + ", public IP: " + proxy.getPublicIpAddress() + ", private IP: " +
89-
(proxy.getPrivateIpAddress() == null ? "N/A" : proxy.getPrivateIpAddress()), "Console proxy down (zone " + dc.getName() + ")");
90-
break;
91-
92-
case ConsoleProxyAlertEventArgs.PROXY_REBOOTED:
93-
if (s_logger.isDebugEnabled())
94-
s_logger.debug("Console proxy is rebooted, zone: " + dc.getName() + ", proxy: " + proxy.getHostName() + ", public IP: " + proxy.getPublicIpAddress() +
95-
", private IP: " + (proxy.getPrivateIpAddress() == null ? "N/A" : proxy.getPrivateIpAddress()));
96-
97-
_alertMgr.sendAlert(AlertManager.AlertType.ALERT_TYPE_CONSOLE_PROXY, args.getZoneId(), proxy.getPodIdToDeployIn(),
98-
"Console proxy rebooted in zone: " + dc.getName() + ", proxy: " + proxy.getHostName() + ", public IP: " + proxy.getPublicIpAddress() +
99-
", private IP: " + (proxy.getPrivateIpAddress() == null ? "N/A" : proxy.getPrivateIpAddress()), "Console proxy rebooted (zone " + dc.getName() +
100-
")");
101-
break;
102-
103-
case ConsoleProxyAlertEventArgs.PROXY_CREATE_FAILURE:
104-
if (s_logger.isDebugEnabled())
105-
s_logger.debug("Console proxy creation failure, zone: " + dc.getName());
106-
_alertMgr.sendAlert(AlertManager.AlertType.ALERT_TYPE_CONSOLE_PROXY, args.getZoneId(), null,
107-
"Console proxy creation failure. zone: " + dc.getName() + ", error details: " + args.getMessage(),
108-
"Console proxy creation failure (zone " + dc.getName() + ")");
109-
break;
110-
111-
case ConsoleProxyAlertEventArgs.PROXY_START_FAILURE:
112-
if (s_logger.isDebugEnabled())
113-
s_logger.debug("Console proxy startup failure, zone: " + dc.getName() + ", proxy: " + proxy.getHostName() + ", public IP: " +
114-
proxy.getPublicIpAddress() + ", private IP: " + (proxy.getPrivateIpAddress() == null ? "N/A" : proxy.getPrivateIpAddress()));
115-
116-
_alertMgr.sendAlert(AlertManager.AlertType.ALERT_TYPE_CONSOLE_PROXY, args.getZoneId(), proxy.getPodIdToDeployIn(),
117-
"Console proxy startup failure. zone: " + dc.getName() + ", proxy: " + proxy.getHostName() + ", public IP: " + proxy.getPublicIpAddress() +
118-
", private IP: " + (proxy.getPrivateIpAddress() == null ? "N/A" : proxy.getPrivateIpAddress()) + ", error details: " + args.getMessage(),
119-
"Console proxy startup failure (zone " + dc.getName() + ")");
120-
break;
121-
122-
case ConsoleProxyAlertEventArgs.PROXY_FIREWALL_ALERT:
123-
if (s_logger.isDebugEnabled())
124-
s_logger.debug("Console proxy firewall alert, zone: " + dc.getName() + ", proxy: " + proxy.getHostName() + ", public IP: " +
125-
proxy.getPublicIpAddress() + ", private IP: " + (proxy.getPrivateIpAddress() == null ? "N/A" : proxy.getPrivateIpAddress()));
126-
127-
_alertMgr.sendAlert(
128-
AlertManager.AlertType.ALERT_TYPE_CONSOLE_PROXY,
129-
args.getZoneId(),
130-
proxy.getPodIdToDeployIn(),
131-
"Failed to open console proxy firewall port. zone: " + dc.getName() + ", proxy: " + proxy.getHostName() + ", public IP: " +
132-
proxy.getPublicIpAddress() + ", private IP: " + (proxy.getPrivateIpAddress() == null ? "N/A" : proxy.getPrivateIpAddress()),
133-
"Console proxy alert (zone " + dc.getName() + ")");
134-
break;
135-
136-
case ConsoleProxyAlertEventArgs.PROXY_STORAGE_ALERT:
137-
if (s_logger.isDebugEnabled())
138-
s_logger.debug("Console proxy storage alert, zone: " + dc.getName() + ", proxy: " + proxy.getHostName() + ", public IP: " +
139-
proxy.getPublicIpAddress() + ", private IP: " + proxy.getPrivateIpAddress() + ", message: " + args.getMessage());
140-
141-
_alertMgr.sendAlert(AlertManager.AlertType.ALERT_TYPE_STORAGE_MISC, args.getZoneId(), proxy.getPodIdToDeployIn(),
142-
"Console proxy storage issue. zone: " + dc.getName() + ", message: " + args.getMessage(), "Console proxy alert (zone " + dc.getName() + ")");
143-
break;
84+
case ConsoleProxyAlertEventArgs.PROXY_CREATED:
85+
if (s_logger.isDebugEnabled()) {
86+
s_logger.debug("New console proxy created, " + zoneProxyPublicAndPrivateIp);
87+
}
88+
break;
89+
90+
case ConsoleProxyAlertEventArgs.PROXY_UP:
91+
message = "Console proxy up in " + zoneProxyPublicAndPrivateIp;
92+
if (s_logger.isDebugEnabled()) {
93+
s_logger.debug(message);
94+
}
95+
96+
_alertMgr.sendAlert(AlertService.AlertType.ALERT_TYPE_CONSOLE_PROXY, args.getZoneId(), proxyPodIdToDeployIn, message, "Console proxy up " + zone);
97+
break;
98+
99+
case ConsoleProxyAlertEventArgs.PROXY_DOWN:
100+
message = "Console proxy is down in " + zoneProxyPublicAndPrivateIp;
101+
if (s_logger.isDebugEnabled()) {
102+
s_logger.debug(message);
103+
}
104+
105+
_alertMgr.sendAlert(AlertService.AlertType.ALERT_TYPE_CONSOLE_PROXY, args.getZoneId(), proxyPodIdToDeployIn, message, "Console proxy down " + zone);
106+
break;
107+
108+
case ConsoleProxyAlertEventArgs.PROXY_REBOOTED:
109+
message = "Console proxy is rebooted in " + zoneProxyPublicAndPrivateIp;
110+
if (s_logger.isDebugEnabled()) {
111+
s_logger.debug(message);
112+
}
113+
114+
_alertMgr.sendAlert(AlertService.AlertType.ALERT_TYPE_CONSOLE_PROXY, args.getZoneId(), proxyPodIdToDeployIn, message, "Console proxy rebooted " + zone);
115+
break;
116+
117+
case ConsoleProxyAlertEventArgs.PROXY_CREATE_FAILURE:
118+
message = String.format("Console proxy creation failure. Zone [%s].", dc.getName());
119+
if (s_logger.isDebugEnabled()) {
120+
s_logger.debug(message);
121+
}
122+
123+
_alertMgr.sendAlert(AlertService.AlertType.ALERT_TYPE_CONSOLE_PROXY, args.getZoneId(), null, message + errorDetails, "Console proxy creation failure " + zone);
124+
break;
125+
126+
case ConsoleProxyAlertEventArgs.PROXY_START_FAILURE:
127+
message = "Console proxy startup failure in " + zoneProxyPublicAndPrivateIp;
128+
if (s_logger.isDebugEnabled()) {
129+
s_logger.debug(message);
130+
}
131+
132+
_alertMgr.sendAlert(AlertService.AlertType.ALERT_TYPE_CONSOLE_PROXY, args.getZoneId(), proxyPodIdToDeployIn, message + errorDetails,
133+
"Console proxy startup failure " + zone);
134+
break;
135+
136+
case ConsoleProxyAlertEventArgs.PROXY_FIREWALL_ALERT:
137+
if (s_logger.isDebugEnabled()) {
138+
s_logger.debug("Console proxy firewall alert, " + zoneProxyPublicAndPrivateIp);
139+
}
140+
141+
_alertMgr.sendAlert(AlertService.AlertType.ALERT_TYPE_CONSOLE_PROXY, args.getZoneId(), proxyPodIdToDeployIn, "Failed to open console proxy firewall port. " +
142+
zoneProxyPublicAndPrivateIp, "Console proxy alert " + zone);
143+
break;
144+
145+
case ConsoleProxyAlertEventArgs.PROXY_STORAGE_ALERT:
146+
message = zoneProxyPublicAndPrivateIp + ", message: " + args.getMessage();
147+
if (s_logger.isDebugEnabled()) {
148+
s_logger.debug("Console proxy storage alert, " + message);
149+
}
150+
_alertMgr.sendAlert(AlertService.AlertType.ALERT_TYPE_STORAGE_MISC, args.getZoneId(), proxyPodIdToDeployIn, "Console proxy storage issue. " + message,
151+
"Console proxy alert " + zone);
152+
break;
144153
}
145154
}
146155

0 commit comments

Comments
 (0)