sureshanaparti commented on code in PR #9433:
URL: https://github.com/apache/cloudstack/pull/9433#discussion_r1728646360
##########
server/src/main/java/com/cloud/vm/UserVmManagerImpl.java:
##########
@@ -4650,16 +4650,20 @@ private void updateVMDiskController(UserVmVO vm,
Map<String, String> customParam
vm.setDetail(VmDetailConstants.DATA_DISK_CONTROLLER,
dataDiskControllerSetting);
}
- String controllerSetting =
StringUtils.defaultIfEmpty(_configDao.getValue(Config.VmwareRootDiskControllerType.key()),
- Config.VmwareRootDiskControllerType.getDefaultValue());
-
// Don't override if VM already has root/data disk controller
detail
if (vm.getDetail(VmDetailConstants.ROOT_DISK_CONTROLLER) == null) {
- vm.setDetail(VmDetailConstants.ROOT_DISK_CONTROLLER,
controllerSetting);
+ String vmwareRootDiskControllerTypeFromSetting =
StringUtils.defaultIfEmpty(_configDao.getValue(Config.VmwareRootDiskControllerType.key()),
+ Config.VmwareRootDiskControllerType.getDefaultValue());
+ vm.setDetail(VmDetailConstants.ROOT_DISK_CONTROLLER,
vmwareRootDiskControllerTypeFromSetting);
}
+
if (vm.getDetail(VmDetailConstants.DATA_DISK_CONTROLLER) == null) {
- if (controllerSetting.equalsIgnoreCase("scsi")) {
- vm.setDetail(VmDetailConstants.DATA_DISK_CONTROLLER,
"scsi");
+ String finalRootDiskController =
vm.getDetail(VmDetailConstants.ROOT_DISK_CONTROLLER);
+ // Set the data disk controller detail same as the final scsi
root disk controller if VM doesn't have data disk controller detail
+ // This is to ensure the disk controller is available for the
data disks, as all the SCSI controllers are created with same controller type
+ String scsiControllerPattern =
"(?i)\\b(scsi|lsilogic|lsilogicsas|lsisas1068|buslogic|pvscsi)\\b";
+ if (finalRootDiskController.matches(scsiControllerPattern)) {
+ vm.setDetail(VmDetailConstants.DATA_DISK_CONTROLLER,
finalRootDiskController);
} else {
vm.setDetail(VmDetailConstants.DATA_DISK_CONTROLLER,
"osdefault");
Review Comment:
done
##########
server/src/main/java/com/cloud/vm/UserVmManagerImpl.java:
##########
@@ -4650,16 +4650,20 @@ private void updateVMDiskController(UserVmVO vm,
Map<String, String> customParam
vm.setDetail(VmDetailConstants.DATA_DISK_CONTROLLER,
dataDiskControllerSetting);
}
- String controllerSetting =
StringUtils.defaultIfEmpty(_configDao.getValue(Config.VmwareRootDiskControllerType.key()),
- Config.VmwareRootDiskControllerType.getDefaultValue());
-
// Don't override if VM already has root/data disk controller
detail
if (vm.getDetail(VmDetailConstants.ROOT_DISK_CONTROLLER) == null) {
- vm.setDetail(VmDetailConstants.ROOT_DISK_CONTROLLER,
controllerSetting);
+ String vmwareRootDiskControllerTypeFromSetting =
StringUtils.defaultIfEmpty(_configDao.getValue(Config.VmwareRootDiskControllerType.key()),
+ Config.VmwareRootDiskControllerType.getDefaultValue());
+ vm.setDetail(VmDetailConstants.ROOT_DISK_CONTROLLER,
vmwareRootDiskControllerTypeFromSetting);
}
+
if (vm.getDetail(VmDetailConstants.DATA_DISK_CONTROLLER) == null) {
- if (controllerSetting.equalsIgnoreCase("scsi")) {
- vm.setDetail(VmDetailConstants.DATA_DISK_CONTROLLER,
"scsi");
+ String finalRootDiskController =
vm.getDetail(VmDetailConstants.ROOT_DISK_CONTROLLER);
+ // Set the data disk controller detail same as the final scsi
root disk controller if VM doesn't have data disk controller detail
+ // This is to ensure the disk controller is available for the
data disks, as all the SCSI controllers are created with same controller type
+ String scsiControllerPattern =
"(?i)\\b(scsi|lsilogic|lsilogicsas|lsisas1068|buslogic|pvscsi)\\b";
+ if (finalRootDiskController.matches(scsiControllerPattern)) {
+ vm.setDetail(VmDetailConstants.DATA_DISK_CONTROLLER,
finalRootDiskController);
Review Comment:
done
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]