Skip to content
Open
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 @@ -75,6 +75,11 @@ public interface ResourceManager extends ResourceService, Configurable {
ConfigKey.Kind.Select,
"," + CPU.CPUArch.getTypesAsCSV());

ConfigKey<String> SystemVMDefaultHypervisor = new ConfigKey<String>(String.class,
"system.vm.default.hypervisor", "Advanced", "Any", "Hypervisor type used to create System VMs. Valid values are: XenServer, KVM, VMware, Hyperv, VirtualBox, " +
"Parralels, BareMetal, Ovm, LXC, Any", true, ConfigKey.Scope.Global, null, null, null, null, null, ConfigKey.Kind.Select, "XenServer, KVM, VMware, Hyperv, " +
"VirtualBox, Parralels, BareMetal, Ovm, LXC, Any");

/**
* Register a listener for different types of resource life cycle events.
* There can only be one type of listener per type of host.
Expand Down
7 changes: 0 additions & 7 deletions server/src/main/java/com/cloud/configuration/Config.java
Original file line number Diff line number Diff line change
Expand Up @@ -642,13 +642,6 @@ public enum Config {
"true",
"Indicates whether or not to automatically reserver system VM standby capacity.",
null),
SystemVMDefaultHypervisor("Advanced",
ManagementServer.class,
String.class,
"system.vm.default.hypervisor",
null,
"Hypervisor type used to create system vm, valid values are: XenServer, KVM, VMware, Hyperv, VirtualBox, Parralels, BareMetal, Ovm, LXC, Any",
null),
SystemVMRandomPassword(
"Advanced",
ManagementServer.class,
Expand Down
18 changes: 7 additions & 11 deletions server/src/main/java/com/cloud/resource/ResourceManagerImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -320,7 +320,6 @@ public void setDiscoverers(final List<? extends Discoverer> discoverers) {
private final HashMap<String, ResourceStateAdapter> _resourceStateAdapters = new HashMap<>();

private final HashMap<Integer, List<ResourceListener>> _lifeCycleListeners = new HashMap<>();
private HypervisorType _defaultSystemVMHypervisor;

private static final int ACQUIRE_GLOBAL_LOCK_TIMEOUT_FOR_COOPERATION = 30; // seconds

Expand Down Expand Up @@ -2784,7 +2783,6 @@ public DataCenter getZone(Long zoneId) {

@Override
public boolean configure(final String name, final Map<String, Object> params) throws ConfigurationException {
_defaultSystemVMHypervisor = HypervisorType.getType(_configDao.getValue(Config.SystemVMDefaultHypervisor.toString()));
_gson = GsonHelper.getGson();

_hypervisorsInDC = _hostDao.createSearchBuilder(String.class);
Expand Down Expand Up @@ -2830,10 +2828,7 @@ public List<HypervisorType> getSupportedHypervisorTypes(final long zoneId, final

@Override
public HypervisorType getDefaultHypervisor(final long zoneId) {
HypervisorType defaultHyper = HypervisorType.None;
if (_defaultSystemVMHypervisor != HypervisorType.None) {
defaultHyper = _defaultSystemVMHypervisor;
}
HypervisorType systemVMDefaultHypervisor = HypervisorType.getType(ResourceManager.SystemVMDefaultHypervisor.value());

final DataCenterVO dc = _dcDao.findById(zoneId);
if (dc == null) {
Expand All @@ -2842,27 +2837,27 @@ public HypervisorType getDefaultHypervisor(final long zoneId) {
_dcDao.loadDetails(dc);
final String defaultHypervisorInZone = dc.getDetail("defaultSystemVMHypervisorType");
if (defaultHypervisorInZone != null) {
defaultHyper = HypervisorType.getType(defaultHypervisorInZone);
systemVMDefaultHypervisor = HypervisorType.getType(defaultHypervisorInZone);
}

final List<VMTemplateVO> systemTemplates = _templateDao.listAllSystemVMTemplates();
boolean isValid = false;
for (final VMTemplateVO template : systemTemplates) {
if (template.getHypervisorType() == defaultHyper) {
if (template.getHypervisorType() == systemVMDefaultHypervisor) {
isValid = true;
break;
}
}

if (isValid) {
final List<ClusterVO> clusters = _clusterDao.listByDcHyType(zoneId, defaultHyper.toString());
final List<ClusterVO> clusters = _clusterDao.listByDcHyType(zoneId, systemVMDefaultHypervisor.toString());
if (clusters.isEmpty()) {
isValid = false;
}
}

if (isValid) {
return defaultHyper;
return systemVMDefaultHypervisor;
} else {
return HypervisorType.None;
}
Expand Down Expand Up @@ -4313,7 +4308,8 @@ public ConfigKey<?>[] getConfigKeys() {
return new ConfigKey<?>[] {
KvmSshToAgentEnabled,
HOST_MAINTENANCE_LOCAL_STRATEGY,
SystemVmPreferredArchitecture
SystemVmPreferredArchitecture,
SystemVMDefaultHypervisor
};
}
}
Loading