CLOUDSTACK-4787: Allow users to select disk controller for VM/template

- Adds new controller types in the UI, for selecting root disk controller while
  registering templates
- Fixes bug to not override disk controller type if provided in the details (either
  vm details or from template details)

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
(cherry picked from commit c7d67628b3)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
This commit is contained in:
Rohit Yadav 2015-11-27 18:30:00 +05:30
parent 683a3441af
commit dd2d8867a9
3 changed files with 31 additions and 6 deletions

View File

@ -1195,7 +1195,7 @@ public enum Config {
String.class,
"vmware.root.disk.controller",
"ide",
"Specify the default disk controller for root volumes, valid values are scsi, ide",
"Specify the default disk controller for root volumes, valid values are scsi, ide, osdefault. Please check documentation for more details on each of these values.",
null),
VmwareSystemVmNicDeviceType(
"Advanced",

View File

@ -3117,11 +3117,16 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
s_logger.info("guestOS is OSX : overwrite root disk controller to scsi, use smc and efi");
} else {
String controllerSetting = _configDao.getValue("vmware.root.disk.controller");
vm.setDetail(VmDetailConstants.ROOK_DISK_CONTROLLER, controllerSetting);
if (controllerSetting.equalsIgnoreCase("scsi")) {
vm.setDetail(VmDetailConstants.DATA_DISK_CONTROLLER, "scsi");
} else {
vm.setDetail(VmDetailConstants.DATA_DISK_CONTROLLER, "osdefault");
// Don't override if VM already has root/data disk controller detail
if (vm.getDetail(VmDetailConstants.ROOK_DISK_CONTROLLER) == null) {
vm.setDetail(VmDetailConstants.ROOK_DISK_CONTROLLER, controllerSetting);
}
if (vm.getDetail(VmDetailConstants.DATA_DISK_CONTROLLER) == null) {
if (controllerSetting.equalsIgnoreCase("scsi")) {
vm.setDetail(VmDetailConstants.DATA_DISK_CONTROLLER, "scsi");
} else {
vm.setDetail(VmDetailConstants.DATA_DISK_CONTROLLER, "osdefault");
}
}
}
}

View File

@ -279,6 +279,26 @@
id: "ide",
description: "ide"
});
items.push({
id: "osdefault",
description: "osdefault"
});
items.push({
id: "pvscsi",
description: "pvscsi"
});
items.push({
id: "lsilogic",
description: "lsilogic"
});
items.push({
id: "lsisas1068",
description: "lsilogicsas"
});
items.push({
id: "buslogic",
description: "buslogic"
});
args.response.success({
data: items
});