Fix volume snapshot in VM with attached ISO (#7037)

Co-authored-by: Stephan Krug <stephan.krug@scclouds.com.br>
This commit is contained in:
Stephan Krug 2023-01-04 05:24:34 -03:00 committed by GitHub
parent af59e76df6
commit 4d76054377
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 24 additions and 10 deletions

View File

@ -121,7 +121,7 @@ public class LibvirtDomainXMLParser {
} }
def.defFileBasedDisk(diskFile, diskLabel, DiskDef.DiskBus.valueOf(bus.toUpperCase()), fmt); def.defFileBasedDisk(diskFile, diskLabel, DiskDef.DiskBus.valueOf(bus.toUpperCase()), fmt);
} else if (device.equalsIgnoreCase("cdrom")) { } else if (device.equalsIgnoreCase("cdrom")) {
def.defISODisk(diskFile , i+1); def.defISODisk(diskFile, i+1, diskLabel);
} }
} else if (type.equalsIgnoreCase("block")) { } else if (type.equalsIgnoreCase("block")) {
def.defBlockBasedDisk(diskDev, diskLabel, def.defBlockBasedDisk(diskDev, diskLabel,

View File

@ -860,18 +860,32 @@ public class LibvirtVMDef {
} }
public void defISODisk(String volPath, Integer devId) { public void defISODisk(String volPath, Integer devId) {
if (devId == null) { defISODisk(volPath, devId, null);
}
public void defISODisk(String volPath, Integer devId, String diskLabel) {
if (devId == null && StringUtils.isBlank(diskLabel)) {
s_logger.debug(String.format("No ID or label informed for volume [%s].", volPath));
defISODisk(volPath); defISODisk(volPath);
} else { return;
}
_diskType = DiskType.FILE; _diskType = DiskType.FILE;
_deviceType = DeviceType.CDROM; _deviceType = DeviceType.CDROM;
_sourcePath = volPath; _sourcePath = volPath;
if (StringUtils.isNotBlank(diskLabel)) {
s_logger.debug(String.format("Using informed label [%s] for volume [%s].", diskLabel, volPath));
_diskLabel = diskLabel;
} else {
_diskLabel = getDevLabel(devId, DiskBus.IDE, true); _diskLabel = getDevLabel(devId, DiskBus.IDE, true);
s_logger.debug(String.format("Using device ID [%s] to define the label [%s] for volume [%s].", devId, _diskLabel, volPath));
}
_diskFmtType = DiskFmtType.RAW; _diskFmtType = DiskFmtType.RAW;
_diskCacheMode = DiskCacheMode.NONE; _diskCacheMode = DiskCacheMode.NONE;
_bus = DiskBus.IDE; _bus = DiskBus.IDE;
} }
}
public void defISODisk(String volPath, Integer devId,boolean isSecure) { public void defISODisk(String volPath, Integer devId,boolean isSecure) {
if (!isSecure) { if (!isSecure) {