mirror of https://github.com/apache/cloudstack.git
bug 13021: add a global configuration variable to let control default network adapter type inside system VMs
This commit is contained in:
parent
50d166fe0d
commit
5d3cc153a9
|
|
@ -10,7 +10,6 @@ import java.util.Map;
|
|||
|
||||
//import com.cloud.cluster.CheckPointManager;
|
||||
import com.cloud.hypervisor.vmware.mo.HostMO;
|
||||
import com.cloud.hypervisor.vmware.mo.VirtualEthernetCardType;
|
||||
import com.cloud.hypervisor.vmware.util.VmwareContext;
|
||||
import com.cloud.utils.Pair;
|
||||
import com.vmware.vim25.ManagedObjectReference;
|
||||
|
|
@ -25,6 +24,8 @@ public interface VmwareManager {
|
|||
String composeWorkerName();
|
||||
|
||||
String getSystemVMIsoFileNameOnDatastore();
|
||||
String getSystemVMDefaultNicAdapterType();
|
||||
|
||||
void prepareSecondaryStorageStore(String strStorageUrl);
|
||||
|
||||
void setupResourceStartupParams(Map<String, Object> params);
|
||||
|
|
|
|||
|
|
@ -242,6 +242,7 @@ public enum Config {
|
|||
VmwareReserveCpu("Advanced", ManagementServer.class, Boolean.class, "vmware.reserve.cpu", "false", "Specify whether or not to reserve CPU based on CPU overprovisioning factor", null),
|
||||
VmwareReserveMem("Advanced", ManagementServer.class, Boolean.class, "vmware.reserve.mem", "false", "Specify whether or not to reserve memory based on memory overprovisioning factor", null),
|
||||
VmwareRootDiskControllerType("Advanced", ManagementServer.class, String.class, "vmware.root.disk.controller", "ide", "Specify the default disk controller for root volumes, valid values are scsi, ide", null),
|
||||
VmwareSystemVmNicDeviceType("Advanced", ManagementServer.class, String.class, "vmware.systemvm.nic.device.type", "E1000", "Specify the default network device type for system VMs, valid values are E1000, PCNet32, Vmxnet2, Vmxnet3", null),
|
||||
|
||||
// KVM
|
||||
KvmPublicNetwork("Advanced", ManagementServer.class, String.class, "kvm.public.network.device", null, "Specify the public bridge on host for public network", null),
|
||||
|
|
|
|||
|
|
@ -97,9 +97,8 @@ public class VMwareGuru extends HypervisorGuruBase implements HypervisorGuru {
|
|||
if(vm.getVirtualMachine() instanceof DomainRouterVO || vm.getVirtualMachine() instanceof ConsoleProxyVO
|
||||
|| vm.getVirtualMachine() instanceof SecondaryStorageVmVO) {
|
||||
|
||||
// for system VMs, use Vmxnet3 as default
|
||||
if(nicDeviceType == null) {
|
||||
details.put(VmDetailConstants.NIC_ADAPTER, VirtualEthernetCardType.Vmxnet3.toString());
|
||||
details.put(VmDetailConstants.NIC_ADAPTER, _vmwareMgr.getSystemVMDefaultNicAdapterType());
|
||||
} else {
|
||||
try {
|
||||
VirtualEthernetCardType.valueOf(nicDeviceType);
|
||||
|
|
|
|||
|
|
@ -54,6 +54,7 @@ import com.cloud.hypervisor.vmware.mo.HostMO;
|
|||
import com.cloud.hypervisor.vmware.mo.HostVirtualNicType;
|
||||
import com.cloud.hypervisor.vmware.mo.HypervisorHostHelper;
|
||||
import com.cloud.hypervisor.vmware.mo.TaskMO;
|
||||
import com.cloud.hypervisor.vmware.mo.VirtualEthernetCardType;
|
||||
import com.cloud.hypervisor.vmware.mo.VmwareHostType;
|
||||
import com.cloud.hypervisor.vmware.resource.SshHelper;
|
||||
import com.cloud.hypervisor.vmware.util.VmwareContext;
|
||||
|
|
@ -111,6 +112,7 @@ public class VmwareManagerImpl implements VmwareManager, VmwareStorageMount, Lis
|
|||
String _guestNetworkVSwitchName;
|
||||
String _serviceConsoleName;
|
||||
String _managemetPortGroupName;
|
||||
String _defaultSystemVmNicAdapterType = VirtualEthernetCardType.E1000.toString();
|
||||
int _additionalPortRangeStart;
|
||||
int _additionalPortRangeSize;
|
||||
int _maxHostsPerCluster;
|
||||
|
|
@ -217,6 +219,10 @@ public class VmwareManagerImpl implements VmwareManager, VmwareStorageMount, Lis
|
|||
_managemetPortGroupName = "Management Network";
|
||||
}
|
||||
|
||||
_defaultSystemVmNicAdapterType = configDao.getValue(Config.VmwareSystemVmNicDeviceType.key());
|
||||
if(_defaultSystemVmNicAdapterType == null)
|
||||
_defaultSystemVmNicAdapterType = VirtualEthernetCardType.E1000.toString();
|
||||
|
||||
_additionalPortRangeStart = NumbersUtil.parseInt(configDao.getValue(Config.VmwareAdditionalVncPortRangeStart.key()), 59000);
|
||||
if(_additionalPortRangeStart > 65535) {
|
||||
s_logger.warn("Invalid port range start port (" + _additionalPortRangeStart + ") for additional VNC port allocation, reset it to default start port 59000");
|
||||
|
|
@ -542,6 +548,11 @@ public class VmwareManagerImpl implements VmwareManager, VmwareStorageMount, Lis
|
|||
return fileName.replace(':', '-');
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSystemVMDefaultNicAdapterType() {
|
||||
return this._defaultSystemVmNicAdapterType;
|
||||
}
|
||||
|
||||
private File getSystemVMPatchIsoFile() {
|
||||
// locate systemvm.iso
|
||||
URL url = ComponentLocator.class.getProtectionDomain().getCodeSource().getLocation();
|
||||
|
|
|
|||
|
|
@ -19,3 +19,4 @@ CREATE TABLE `cloud`.`mshost_peer` (
|
|||
UNIQUE `i_mshost_peer__owner_peer_runid`(`owner_mshost`, `peer_mshost`, `peer_runid`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
INSERT IGNORE INTO configuration (category, instance, component, name, value, description) VALUES ('Advanced', 'DEFAULT', 'management-server', 'vmware.systemvm.nic.device.type', 'E1000', 'Specify the default network device type for system VMs, valid values are E1000, PCNet32, Vmxnet2, Vmxnet3');
|
||||
|
|
|
|||
Loading…
Reference in New Issue