mirror of https://github.com/apache/cloudstack.git
Refactor configuration SystemVMDefaultHypervisor (#8934)
* refactor configuration SystemVMDefaultHypervisor * change variable name --------- Co-authored-by: Gabriel <gabriel.fernandes@scclouds.com.br>
This commit is contained in:
parent
9b0c28c16d
commit
128dbe2c0b
|
|
@ -79,6 +79,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.
|
||||
|
|
|
|||
|
|
@ -542,13 +542,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,
|
||||
|
|
|
|||
|
|
@ -352,7 +352,6 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
|
|||
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
|
||||
|
||||
|
|
@ -2935,7 +2934,6 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
|
|||
|
||||
@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);
|
||||
|
|
@ -2981,10 +2979,7 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
|
|||
|
||||
@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) {
|
||||
|
|
@ -2993,27 +2988,27 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
|
|||
_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;
|
||||
}
|
||||
|
|
@ -4578,7 +4573,8 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
|
|||
return new ConfigKey<?>[] {
|
||||
KvmSshToAgentEnabled,
|
||||
HOST_MAINTENANCE_LOCAL_STRATEGY,
|
||||
SystemVmPreferredArchitecture
|
||||
SystemVmPreferredArchitecture,
|
||||
SystemVMDefaultHypervisor
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue