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)

(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 6a9956e0f5
commit a15187a57a
4 changed files with 31 additions and 7 deletions

View File

@ -21,7 +21,6 @@ package org.apache.cloudstack.storage.command;
import java.util.Map;
import com.cloud.agent.api.Command;
import com.cloud.agent.api.to.DiskTO;
public final class AttachCommand extends StorageSubSystemCommand {

View File

@ -1219,7 +1219,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

@ -3376,11 +3376,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

@ -281,6 +281,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
});