Start VM with deploy-as-is template having multiple disk (SCSI) controller types. (#5311)

This commit is contained in:
sureshanaparti 2021-08-31 06:22:24 +05:30 committed by GitHub
parent 46ca853e55
commit e50a40ea08
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 1 deletions

View File

@ -2603,7 +2603,8 @@ public class VmwareResource implements StoragePoolResource, ServerResource, Vmwa
try {
s_logger.debug("Mapping spec disks information to cloned VM disks for VM " + vmInternalCSName);
if (vmMo != null && ArrayUtils.isNotEmpty(specDisks)) {
List<VirtualDisk> vmDisks = vmMo.getVirtualDisks();
List<VirtualDisk> vmDisks = vmMo.getVirtualDisksOrderedByKey();
List<VirtualDisk> rootDisks = new ArrayList<>();
List<DiskTO> sortedRootDisksFromSpec = Arrays.asList(sortVolumesByDeviceId(specDisks))
.stream()

View File

@ -2785,6 +2785,20 @@ public class VirtualMachineMO extends BaseMO {
return virtualDisks;
}
public List<VirtualDisk> getVirtualDisksOrderedByKey() throws Exception {
List<VirtualDisk> virtualDisks = getVirtualDisks();
Collections.sort(virtualDisks, new Comparator<VirtualDisk>() {
@Override
public int compare(VirtualDisk disk1, VirtualDisk disk2) {
Integer disk1Key = disk1.getKey();
Integer disk2Key = disk2.getKey();
return disk1Key.compareTo(disk2Key);
}
});
return virtualDisks;
}
public List<String> detachAllDisksExcept(String vmdkBaseName, String deviceBusName) throws Exception {
List<VirtualDevice> devices = _context.getVimClient().getDynamicProperty(_mor, "config.hardware.device");