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);
} else if (device.equalsIgnoreCase("cdrom")) {
def.defISODisk(diskFile , i+1);
def.defISODisk(diskFile, i+1, diskLabel);
}
} else if (type.equalsIgnoreCase("block")) {
def.defBlockBasedDisk(diskDev, diskLabel,

View File

@ -860,17 +860,31 @@ public class LibvirtVMDef {
}
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);
} else {
_diskType = DiskType.FILE;
_deviceType = DeviceType.CDROM;
_sourcePath = volPath;
_diskLabel = getDevLabel(devId, DiskBus.IDE, true);
_diskFmtType = DiskFmtType.RAW;
_diskCacheMode = DiskCacheMode.NONE;
_bus = DiskBus.IDE;
return;
}
_diskType = DiskType.FILE;
_deviceType = DeviceType.CDROM;
_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);
s_logger.debug(String.format("Using device ID [%s] to define the label [%s] for volume [%s].", devId, _diskLabel, volPath));
}
_diskFmtType = DiskFmtType.RAW;
_diskCacheMode = DiskCacheMode.NONE;
_bus = DiskBus.IDE;
}
public void defISODisk(String volPath, Integer devId,boolean isSecure) {