Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -59,5 +59,4 @@ public String getCopyPassword() {
public void setCopyPassword(String copyPassword) {
this.copyPassword = copyPassword;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -63,12 +63,14 @@
import com.vmware.vim25.UpdateSet;
import com.vmware.vim25.VimPortType;
import com.vmware.vim25.VimService;
import com.vmware.vim25.VirtualAHCIController;
import com.vmware.vim25.VirtualDevice;
import com.vmware.vim25.VirtualDeviceBackingInfo;
import com.vmware.vim25.VirtualDisk;
import com.vmware.vim25.VirtualDiskFlatVer2BackingInfo;
import com.vmware.vim25.VirtualIDEController;
import com.vmware.vim25.VirtualMachineConfigSpec;
import com.vmware.vim25.VirtualNVMEController;
import com.vmware.vim25.VirtualSCSIController;

public class VMwareUtil {
Expand Down Expand Up @@ -294,6 +296,10 @@ public static String getDeviceBusName(List<VirtualDevice> allDevices, VirtualDis
return String.format("ide%d:%d", ((VirtualIDEController)device).getBusNumber(), disk.getUnitNumber());
} else if (device instanceof VirtualSCSIController) {
return String.format("scsi%d:%d", ((VirtualSCSIController)device).getBusNumber(), disk.getUnitNumber());
} else if (device instanceof VirtualAHCIController) {
return String.format("sata%d:%d", ((VirtualAHCIController)device).getBusNumber(), disk.getUnitNumber());
} else if (device instanceof VirtualNVMEController) {
return String.format("nvme%d:%d", ((VirtualNVMEController)device).getBusNumber(), disk.getUnitNumber());
} else {
throw new Exception("The device controller is not supported.");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -322,7 +322,7 @@ private void setDiskControllers(VirtualMachineProfile vm, Map<String, String> de
}

if (vm.getType() == VirtualMachine.Type.NetScalerVm) {
details.put(VmDetailConstants.ROOT_DISK_CONTROLLER, "scsi");
details.put(VmDetailConstants.ROOT_DISK_CONTROLLER, DiskControllerType.scsi.toString());
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,5 @@ public interface VmwareManager {

boolean isLegacyZone(long dcId);

public String getDataDiskController();
boolean hasNexusVSM(Long clusterId);
}
Original file line number Diff line number Diff line change
Expand Up @@ -261,8 +261,6 @@ public class VmwareManagerImpl extends ManagerBase implements VmwareManager, Vmw
private int _vCenterSessionTimeout = 1200000; // Timeout in milliseconds
private String _rootDiskController = DiskControllerType.ide.toString();

private final String _dataDiskController = DiskControllerType.osdefault.toString();

private final Map<String, String> _storageMounts = new HashMap<>();

private final Random _rand = new Random(System.currentTimeMillis());
Expand Down Expand Up @@ -635,8 +633,6 @@ public void setupResourceStartupParams(Map<String, Object> params) {
params.put("vm.instancename.flag", _instanceNameFlag);
params.put("service.console.name", _serviceConsoleName);
params.put("management.portgroup.name", _managementPortGroupName);
params.put("vmware.root.disk.controller", _rootDiskController);
params.put("vmware.data.disk.controller", _dataDiskController);
params.put("vmware.recycle.hung.wokervm", _recycleHungWorker);
params.put("ports.per.dvportgroup", _portsPerDvPortGroup);
}
Expand Down Expand Up @@ -1095,11 +1091,6 @@ public String getRootDiskController() {
return _rootDiskController;
}

@Override
public String getDataDiskController() {
return _dataDiskController;
}

@Override
public int getVcenterSessionTimeout() {
return _vCenterSessionTimeout;
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
import java.util.concurrent.TimeUnit;

import org.apache.cloudstack.agent.directdownload.DirectDownloadCommand;
import com.cloud.hypervisor.vmware.mo.DiskControllerType;
import org.apache.cloudstack.storage.command.AttachAnswer;
import org.apache.cloudstack.storage.command.AttachCommand;
import org.apache.cloudstack.storage.command.CheckDataStoreStoragePolicyComplianceCommand;
Expand Down Expand Up @@ -76,7 +77,6 @@
import com.cloud.hypervisor.vmware.mo.DatacenterMO;
import com.cloud.hypervisor.vmware.mo.DatastoreFile;
import com.cloud.hypervisor.vmware.mo.DatastoreMO;
import com.cloud.hypervisor.vmware.mo.DiskControllerType;
import com.cloud.hypervisor.vmware.mo.HostDatastoreSystemMO;
import com.cloud.hypervisor.vmware.mo.HostMO;
import com.cloud.hypervisor.vmware.mo.HostStorageSystemMO;
Expand Down Expand Up @@ -2102,18 +2102,19 @@ private Answer attachVolume(Command cmd, DiskTO disk, boolean isAttach, boolean
AttachAnswer answer = new AttachAnswer(disk);

if (isAttach) {
// Let's first find which disk controller should be used for the volume being attached.
//
// If `VmDetailConstants.ROOT_DISK_CONTROLLER` or `VmDetailConstants.DATA_DISK_CONTROLLER` are not present
// in `controllerInfo`, use the legacy defaults to preserve compatibility with older instances.
String rootDiskControllerDetail = DiskControllerType.ide.toString();
if (controllerInfo != null && StringUtils.isNotEmpty(controllerInfo.get(VmDetailConstants.ROOT_DISK_CONTROLLER))) {
rootDiskControllerDetail = controllerInfo.get(VmDetailConstants.ROOT_DISK_CONTROLLER);
}
String dataDiskControllerDetail = getLegacyVmDataDiskController();
if (controllerInfo != null && StringUtils.isNotEmpty(controllerInfo.get(VmDetailConstants.DATA_DISK_CONTROLLER))) {
dataDiskControllerDetail = controllerInfo.get(VmDetailConstants.DATA_DISK_CONTROLLER);
String dataDiskControllerDetail = DiskControllerType.lsilogic.toString();
if (controllerInfo != null) {
rootDiskControllerDetail = StringUtils.defaultIfEmpty(controllerInfo.get(VmDetailConstants.ROOT_DISK_CONTROLLER), rootDiskControllerDetail);
dataDiskControllerDetail = StringUtils.defaultIfEmpty(controllerInfo.get(VmDetailConstants.DATA_DISK_CONTROLLER), dataDiskControllerDetail);
}

VmwareHelper.validateDiskControllerDetails(rootDiskControllerDetail, dataDiskControllerDetail);
Pair<String, String> chosenDiskControllers = VmwareHelper.chooseRequiredDiskControllers(new Pair<>(rootDiskControllerDetail, dataDiskControllerDetail), vmMo, null, null);
String diskController = VmwareHelper.getControllerBasedOnDiskType(chosenDiskControllers, disk);
Pair<DiskControllerType, DiskControllerType> specifiedDiskControllers = VmwareHelper.getDiskControllersFromVmSettings(rootDiskControllerDetail, dataDiskControllerDetail, false);
Pair<DiskControllerType, DiskControllerType> chosenDiskControllers = VmwareHelper.chooseDiskControllers(specifiedDiskControllers, vmMo, null, null);
DiskControllerType diskController = VmwareHelper.getControllerBasedOnDiskType(chosenDiskControllers, disk);

vmMo.attachDisk(new String[] { datastoreVolumePath }, morDs, diskController, storagePolicyId, volumeTO.getIopsReadRate() + volumeTO.getIopsWriteRate());
VirtualMachineDiskInfoBuilder diskInfoBuilder = vmMo.getDiskInfoBuilder();
Expand Down Expand Up @@ -3751,10 +3752,6 @@ private String deriveTemplateUuidOnHost(VmwareHypervisorHost hyperHost, String s
return templateUuid;
}

private String getLegacyVmDataDiskController() throws Exception {
return DiskControllerType.lsilogic.toString();
}

void setNfsVersion(String nfsVersion){
this._nfsVersion = nfsVersion;
logger.debug("VmwareProcessor instance now using NFS version: " + nfsVersion);
Expand Down
Loading
Loading