From 217326376873afc936ffbbd1ba7b9e0beb1cd584 Mon Sep 17 00:00:00 2001 From: Daan Hoogland Date: Thu, 22 Oct 2026 11:35:48 +0200 Subject: [PATCH 1/2] use ConfigKeys for assorted management server, VMware, XenServer and baremetal settings Part of the split of #13884 (phase out the Config enum, #10752). Co-Authored-By: Claude Opus 5.5 --- .../com/cloud/host/dao/HostTagsDaoImpl.java | 11 +++--- .../storage/dao/StoragePoolTagsDaoImpl.java | 16 ++++----- .../datastore/db/ObjectStoreDaoImpl.java | 14 +++----- .../dao/StoragePoolTagsDaoImplTest.java | 18 +++++++--- .../ca/provider/RootCAProvider.java | 4 +-- .../manager/BareMetalDiscoverer.java | 8 ++--- .../networkservice/BareMetalResourceBase.java | 10 +++--- .../BaremetalKickStartServiceImpl.java | 4 +-- .../discoverer/HypervServerDiscoverer.java | 5 ++- .../vmware/VmwareServerDiscoverer.java | 11 +++--- .../vmware/manager/VmwareManagerImpl.java | 35 ++++++------------- .../network/element/CiscoNexusVSMElement.java | 4 +-- .../discoverer/XcpServerDiscoverer.java | 18 +++++----- .../lb/ElasticLoadBalancerManagerImpl.java | 9 +++-- .../lb/InternalLoadBalancerVMManagerImpl.java | 7 ++-- .../driver/S3ImageStoreDriverImpl.java | 6 ++-- .../main/java/com/cloud/api/ApiDBUtils.java | 3 +- .../api/query/dao/AccountJoinDaoImpl.java | 7 ++-- .../query/dao/AffinityGroupJoinDaoImpl.java | 7 ++-- .../query/dao/DiskOfferingJoinDaoImpl.java | 7 ++-- .../api/query/dao/DomainJoinDaoImpl.java | 7 ++-- .../query/dao/DomainRouterJoinDaoImpl.java | 7 ++-- .../cloud/api/query/dao/HostJoinDaoImpl.java | 7 ++-- .../api/query/dao/ImageStoreJoinDaoImpl.java | 7 ++-- .../api/query/dao/ProjectJoinDaoImpl.java | 8 ++--- .../api/query/dao/ResourceTagJoinDaoImpl.java | 7 ++-- .../query/dao/SecurityGroupJoinDaoImpl.java | 7 ++-- .../query/dao/ServiceOfferingJoinDaoImpl.java | 7 ++-- .../api/query/dao/SnapshotJoinDaoImpl.java | 7 ++-- .../api/query/dao/StoragePoolJoinDaoImpl.java | 7 ++-- .../api/query/dao/UserVmJoinDaoImpl.java | 7 ++-- .../api/query/dao/VolumeJoinDaoImpl.java | 7 ++-- .../ConfigurationManagerImpl.java | 10 +++--- .../consoleproxy/ConsoleProxyManagerImpl.java | 3 +- .../discoverer/LibvirtServerDiscoverer.java | 5 ++- .../network/guru/ControlNetworkGuru.java | 6 ++-- .../network/router/CommandSetupHelper.java | 7 ++-- .../VirtualNetworkApplianceManagerImpl.java | 7 ++-- .../cloud/resource/ResourceManagerImpl.java | 6 ++-- .../cloud/server/ConfigurationServerImpl.java | 13 ++++--- .../cloud/server/ManagementServerImpl.java | 7 ++-- .../cloud/template/TemplateAdapterBase.java | 4 +-- .../com/cloud/user/AccountManagerImpl.java | 4 +-- .../java/com/cloud/vm/UserVmManagerImpl.java | 7 ++-- .../GlobalLoadBalancingRulesServiceImpl.java | 6 ++-- .../ConfigurationManagerTest.java | 3 +- .../SecondaryStorageManagerImpl.java | 3 +- 47 files changed, 152 insertions(+), 228 deletions(-) diff --git a/engine/schema/src/main/java/com/cloud/host/dao/HostTagsDaoImpl.java b/engine/schema/src/main/java/com/cloud/host/dao/HostTagsDaoImpl.java index 0e554987a06f..3c9a2e874b0b 100644 --- a/engine/schema/src/main/java/com/cloud/host/dao/HostTagsDaoImpl.java +++ b/engine/schema/src/main/java/com/cloud/host/dao/HostTagsDaoImpl.java @@ -22,7 +22,6 @@ import org.apache.cloudstack.api.response.HostTagResponse; import org.apache.cloudstack.framework.config.ConfigKey; import org.apache.cloudstack.framework.config.Configurable; -import org.apache.cloudstack.framework.config.dao.ConfigurationDao; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; @@ -46,8 +45,10 @@ public class HostTagsDaoImpl extends GenericDaoBase implements private final SearchBuilder ImplicitTagsSearch; private final GenericSearchBuilder tagSearch; - @Inject - private ConfigurationDao _configDao; + // Registered/owned by ManagementServer; declared here too so this lower-layer module can read it without depending on the server module. + private static final ConfigKey DetailBatchQuerySize = new ConfigKey<>("Advanced", Integer.class, "detail.batch.query.size", "2000", + "Default entity detail batch query size for listing", true); + @Inject private HostDao hostDao; @@ -191,9 +192,7 @@ public HostTagResponse newHostTagResponse(HostTagVO tag) { @Override public List searchByIds(Long... tagIds) { - String batchCfg = _configDao.getValue("detail.batch.query.size"); - - final int detailsBatchSize = batchCfg != null ? Integer.parseInt(batchCfg) : 2000; + final int detailsBatchSize = DetailBatchQuerySize.value(); // query details by batches List tagList = new ArrayList<>(); diff --git a/engine/schema/src/main/java/com/cloud/storage/dao/StoragePoolTagsDaoImpl.java b/engine/schema/src/main/java/com/cloud/storage/dao/StoragePoolTagsDaoImpl.java index c4d7ed886072..bc0309365e90 100755 --- a/engine/schema/src/main/java/com/cloud/storage/dao/StoragePoolTagsDaoImpl.java +++ b/engine/schema/src/main/java/com/cloud/storage/dao/StoragePoolTagsDaoImpl.java @@ -20,10 +20,8 @@ import java.util.List; import java.util.stream.Collectors; -import javax.inject.Inject; - import org.apache.cloudstack.api.response.StorageTagResponse; -import org.apache.cloudstack.framework.config.dao.ConfigurationDao; +import org.apache.cloudstack.framework.config.ConfigKey; import com.cloud.storage.StoragePoolTagVO; import com.cloud.utils.db.GenericDaoBase; @@ -36,14 +34,13 @@ public class StoragePoolTagsDaoImpl extends GenericDaoBase implements StoragePoolTagsDao { - @Inject - private ConfigurationDao _configDao; + // Registered/owned by ManagementServer; declared here too so this lower-layer module can read it without depending on the server module. + private static final ConfigKey DetailBatchQuerySize = new ConfigKey<>("Advanced", Integer.class, "detail.batch.query.size", "2000", + "Default entity detail batch query size for listing", true); protected final SearchBuilder StoragePoolSearch; private final SearchBuilder StoragePoolIdsSearch; - private static final int DEFAULT_BATCH_QUERY_SIZE = 2000; - public StoragePoolTagsDaoImpl() { StoragePoolSearch = createSearchBuilder(); StoragePoolSearch.and("poolId", StoragePoolSearch.entity().getPoolId(), SearchCriteria.Op.EQ); @@ -151,12 +148,11 @@ protected void searchForStoragePoolIdsInternal(int currIndex, int batchSize, Lon } /** - * Retrieve {@code detail.batch.query.size} configuration value. If not available, return default value {@link StoragePoolTagsDaoImpl#DEFAULT_BATCH_QUERY_SIZE} + * Retrieve {@code detail.batch.query.size} configuration value. * @return detail.batch.query.size configuration value */ protected int getDetailsBatchSize() { - String batchCfg = _configDao.getValue("detail.batch.query.size"); - return batchCfg != null ? Integer.parseInt(batchCfg) : DEFAULT_BATCH_QUERY_SIZE; + return DetailBatchQuerySize.value(); } @Override diff --git a/engine/schema/src/main/java/org/apache/cloudstack/storage/datastore/db/ObjectStoreDaoImpl.java b/engine/schema/src/main/java/org/apache/cloudstack/storage/datastore/db/ObjectStoreDaoImpl.java index 891ac0996aca..de90c735d9e0 100644 --- a/engine/schema/src/main/java/org/apache/cloudstack/storage/datastore/db/ObjectStoreDaoImpl.java +++ b/engine/schema/src/main/java/org/apache/cloudstack/storage/datastore/db/ObjectStoreDaoImpl.java @@ -26,10 +26,9 @@ import com.cloud.utils.db.TransactionStatus; import org.apache.cloudstack.api.response.ObjectStoreResponse; -import org.apache.cloudstack.framework.config.dao.ConfigurationDao; +import org.apache.cloudstack.framework.config.ConfigKey; import org.springframework.stereotype.Component; -import javax.inject.Inject; import javax.naming.ConfigurationException; import java.util.ArrayList; import java.util.List; @@ -37,10 +36,11 @@ @Component public class ObjectStoreDaoImpl extends GenericDaoBase implements ObjectStoreDao { + // Registered/owned by ManagementServer; declared here too so this lower-layer module can read it without depending on the server module. + private static final ConfigKey DetailBatchQuerySize = new ConfigKey<>("Advanced", Integer.class, "detail.batch.query.size", "2000", + "Default entity detail batch query size for listing", true); private SearchBuilder nameSearch; private SearchBuilder providerSearch; - @Inject - private ConfigurationDao _configDao; private final SearchBuilder osSearch; private SearchBuilder urlSearch; @@ -100,11 +100,7 @@ public List listObjectStores() { @Override public List searchByIds(Long[] osIds) { // set detail batch query size - int DETAILS_BATCH_SIZE = 2000; - String batchCfg = _configDao.getValue("detail.batch.query.size"); - if (batchCfg != null) { - DETAILS_BATCH_SIZE = Integer.parseInt(batchCfg); - } + int DETAILS_BATCH_SIZE = DetailBatchQuerySize.value(); // query details by batches List osList = new ArrayList<>(); // query details by batches diff --git a/engine/schema/src/test/java/com/cloud/storage/dao/StoragePoolTagsDaoImplTest.java b/engine/schema/src/test/java/com/cloud/storage/dao/StoragePoolTagsDaoImplTest.java index 85fe0e09542a..3b77e610300d 100755 --- a/engine/schema/src/test/java/com/cloud/storage/dao/StoragePoolTagsDaoImplTest.java +++ b/engine/schema/src/test/java/com/cloud/storage/dao/StoragePoolTagsDaoImplTest.java @@ -16,7 +16,9 @@ // under the License. package com.cloud.storage.dao; -import org.apache.cloudstack.framework.config.dao.ConfigurationDao; +import org.apache.cloudstack.framework.config.ConfigKey; +import org.apache.cloudstack.framework.config.impl.ConfigDepotImpl; +import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -47,7 +49,7 @@ public class StoragePoolTagsDaoImplTest extends TestCase { @Mock - ConfigurationDao _configDao; + ConfigDepotImpl configDepot; @Mock SearchBuilder StoragePoolIdsSearch; @@ -70,11 +72,17 @@ public class StoragePoolTagsDaoImplTest extends TestCase { @Before public void setup() { - when(_configDao.getValue(batchSizeConfigurationKey)).thenReturn(batchSizeValue); + ConfigKey.init(configDepot); + when(configDepot.getConfigStringValue(batchSizeConfigurationKey, ConfigKey.Scope.Global, null)).thenReturn(batchSizeValue); doReturn(storagePoolTagList).when(_storagePoolTagsDaoImpl).searchIncludingRemoved( ArgumentMatchers.any(SearchCriteria.class), ArgumentMatchers.isNull(Filter.class), ArgumentMatchers.isNull(Boolean.class), ArgumentMatchers.eq(false)); } + @After + public void tearDown() { + ConfigKey.init(null); + } + @Test public void testGetDetailsBatchSizeNotNull() { assertEquals(Integer.parseInt(batchSizeValue), _storagePoolTagsDaoImpl.getDetailsBatchSize()); @@ -82,7 +90,7 @@ public void testGetDetailsBatchSizeNotNull() { @Test public void testGetDetailsBatchSizeNull() { - when(_configDao.getValue(batchSizeConfigurationKey)).thenReturn(null); + when(configDepot.getConfigStringValue(batchSizeConfigurationKey, ConfigKey.Scope.Global, null)).thenReturn(null); assertEquals(Integer.parseInt(batchSizeDefaultValue), _storagePoolTagsDaoImpl.getDetailsBatchSize()); } @@ -108,7 +116,7 @@ public void testSearchForStoragePoolIdsInternalStorageTagsNullSearch() { @Test public void testSearchByIdsStorageTagsIdsGreaterOrEqualThanBatchSize() { - when(_configDao.getValue(batchSizeConfigurationKey)).thenReturn(batchSizeLow); + when(configDepot.getConfigStringValue(batchSizeConfigurationKey, ConfigKey.Scope.Global, null)).thenReturn(batchSizeLow); doNothing().when(_storagePoolTagsDaoImpl).searchForStoragePoolIdsInternal(ArgumentMatchers.anyInt(), ArgumentMatchers.anyInt(), ArgumentMatchers.any(Long[].class), ArgumentMatchers.anyList()); _storagePoolTagsDaoImpl.searchByIds(storageTagsIds); diff --git a/plugins/ca/root-ca/src/main/java/org/apache/cloudstack/ca/provider/RootCAProvider.java b/plugins/ca/root-ca/src/main/java/org/apache/cloudstack/ca/provider/RootCAProvider.java index afb4f561160e..798d6ea8c15b 100644 --- a/plugins/ca/root-ca/src/main/java/org/apache/cloudstack/ca/provider/RootCAProvider.java +++ b/plugins/ca/root-ca/src/main/java/org/apache/cloudstack/ca/provider/RootCAProvider.java @@ -78,7 +78,7 @@ import org.bouncycastle.util.io.pem.PemReader; import com.cloud.certificate.dao.CrlDao; -import com.cloud.configuration.Config; +import com.cloud.server.ManagementServer; import com.cloud.utils.component.AdapterBase; import com.cloud.utils.db.GlobalLock; import com.cloud.utils.exception.CloudRuntimeException; @@ -439,7 +439,7 @@ private boolean loadManagementKeyStore() { } protected void addConfiguredManagementIp(List ipList) { - String msNetworkCidr = configDao.getValue(Config.ManagementNetwork.key()); + String msNetworkCidr = ManagementServer.ManagementNetwork.value(); try { logger.debug(String.format("Trying to find management IP in CIDR range [%s].", msNetworkCidr)); Enumeration networkInterfaces = NetworkInterface.getNetworkInterfaces(); diff --git a/plugins/hypervisors/baremetal/src/main/java/com/cloud/baremetal/manager/BareMetalDiscoverer.java b/plugins/hypervisors/baremetal/src/main/java/com/cloud/baremetal/manager/BareMetalDiscoverer.java index f12d701d2e29..55ad3568f5f3 100644 --- a/plugins/hypervisors/baremetal/src/main/java/com/cloud/baremetal/manager/BareMetalDiscoverer.java +++ b/plugins/hypervisors/baremetal/src/main/java/com/cloud/baremetal/manager/BareMetalDiscoverer.java @@ -37,7 +37,6 @@ import com.cloud.agent.api.StartupCommand; import com.cloud.agent.api.StartupRoutingCommand; import com.cloud.baremetal.networkservice.BareMetalResourceBase; -import com.cloud.configuration.Config; import com.cloud.dc.ClusterVO; import com.cloud.dc.DataCenterVO; import com.cloud.exception.DiscoveryException; @@ -51,6 +50,7 @@ import com.cloud.resource.ResourceStateAdapter; import com.cloud.resource.ServerResource; import com.cloud.resource.UnableDeleteHostException; +import com.cloud.server.ManagementServer; import com.cloud.utils.UuidUtils; import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.script.Script; @@ -160,12 +160,12 @@ public Map> find(long dcId, Long p params.put("vmDao", _vmDao); params.put("configDao", _configDao); - String resourceClassName = _configDao.getValue(Config.ExternalBaremetalResourceClassName.key()); + String resourceClassName = BaremetalManager.ExternalBaremetalResourceClassName.value(); BareMetalResourceBase resource = null; if (resourceClassName != null) { Class clazz = Class.forName(resourceClassName); resource = (BareMetalResourceBase) clazz.newInstance(); - String externalUrl = _configDao.getValue(Config.ExternalBaremetalSystemUrl.key()); + String externalUrl = ManagementServer.ExternalBaremetalSystemUrl.value(); if (externalUrl == null) { throw new IllegalArgumentException(String.format("You must specify ExternalBaremetalSystemUrl in global config page as ExternalBaremetalResourceClassName is not null")); } @@ -193,7 +193,7 @@ public Map> find(long dcId, Long p if (vmIp != null) { details.put(ApiConstants.IP_ADDRESS, vmIp); } - String isEchoScAgent = _configDao.getValue(Config.EnableBaremetalSecurityGroupAgentEcho.key()); + String isEchoScAgent = String.valueOf(BaremetalManager.EnableBaremetalSecurityGroupAgentEcho.value()); details.put(BaremetalManager.EchoSecurityGroupAgent, isEchoScAgent); resources.put(resource, details); diff --git a/plugins/hypervisors/baremetal/src/main/java/com/cloud/baremetal/networkservice/BareMetalResourceBase.java b/plugins/hypervisors/baremetal/src/main/java/com/cloud/baremetal/networkservice/BareMetalResourceBase.java index 007640e8aad3..f4df8cabefc0 100644 --- a/plugins/hypervisors/baremetal/src/main/java/com/cloud/baremetal/networkservice/BareMetalResourceBase.java +++ b/plugins/hypervisors/baremetal/src/main/java/com/cloud/baremetal/networkservice/BareMetalResourceBase.java @@ -64,10 +64,10 @@ import com.cloud.agent.api.baremetal.IpmiBootorResetCommand; import com.cloud.agent.api.to.VirtualMachineTO; import com.cloud.baremetal.manager.BaremetalManager; -import com.cloud.configuration.Config; import com.cloud.host.Host.Type; import com.cloud.hypervisor.Hypervisor; import com.cloud.resource.ServerResource; +import com.cloud.server.ManagementServer; import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.QueryBuilder; import com.cloud.utils.db.SearchCriteria; @@ -172,20 +172,20 @@ public boolean configure(String name, Map params) throws Configu String ipmiIface = "default"; try { - ipmiIface = configDao.getValue(Config.BaremetalIpmiLanInterface.key()); + ipmiIface = BaremetalManager.BaremetalIpmiLanInterface.value(); } catch (Exception e) { logger.debug(e.getMessage(), e); } try { - ipmiRetryTimes = Integer.parseInt(configDao.getValue(Config.BaremetalIpmiRetryTimes.key())); + ipmiRetryTimes = BaremetalManager.BaremetalIpmiRetryTimes.value(); } catch (Exception e) { logger.debug(e.getMessage(), e); } try { - provisionDoneNotificationOn = Boolean.valueOf(configDao.getValue(Config.BaremetalProvisionDoneNotificationEnabled.key())); - isProvisionDoneNotificationTimeout = Integer.parseInt(configDao.getValue(Config.BaremetalProvisionDoneNotificationTimeout.key())); + provisionDoneNotificationOn = ManagementServer.BaremetalProvisionDoneNotificationEnabled.value(); + isProvisionDoneNotificationTimeout = BaremetalManager.BaremetalProvisionDoneNotificationTimeout.value(); } catch (Exception e) { logger.debug(e.getMessage(), e); } diff --git a/plugins/hypervisors/baremetal/src/main/java/com/cloud/baremetal/networkservice/BaremetalKickStartServiceImpl.java b/plugins/hypervisors/baremetal/src/main/java/com/cloud/baremetal/networkservice/BaremetalKickStartServiceImpl.java index 6e1f422526d9..3c170ac77a41 100644 --- a/plugins/hypervisors/baremetal/src/main/java/com/cloud/baremetal/networkservice/BaremetalKickStartServiceImpl.java +++ b/plugins/hypervisors/baremetal/src/main/java/com/cloud/baremetal/networkservice/BaremetalKickStartServiceImpl.java @@ -39,8 +39,8 @@ import com.cloud.agent.api.baremetal.IpmISetBootDevCommand.BootDev; import com.cloud.baremetal.database.BaremetalPxeDao; import com.cloud.baremetal.database.BaremetalPxeVO; +import com.cloud.baremetal.manager.BaremetalManager; import com.cloud.baremetal.networkservice.BaremetalPxeManager.BaremetalPxeType; -import com.cloud.configuration.Config; import com.cloud.dc.DataCenter; import com.cloud.deploy.DeployDestination; import com.cloud.exception.AgentUnavailableException; @@ -219,7 +219,7 @@ private boolean preparePxeInAdvancedZone(VirtualMachineProfile profile, NicProfi throw new CloudRuntimeException(String.format("Cannot find Management NIC on virtual router[id:%s]", vr.getId())); } - String internalServerIp = _configDao.getValue(Config.BaremetalInternalStorageServer.key()); + String internalServerIp = BaremetalManager.BaremetalInternalStorageServer.value(); if (internalServerIp == null) { throw new CloudRuntimeException(String.format("please specify 'baremetal.internal.storage.server.ip', which is the http server/nfs server storing kickstart files and ISO files, in global setting")); } diff --git a/plugins/hypervisors/hyperv/src/main/java/com/cloud/hypervisor/hyperv/discoverer/HypervServerDiscoverer.java b/plugins/hypervisors/hyperv/src/main/java/com/cloud/hypervisor/hyperv/discoverer/HypervServerDiscoverer.java index a5fe1442e56e..d4db87a9097c 100644 --- a/plugins/hypervisors/hyperv/src/main/java/com/cloud/hypervisor/hyperv/discoverer/HypervServerDiscoverer.java +++ b/plugins/hypervisors/hyperv/src/main/java/com/cloud/hypervisor/hyperv/discoverer/HypervServerDiscoverer.java @@ -28,7 +28,6 @@ import javax.inject.Inject; import javax.naming.ConfigurationException; - import com.cloud.agent.AgentManager; import com.cloud.agent.Listener; import com.cloud.agent.api.AgentControlAnswer; @@ -41,7 +40,6 @@ import com.cloud.agent.api.StartupCommand; import com.cloud.agent.api.StartupRoutingCommand; import com.cloud.alert.AlertManager; -import com.cloud.configuration.Config; import com.cloud.dc.ClusterVO; import com.cloud.dc.DataCenterVO; import com.cloud.dc.HostPodVO; @@ -62,6 +60,7 @@ import com.cloud.resource.ResourceStateAdapter; import com.cloud.resource.ServerResource; import com.cloud.resource.UnableDeleteHostException; +import com.cloud.server.ManagementServer; import com.cloud.storage.StorageLayer; import com.cloud.utils.UuidUtils; @@ -285,7 +284,7 @@ public final Map> find(final long params.putAll(details); - params.put("router.aggregation.command.each.timeout", _configDao.getValue(Config.RouterAggregationCommandEachTimeout.toString())); + params.put("router.aggregation.command.each.timeout", String.valueOf(ManagementServer.RouterAggregationCommandEachTimeout.value())); HypervDirectConnectResource resource = new HypervDirectConnectResource(); resource.configure(agentIp, params); diff --git a/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/VmwareServerDiscoverer.java b/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/VmwareServerDiscoverer.java index 9391e0956254..d00aa85a45fa 100644 --- a/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/VmwareServerDiscoverer.java +++ b/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/VmwareServerDiscoverer.java @@ -32,7 +32,6 @@ import com.cloud.agent.api.StartupCommand; import com.cloud.agent.api.StartupRoutingCommand; import com.cloud.alert.AlertManager; -import com.cloud.configuration.Config; import com.cloud.dc.ClusterDetailsDao; import com.cloud.dc.ClusterVO; import com.cloud.dc.DataCenter.NetworkType; @@ -66,6 +65,7 @@ import com.cloud.resource.ResourceStateAdapter; import com.cloud.resource.ServerResource; import com.cloud.resource.UnableDeleteHostException; +import com.cloud.server.ManagementServer; import com.cloud.storage.Storage.ImageFormat; import com.cloud.storage.Storage.TemplateType; import com.cloud.storage.VMTemplateVO; @@ -381,7 +381,7 @@ public VmwareServerDiscoverer() { params.put("guestTrafficInfo", guestTrafficLabelObj); params.put("publicTrafficInfo", publicTrafficLabelObj); - params.put("router.aggregation.command.each.timeout", _configDao.getValue(Config.RouterAggregationCommandEachTimeout.toString())); + params.put("router.aggregation.command.each.timeout", String.valueOf(ManagementServer.RouterAggregationCommandEachTimeout.value())); VmwareResource resource = new VmwareResource(); try { @@ -692,12 +692,9 @@ private VmwareTrafficLabel getTrafficInfo(TrafficType trafficType, String zoneWi } private void _readGlobalConfigParameters() { - String value; if (_configDao != null) { - value = _configDao.getValue(Config.VmwareUseDVSwitch.key()); - useDVS = Boolean.parseBoolean(value); - value = _configDao.getValue(Config.VmwareUseNexusVSwitch.key()); - nexusDVS = Boolean.parseBoolean(value); + useDVS = ManagementServer.VmwareUseDVSwitch.value(); + nexusDVS = ManagementServer.VmwareUseNexusVSwitch.value(); } } diff --git a/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/manager/VmwareManagerImpl.java b/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/manager/VmwareManagerImpl.java index 8be9e686364c..0355d8095af3 100644 --- a/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/manager/VmwareManagerImpl.java +++ b/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/manager/VmwareManagerImpl.java @@ -82,7 +82,6 @@ import com.cloud.api.query.dao.TemplateJoinDao; import com.cloud.cluster.ClusterManager; import com.cloud.cluster.dao.ManagementServerHostPeerDao; -import com.cloud.configuration.Config; import com.cloud.dc.ClusterDetailsDao; import com.cloud.dc.ClusterVO; import com.cloud.dc.ClusterVSMMapVO; @@ -143,6 +142,7 @@ import com.cloud.org.Cluster.ClusterType; import com.cloud.secstorage.CommandExecLogDao; import com.cloud.server.ConfigurationServer; +import com.cloud.server.ManagementServer; import com.cloud.storage.ImageStoreDetailsUtil; import com.cloud.storage.JavaStorageLayer; import com.cloud.storage.StorageLayer; @@ -168,6 +168,7 @@ import com.cloud.utils.script.Script; import com.cloud.utils.ssh.SshHelper; import com.cloud.vm.DomainRouterVO; +import com.cloud.vm.UserVmManager; import com.cloud.vm.dao.UserVmCloneSettingDao; import com.cloud.vm.dao.VMInstanceDao; import com.vmware.pbm.PbmProfile; @@ -341,49 +342,35 @@ public boolean configure(String name, Map params) throws Configu _fullCloneFlag = StorageManager.VmwareCreateCloneFull.value(); - value = _configDao.getValue(Config.SetVmInternalNameUsingDisplayName.key()); - if (value == null) { - _instanceNameFlag = false; - } else { - _instanceNameFlag = Boolean.parseBoolean(value); - } + _instanceNameFlag = UserVmManager.SetVmInternalNameUsingDisplayName.value(); - _serviceConsoleName = _configDao.getValue(Config.VmwareServiceConsole.key()); - if (_serviceConsoleName == null) { - _serviceConsoleName = "Service Console"; - } + _serviceConsoleName = VmwareServiceConsole.value(); - _managementPortGroupName = _configDao.getValue(Config.VmwareManagementPortGroup.key()); - if (_managementPortGroupName == null) { - _managementPortGroupName = "Management Network"; - } + _managementPortGroupName = VmwareManagementPortGroup.value(); - _defaultSystemVmNicAdapterType = _configDao.getValue(Config.VmwareSystemVmNicDeviceType.key()); + _defaultSystemVmNicAdapterType = ManagementServer.VmwareSystemVmNicDeviceType.value(); if (_defaultSystemVmNicAdapterType == null) { _defaultSystemVmNicAdapterType = VirtualEthernetCardType.E1000.toString(); } - _additionalPortRangeStart = NumbersUtil.parseInt(_configDao.getValue(Config.VmwareAdditionalVncPortRangeStart.key()), 59000); + _additionalPortRangeStart = VmwareAdditionalVncPortRangeStart.value(); if (_additionalPortRangeStart > 65535) { logger.warn("Invalid port range start port (" + _additionalPortRangeStart + ") for additional VNC port allocation, reset it to default start port 59000"); _additionalPortRangeStart = 59000; } - _additionalPortRangeSize = NumbersUtil.parseInt(_configDao.getValue(Config.VmwareAdditionalVncPortRangeSize.key()), 1000); + _additionalPortRangeSize = VmwareAdditionalVncPortRangeSize.value(); if (_additionalPortRangeSize < 0 || _additionalPortRangeStart + _additionalPortRangeSize > 65535) { logger.warn("Invalid port range size (" + _additionalPortRangeSize + " for range starts at " + _additionalPortRangeStart); _additionalPortRangeSize = Math.min(1000, 65535 - _additionalPortRangeStart); } - _vCenterSessionTimeout = NumbersUtil.parseInt(_configDao.getValue(Config.VmwareVcenterSessionTimeout.key()), 1200) * 1000; + _vCenterSessionTimeout = (int) (VmwareVcenterSessionTimeout.value() * 1000); logger.info("VmwareManagerImpl config - vmware.vcenter.session.timeout: " + _vCenterSessionTimeout); - _recycleHungWorker = _configDao.getValue(Config.VmwareRecycleHungWorker.key()); - if (_recycleHungWorker == null || _recycleHungWorker.isEmpty()) { - _recycleHungWorker = "false"; - } + _recycleHungWorker = String.valueOf(VmwareRecycleHungWorker.value()); - _rootDiskController = _configDao.getValue(Config.VmwareRootDiskControllerType.key()); + _rootDiskController = ManagementServer.VmwareRootDiskControllerType.value(); if (_rootDiskController == null || _rootDiskController.isEmpty()) { _rootDiskController = DiskControllerType.ide.toString(); } diff --git a/plugins/hypervisors/vmware/src/main/java/com/cloud/network/element/CiscoNexusVSMElement.java b/plugins/hypervisors/vmware/src/main/java/com/cloud/network/element/CiscoNexusVSMElement.java index 193270cc1563..d5b1878c57da 100644 --- a/plugins/hypervisors/vmware/src/main/java/com/cloud/network/element/CiscoNexusVSMElement.java +++ b/plugins/hypervisors/vmware/src/main/java/com/cloud/network/element/CiscoNexusVSMElement.java @@ -29,7 +29,6 @@ import com.cloud.api.commands.EnableCiscoNexusVSMCmd; import com.cloud.api.commands.ListCiscoNexusVSMsCmd; import com.cloud.api.response.CiscoNexusVSMResponse; -import com.cloud.configuration.Config; import com.cloud.dc.ClusterVO; import com.cloud.dc.ClusterVSMMapVO; import com.cloud.dc.dao.ClusterDao; @@ -52,6 +51,7 @@ import com.cloud.network.dao.CiscoNexusVSMDeviceDao; import com.cloud.offering.NetworkOffering; import com.cloud.org.Cluster; +import com.cloud.server.ManagementServer; import com.cloud.server.ManagementService; import com.cloud.utils.Pair; import com.cloud.utils.cisco.n1kv.vsm.NetconfHelper; @@ -303,7 +303,7 @@ public CiscoNexusVSMDeviceVO doInTransaction(TransactionStatus status) { } else { String msg; - msg = "The global parameter " + Config.VmwareUseNexusVSwitch.toString() + " is set to \"true\". Following mandatory parameters are not specified. "; + msg = "The global parameter " + ManagementServer.VmwareUseNexusVSwitch.key() + " is set to \"true\". Following mandatory parameters are not specified. "; if (vsmIp == null) { msg += "vsmipaddress: Management IP address of Cisco Nexus 1000v dvSwitch. "; } diff --git a/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/xenserver/discoverer/XcpServerDiscoverer.java b/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/xenserver/discoverer/XcpServerDiscoverer.java index 9381d9f88a1d..9d0b819995d2 100644 --- a/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/xenserver/discoverer/XcpServerDiscoverer.java +++ b/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/xenserver/discoverer/XcpServerDiscoverer.java @@ -49,7 +49,6 @@ import com.cloud.agent.api.StartupCommand; import com.cloud.agent.api.StartupRoutingCommand; import com.cloud.alert.AlertManager; -import com.cloud.configuration.Config; import com.cloud.dc.ClusterVO; import com.cloud.dc.DataCenterVO; import com.cloud.dc.HostPodVO; @@ -84,6 +83,7 @@ import com.cloud.resource.ResourceStateAdapter; import com.cloud.resource.ServerResource; import com.cloud.resource.UnableDeleteHostException; +import com.cloud.server.ManagementServer; import com.cloud.storage.Storage.ImageFormat; import com.cloud.storage.Storage.TemplateType; import com.cloud.storage.VMTemplateVO; @@ -351,15 +351,15 @@ protected boolean poolHasHotFix(Connection conn, String hostIp, String hotFixUui boolean securityGroupEnabled = zone.isSecurityGroupEnabled() || _networkMgr.isSecurityGroupSupportedForZone(zone.getId()); params.put("securitygroupenabled", Boolean.toString(securityGroupEnabled)); - params.put("router.aggregation.command.each.timeout", _configDao.getValue(Config.RouterAggregationCommandEachTimeout.toString())); + params.put("router.aggregation.command.each.timeout", String.valueOf(ManagementServer.RouterAggregationCommandEachTimeout.value())); params.put("wait", Integer.toString(_wait)); details.put("wait", Integer.toString(_wait)); - params.put("migratewait", _configDao.getValue(Config.MigrateWait.toString())); - params.put(Config.XenServerMaxNics.toString().toLowerCase(), _configDao.getValue(Config.XenServerMaxNics.toString())); - params.put(Config.XenServerHeartBeatTimeout.toString().toLowerCase(), _configDao.getValue(Config.XenServerHeartBeatTimeout.toString())); - params.put(Config.XenServerHeartBeatInterval.toString().toLowerCase(), _configDao.getValue(Config.XenServerHeartBeatInterval.toString())); - params.put(Config.InstanceName.toString().toLowerCase(), _instance); - details.put(Config.InstanceName.toString().toLowerCase(), _instance); + params.put("migratewait", String.valueOf(AgentManager.MigrateWait.value())); + params.put(AgentManager.XenServerMaxNics.toString().toLowerCase(), String.valueOf(AgentManager.XenServerMaxNics.value())); + params.put(ManagementServer.XenServerHeartBeatTimeout.key().toLowerCase(), String.valueOf(ManagementServer.XenServerHeartBeatTimeout.value())); + params.put(ManagementServer.XenServerHeartBeatInterval.key().toLowerCase(), String.valueOf(ManagementServer.XenServerHeartBeatInterval.value())); + params.put(AgentManager.InstanceName.toString().toLowerCase(), _instance); + details.put(AgentManager.InstanceName.toString().toLowerCase(), _instance); try { resource.configure("XenServer", params); } catch (ConfigurationException e) { @@ -473,7 +473,7 @@ protected CitrixResourceBase createServerResource(long dcId, Long podId, Host.Re } protected void serverConfig() { - String value = _params.get(Config.XenServerSetupMultipath.key()); + String value = _params.get(ManagementServer.XenServerSetupMultipath.key()); _setupMultipath = Boolean.parseBoolean(value); } diff --git a/plugins/network-elements/elastic-loadbalancer/src/main/java/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java b/plugins/network-elements/elastic-loadbalancer/src/main/java/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java index a0432b28b944..36c728c206a6 100644 --- a/plugins/network-elements/elastic-loadbalancer/src/main/java/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java +++ b/plugins/network-elements/elastic-loadbalancer/src/main/java/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java @@ -50,7 +50,6 @@ import com.cloud.agent.api.routing.NetworkElementCommand; import com.cloud.agent.api.to.LoadBalancerTO; import com.cloud.agent.manager.Commands; -import com.cloud.configuration.Config; import com.cloud.dc.DataCenter; import com.cloud.dc.DataCenter.NetworkType; import com.cloud.dc.DataCenterVO; @@ -295,11 +294,11 @@ public boolean configure(String name, Map params) throws Configu if (_instance == null) { _instance = "VM"; } - _mgmtCidr = _configDao.getValue(Config.ManagementNetwork.key()); + _mgmtCidr = ManagementServer.ManagementNetwork.value(); - _elasticLbVmRamSize = NumbersUtil.parseInt(configs.get(Config.ElasticLoadBalancerVmMemory.key()), DEFAULT_ELB_VM_RAMSIZE); - _elasticLbvmCpuMHz = NumbersUtil.parseInt(configs.get(Config.ElasticLoadBalancerVmCpuMhz.key()), DEFAULT_ELB_VM_CPU_MHZ); - _elasticLbvmNumCpu = NumbersUtil.parseInt(configs.get(Config.ElasticLoadBalancerVmNumVcpu.key()), 1); + _elasticLbVmRamSize = NumbersUtil.parseInt(configs.get(ElasticLoadBalancerVmMemory.key()), DEFAULT_ELB_VM_RAMSIZE); + _elasticLbvmCpuMHz = NumbersUtil.parseInt(configs.get(ElasticLoadBalancerVmCpuMhz.key()), DEFAULT_ELB_VM_CPU_MHZ); + _elasticLbvmNumCpu = NumbersUtil.parseInt(configs.get(ElasticLoadBalancerVmNumVcpu.key()), 1); List offerings = _serviceOfferingDao.createSystemServiceOfferings("System Offering For Elastic LB VM", ServiceOffering.elbVmDefaultOffUniqueName, _elasticLbvmNumCpu, _elasticLbVmRamSize, _elasticLbvmCpuMHz, 0, 0, true, null, Storage.ProvisioningType.THIN, true, null, true, VirtualMachine.Type.ElasticLoadBalancerVm, true); diff --git a/plugins/network-elements/internal-loadbalancer/src/main/java/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java b/plugins/network-elements/internal-loadbalancer/src/main/java/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java index ef355f49a5f2..25f50335f122 100644 --- a/plugins/network-elements/internal-loadbalancer/src/main/java/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java +++ b/plugins/network-elements/internal-loadbalancer/src/main/java/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java @@ -55,7 +55,6 @@ import com.cloud.agent.api.routing.NetworkElementCommand; import com.cloud.agent.api.to.LoadBalancerTO; import com.cloud.agent.manager.Commands; -import com.cloud.configuration.Config; import com.cloud.configuration.ConfigurationManagerImpl; import com.cloud.dc.DataCenter; import com.cloud.dc.DataCenterVO; @@ -399,16 +398,16 @@ public boolean configure(final String name, final Map params) th } _mgmtHost = configs.get("host"); - _mgmtCidr = _configDao.getValue(Config.ManagementNetwork.key()); + _mgmtCidr = ManagementServer.ManagementNetwork.value(); - final String offUUID = configs.get(Config.InternalLbVmServiceOfferingId.key()); + final String offUUID = configs.get(ManagementServer.InternalLbVmServiceOfferingId.key()); if (offUUID != null && !offUUID.isEmpty()) { //get the id by offering UUID final ServiceOfferingVO off = _serviceOfferingDao.findByUuid(offUUID); if (off != null) { _internalLbVmOfferingId = off.getId(); } else { - logger.warn("Invalid offering UUID is passed in " + Config.InternalLbVmServiceOfferingId.key() + "; the default offering will be used instead"); + logger.warn("Invalid offering UUID is passed in " + ManagementServer.InternalLbVmServiceOfferingId.key() + "; the default offering will be used instead"); } } diff --git a/plugins/storage/image/s3/src/main/java/org/apache/cloudstack/storage/datastore/driver/S3ImageStoreDriverImpl.java b/plugins/storage/image/s3/src/main/java/org/apache/cloudstack/storage/datastore/driver/S3ImageStoreDriverImpl.java index e24eb8a31fcd..8553ba5faa51 100644 --- a/plugins/storage/image/s3/src/main/java/org/apache/cloudstack/storage/datastore/driver/S3ImageStoreDriverImpl.java +++ b/plugins/storage/image/s3/src/main/java/org/apache/cloudstack/storage/datastore/driver/S3ImageStoreDriverImpl.java @@ -34,7 +34,7 @@ import com.cloud.agent.api.to.DataStoreTO; import com.cloud.agent.api.to.S3TO; -import com.cloud.configuration.Config; +import com.cloud.server.ManagementServer; import com.cloud.storage.Storage.ImageFormat; import com.cloud.storage.secondary.SecondaryStorageVmManager; import com.cloud.utils.storage.S3.S3Utils; @@ -63,7 +63,7 @@ public DataStoreTO getStoreTO(DataStore store) { details.get(ApiConstants.S3_MAX_ERROR_RETRY) == null ? null : Integer.valueOf(details.get(ApiConstants.S3_MAX_ERROR_RETRY)), details.get(ApiConstants.S3_SOCKET_TIMEOUT) == null ? null : Integer.valueOf(details.get(ApiConstants.S3_SOCKET_TIMEOUT)), imgStore.getCreated(), - _configDao.getValue(Config.S3EnableRRS.toString()) == null ? false : Boolean.parseBoolean(_configDao.getValue(Config.S3EnableRRS.toString())), + ManagementServer.S3EnableRRS.value(), getMaxSingleUploadSizeInBytes(), details.get(ApiConstants.S3_CONNECTION_TTL) == null ? null : Integer.valueOf(details.get(ApiConstants.S3_CONNECTION_TTL)), details.get(ApiConstants.S3_USE_TCP_KEEPALIVE) == null ? null : Boolean.parseBoolean(details.get(ApiConstants.S3_USE_TCP_KEEPALIVE))); @@ -71,7 +71,7 @@ public DataStoreTO getStoreTO(DataStore store) { private long getMaxSingleUploadSizeInBytes() { try { - return Long.parseLong(_configDao.getValue(Config.S3MaxSingleUploadSize.toString())) * 1024L * 1024L * 1024L; + return ManagementServer.S3MaxSingleUploadSize.value() * 1024L * 1024L * 1024L; } catch (NumberFormatException e) { // use default 1TB return 1024L * 1024L * 1024L * 1024L; diff --git a/server/src/main/java/com/cloud/api/ApiDBUtils.java b/server/src/main/java/com/cloud/api/ApiDBUtils.java index 4ee96a2cdb5a..74aac293b68c 100644 --- a/server/src/main/java/com/cloud/api/ApiDBUtils.java +++ b/server/src/main/java/com/cloud/api/ApiDBUtils.java @@ -156,7 +156,6 @@ import com.cloud.capacity.CapacityVO; import com.cloud.capacity.dao.CapacityDao; import com.cloud.capacity.dao.CapacityDaoImpl.SummedCapacity; -import com.cloud.configuration.Config; import com.cloud.configuration.ConfigurationManager; import com.cloud.configuration.ConfigurationService; import com.cloud.configuration.Resource; @@ -2299,7 +2298,7 @@ public static List listSiteLoadBalancers(long gslbRuleId } public static String getDnsNameConfiguredForGslb() { - String providerDnsName = s_configDao.getValue(Config.CloudDnsName.key()); + String providerDnsName = ManagementServer.CloudDnsName.value(); return providerDnsName; } diff --git a/server/src/main/java/com/cloud/api/query/dao/AccountJoinDaoImpl.java b/server/src/main/java/com/cloud/api/query/dao/AccountJoinDaoImpl.java index de66b80ca555..7a1298b6a83f 100644 --- a/server/src/main/java/com/cloud/api/query/dao/AccountJoinDaoImpl.java +++ b/server/src/main/java/com/cloud/api/query/dao/AccountJoinDaoImpl.java @@ -38,6 +38,7 @@ import com.cloud.api.query.vo.UserAccountJoinVO; import com.cloud.configuration.Resource; import com.cloud.configuration.Resource.ResourceType; +import com.cloud.server.ManagementServer; import com.cloud.user.Account; import com.cloud.user.AccountManager; import com.cloud.utils.db.GenericDaoBase; @@ -293,11 +294,7 @@ private void setGpuResourceLimits(AccountJoinVO account, boolean fullView, Resou @Override public List searchByIds(Long... accountIds) { // set detail batch query size - int DETAILS_BATCH_SIZE = 2000; - String batchCfg = configDao.getValue("detail.batch.query.size"); - if (batchCfg != null) { - DETAILS_BATCH_SIZE = Integer.parseInt(batchCfg); - } + int DETAILS_BATCH_SIZE = ManagementServer.DetailBatchQuerySize.value(); List uvList = new ArrayList<>(); // query details by batches diff --git a/server/src/main/java/com/cloud/api/query/dao/AffinityGroupJoinDaoImpl.java b/server/src/main/java/com/cloud/api/query/dao/AffinityGroupJoinDaoImpl.java index a5fd2bf11f17..62dcb299a121 100644 --- a/server/src/main/java/com/cloud/api/query/dao/AffinityGroupJoinDaoImpl.java +++ b/server/src/main/java/com/cloud/api/query/dao/AffinityGroupJoinDaoImpl.java @@ -29,6 +29,7 @@ import com.cloud.api.ApiResponseHelper; import com.cloud.api.query.vo.AffinityGroupJoinVO; +import com.cloud.server.ManagementServer; import com.cloud.utils.db.GenericDaoBase; import com.cloud.utils.db.SearchBuilder; import com.cloud.utils.db.SearchCriteria; @@ -156,11 +157,7 @@ public List newAffinityGroupView(AffinityGroup ag) { @Override public List searchByIds(Long... agIds) { // set detail batch query size - int DETAILS_BATCH_SIZE = 2000; - String batchCfg = _configDao.getValue("detail.batch.query.size"); - if (batchCfg != null) { - DETAILS_BATCH_SIZE = Integer.parseInt(batchCfg); - } + int DETAILS_BATCH_SIZE = ManagementServer.DetailBatchQuerySize.value(); // query details by batches List uvList = new ArrayList(); // query details by batches diff --git a/server/src/main/java/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java b/server/src/main/java/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java index e53f94fa0c3e..afea70b36606 100644 --- a/server/src/main/java/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java +++ b/server/src/main/java/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java @@ -36,6 +36,7 @@ import com.cloud.dc.dao.VsphereStoragePolicyDao; import com.cloud.offering.DiskOffering; import com.cloud.offering.ServiceOffering; +import com.cloud.server.ManagementServer; import com.cloud.server.ResourceTag; import com.cloud.user.AccountManager; import com.cloud.utils.db.Filter; @@ -167,11 +168,7 @@ public List searchByIds(Long... offeringIds) { Filter searchFilter = new Filter(DiskOfferingJoinVO.class, "sortKey", SortKeyAscending.value()); searchFilter.addOrderBy(DiskOfferingJoinVO.class, "id", true); // set detail batch query size - int DETAILS_BATCH_SIZE = 2000; - String batchCfg = configDao.getValue("detail.batch.query.size"); - if (batchCfg != null) { - DETAILS_BATCH_SIZE = Integer.parseInt(batchCfg); - } + int DETAILS_BATCH_SIZE = ManagementServer.DetailBatchQuerySize.value(); List uvList = new ArrayList<>(); // query details by batches diff --git a/server/src/main/java/com/cloud/api/query/dao/DomainJoinDaoImpl.java b/server/src/main/java/com/cloud/api/query/dao/DomainJoinDaoImpl.java index b6a3370e6bcf..d0f0ecf23d0a 100644 --- a/server/src/main/java/com/cloud/api/query/dao/DomainJoinDaoImpl.java +++ b/server/src/main/java/com/cloud/api/query/dao/DomainJoinDaoImpl.java @@ -38,6 +38,7 @@ import com.cloud.configuration.Resource; import com.cloud.configuration.Resource.ResourceType; import com.cloud.domain.Domain; +import com.cloud.server.ManagementServer; import com.cloud.user.AccountManager; import com.cloud.utils.db.GenericDaoBase; import com.cloud.utils.db.SearchBuilder; @@ -265,11 +266,7 @@ private void setGpuResourceLimits(DomainJoinVO domain, boolean fullView, Resourc @Override public List searchByIds(Long... domainIds) { // set detail batch query size - int DETAILS_BATCH_SIZE = 2000; - String batchCfg = configDao.getValue("detail.batch.query.size"); - if (batchCfg != null) { - DETAILS_BATCH_SIZE = Integer.parseInt(batchCfg); - } + int DETAILS_BATCH_SIZE = ManagementServer.DetailBatchQuerySize.value(); List uvList = new ArrayList<>(); // query details by batches diff --git a/server/src/main/java/com/cloud/api/query/dao/DomainRouterJoinDaoImpl.java b/server/src/main/java/com/cloud/api/query/dao/DomainRouterJoinDaoImpl.java index 9bc409d455e7..2c3b51d491f1 100644 --- a/server/src/main/java/com/cloud/api/query/dao/DomainRouterJoinDaoImpl.java +++ b/server/src/main/java/com/cloud/api/query/dao/DomainRouterJoinDaoImpl.java @@ -41,6 +41,7 @@ import com.cloud.network.Networks.TrafficType; import com.cloud.network.router.VirtualRouter; import com.cloud.network.router.VirtualRouter.Role; +import com.cloud.server.ManagementServer; import com.cloud.storage.VMTemplateVO; import com.cloud.user.Account; import com.cloud.user.AccountManager; @@ -300,11 +301,7 @@ public DomainRouterResponse setDomainRouterResponse(DomainRouterResponse vrData, @Override public List searchByIds(Long... vrIds) { // set detail batch query size - int DETAILS_BATCH_SIZE = 2000; - String batchCfg = _configDao.getValue("detail.batch.query.size"); - if (batchCfg != null) { - DETAILS_BATCH_SIZE = Integer.parseInt(batchCfg); - } + int DETAILS_BATCH_SIZE = ManagementServer.DetailBatchQuerySize.value(); // query details by batches List uvList = new ArrayList(); // query details by batches diff --git a/server/src/main/java/com/cloud/api/query/dao/HostJoinDaoImpl.java b/server/src/main/java/com/cloud/api/query/dao/HostJoinDaoImpl.java index 2e4025ca0013..e94e5fbd822d 100644 --- a/server/src/main/java/com/cloud/api/query/dao/HostJoinDaoImpl.java +++ b/server/src/main/java/com/cloud/api/query/dao/HostJoinDaoImpl.java @@ -56,6 +56,7 @@ import com.cloud.host.dao.HostDetailsDao; import com.cloud.hypervisor.Hypervisor; import com.cloud.resource.ResourceState; +import com.cloud.server.ManagementServer; import com.cloud.storage.StorageStats; import com.cloud.user.AccountManager; import com.cloud.utils.db.Filter; @@ -393,11 +394,7 @@ public List newHostView(Host host) { @Override public List searchByIds(Long... hostIds) { // set detail batch query size - int DETAILS_BATCH_SIZE = 2000; - String batchCfg = _configDao.getValue("detail.batch.query.size"); - if (batchCfg != null) { - DETAILS_BATCH_SIZE = Integer.parseInt(batchCfg); - } + int DETAILS_BATCH_SIZE = ManagementServer.DetailBatchQuerySize.value(); // query details by batches List uvList = new ArrayList(); // query details by batches diff --git a/server/src/main/java/com/cloud/api/query/dao/ImageStoreJoinDaoImpl.java b/server/src/main/java/com/cloud/api/query/dao/ImageStoreJoinDaoImpl.java index 9a0c271fdb48..a8df16e77dfd 100644 --- a/server/src/main/java/com/cloud/api/query/dao/ImageStoreJoinDaoImpl.java +++ b/server/src/main/java/com/cloud/api/query/dao/ImageStoreJoinDaoImpl.java @@ -22,6 +22,7 @@ import javax.inject.Inject; import com.cloud.api.ApiDBUtils; +import com.cloud.server.ManagementServer; import com.cloud.storage.StorageStats; import com.cloud.user.AccountManager; import org.apache.cloudstack.annotation.AnnotationService; @@ -116,11 +117,7 @@ public List newImageStoreView(ImageStore os) { @Override public List searchByIds(Long... spIds) { // set detail batch query size - int DETAILS_BATCH_SIZE = 2000; - String batchCfg = _configDao.getValue("detail.batch.query.size"); - if (batchCfg != null) { - DETAILS_BATCH_SIZE = Integer.parseInt(batchCfg); - } + int DETAILS_BATCH_SIZE = ManagementServer.DetailBatchQuerySize.value(); // query details by batches List uvList = new ArrayList(); // query details by batches diff --git a/server/src/main/java/com/cloud/api/query/dao/ProjectJoinDaoImpl.java b/server/src/main/java/com/cloud/api/query/dao/ProjectJoinDaoImpl.java index d1aebb591085..e57b756202ff 100644 --- a/server/src/main/java/com/cloud/api/query/dao/ProjectJoinDaoImpl.java +++ b/server/src/main/java/com/cloud/api/query/dao/ProjectJoinDaoImpl.java @@ -23,7 +23,6 @@ import java.util.Map; import java.util.stream.Collectors; - import javax.inject.Inject; import org.springframework.stereotype.Component; @@ -40,6 +39,7 @@ import com.cloud.projects.ProjectAccount; import com.cloud.projects.ProjectAccountVO; import com.cloud.projects.dao.ProjectAccountDao; +import com.cloud.server.ManagementServer; import com.cloud.server.ResourceTag.ResourceObjectType; import com.cloud.user.Account; import com.cloud.user.User; @@ -138,11 +138,7 @@ public List newProjectView(Project proj) { @Override public List searchByIds(Long... prjIds) { // set detail batch query size - int DETAILS_BATCH_SIZE = 2000; - String batchCfg = _configDao.getValue("detail.batch.query.size"); - if (batchCfg != null) { - DETAILS_BATCH_SIZE = Integer.parseInt(batchCfg); - } + int DETAILS_BATCH_SIZE = ManagementServer.DetailBatchQuerySize.value(); // query details by batches List uvList = new ArrayList(); // query details by batches diff --git a/server/src/main/java/com/cloud/api/query/dao/ResourceTagJoinDaoImpl.java b/server/src/main/java/com/cloud/api/query/dao/ResourceTagJoinDaoImpl.java index be3d59f8645a..03b02cc72627 100644 --- a/server/src/main/java/com/cloud/api/query/dao/ResourceTagJoinDaoImpl.java +++ b/server/src/main/java/com/cloud/api/query/dao/ResourceTagJoinDaoImpl.java @@ -28,6 +28,7 @@ import com.cloud.api.ApiResponseHelper; import com.cloud.api.query.vo.ResourceTagJoinVO; +import com.cloud.server.ManagementServer; import com.cloud.server.ResourceTag; import com.cloud.server.ResourceTag.ResourceObjectType; import com.cloud.utils.db.GenericDaoBase; @@ -97,11 +98,7 @@ public List listBy(String resourceUUID, ResourceObjectType re @Override public List searchByIds(Long... tagIds) { // set detail batch query size - int DETAILS_BATCH_SIZE = 2000; - String batchCfg = _configDao.getValue("detail.batch.query.size"); - if (batchCfg != null) { - DETAILS_BATCH_SIZE = Integer.parseInt(batchCfg); - } + int DETAILS_BATCH_SIZE = ManagementServer.DetailBatchQuerySize.value(); // query details by batches List uvList = new ArrayList(); // query details by batches diff --git a/server/src/main/java/com/cloud/api/query/dao/SecurityGroupJoinDaoImpl.java b/server/src/main/java/com/cloud/api/query/dao/SecurityGroupJoinDaoImpl.java index 72a7e8a3d399..1d56733f5f8a 100644 --- a/server/src/main/java/com/cloud/api/query/dao/SecurityGroupJoinDaoImpl.java +++ b/server/src/main/java/com/cloud/api/query/dao/SecurityGroupJoinDaoImpl.java @@ -37,6 +37,7 @@ import com.cloud.network.security.SecurityGroupVMMapVO; import com.cloud.network.security.SecurityRule.SecurityRuleType; import com.cloud.network.security.dao.SecurityGroupVMMapDao; +import com.cloud.server.ManagementServer; import com.cloud.server.ResourceTag; import com.cloud.user.Account; import com.cloud.utils.db.GenericDaoBase; @@ -226,11 +227,7 @@ public List newSecurityGroupView(SecurityGroup sg) { @Override public List searchByIds(Long... sgIds) { // set detail batch query size - int DETAILS_BATCH_SIZE = 2000; - String batchCfg = _configDao.getValue("detail.batch.query.size"); - if (batchCfg != null) { - DETAILS_BATCH_SIZE = Integer.parseInt(batchCfg); - } + int DETAILS_BATCH_SIZE = ManagementServer.DetailBatchQuerySize.value(); // query details by batches List uvList = new ArrayList(); // query details by batches diff --git a/server/src/main/java/com/cloud/api/query/dao/ServiceOfferingJoinDaoImpl.java b/server/src/main/java/com/cloud/api/query/dao/ServiceOfferingJoinDaoImpl.java index 579425a68c13..75c6f479071a 100644 --- a/server/src/main/java/com/cloud/api/query/dao/ServiceOfferingJoinDaoImpl.java +++ b/server/src/main/java/com/cloud/api/query/dao/ServiceOfferingJoinDaoImpl.java @@ -42,6 +42,7 @@ import com.cloud.dc.VsphereStoragePolicyVO; import com.cloud.dc.dao.VsphereStoragePolicyDao; import com.cloud.offering.ServiceOffering; +import com.cloud.server.ManagementServer; import com.cloud.server.ResourceTag.ResourceObjectType; import com.cloud.storage.DiskOfferingVO; import com.cloud.user.AccountManager; @@ -256,11 +257,7 @@ public List searchByIds(Long... offeringIds) { searchFilter.addOrderBy(ServiceOfferingJoinVO.class, "id", true); // set detail batch query size - int DETAILS_BATCH_SIZE = 2000; - String batchCfg = configDao.getValue("detail.batch.query.size"); - if (batchCfg != null) { - DETAILS_BATCH_SIZE = Integer.parseInt(batchCfg); - } + int DETAILS_BATCH_SIZE = ManagementServer.DetailBatchQuerySize.value(); List uvList = new ArrayList<>(); // query details by batches diff --git a/server/src/main/java/com/cloud/api/query/dao/SnapshotJoinDaoImpl.java b/server/src/main/java/com/cloud/api/query/dao/SnapshotJoinDaoImpl.java index 0b0d9b269f3e..85195a49adda 100644 --- a/server/src/main/java/com/cloud/api/query/dao/SnapshotJoinDaoImpl.java +++ b/server/src/main/java/com/cloud/api/query/dao/SnapshotJoinDaoImpl.java @@ -29,6 +29,7 @@ import com.cloud.api.ApiDBUtils; import com.cloud.api.ApiResponseHelper; import com.cloud.api.query.vo.SnapshotJoinVO; +import com.cloud.server.ManagementServer; import com.cloud.storage.GuestOS; import com.cloud.storage.Snapshot; import com.cloud.storage.VMTemplateStorageResourceAssoc; @@ -226,11 +227,7 @@ public SnapshotResponse setSnapshotResponse(SnapshotResponse snapshotResponse, S @Override public List searchBySnapshotStorePair(String... pairs) { // set detail batch query size - int DETAILS_BATCH_SIZE = 2000; - String batchCfg = configDao.getValue("detail.batch.query.size"); - if (batchCfg != null) { - DETAILS_BATCH_SIZE = Integer.parseInt(batchCfg); - } + int DETAILS_BATCH_SIZE = ManagementServer.DetailBatchQuerySize.value(); // query details by batches Filter searchFilter = new Filter(SnapshotJoinVO.class, "snapshotStorePair", QueryService.SortKeyAscending.value(), null, null); List uvList = new ArrayList<>(); diff --git a/server/src/main/java/com/cloud/api/query/dao/StoragePoolJoinDaoImpl.java b/server/src/main/java/com/cloud/api/query/dao/StoragePoolJoinDaoImpl.java index 946e3df4e90d..c866fe7298af 100644 --- a/server/src/main/java/com/cloud/api/query/dao/StoragePoolJoinDaoImpl.java +++ b/server/src/main/java/com/cloud/api/query/dao/StoragePoolJoinDaoImpl.java @@ -22,6 +22,7 @@ import java.util.Map; import javax.inject.Inject; +import com.cloud.server.ManagementServer; import com.cloud.storage.clvm.ClvmPoolManager; import org.apache.cloudstack.annotation.AnnotationService; @@ -339,11 +340,7 @@ public List newStoragePoolView(StoragePool host) { @Override public List searchByIds(Long... spIds) { // set detail batch query size - int DETAILS_BATCH_SIZE = 2000; - String batchCfg = _configDao.getValue("detail.batch.query.size"); - if (batchCfg != null) { - DETAILS_BATCH_SIZE = Integer.parseInt(batchCfg); - } + int DETAILS_BATCH_SIZE = ManagementServer.DetailBatchQuerySize.value(); // query details by batches List uvList = new ArrayList(); // query details by batches diff --git a/server/src/main/java/com/cloud/api/query/dao/UserVmJoinDaoImpl.java b/server/src/main/java/com/cloud/api/query/dao/UserVmJoinDaoImpl.java index ebc2326a72d5..7f9a9d2311f4 100644 --- a/server/src/main/java/com/cloud/api/query/dao/UserVmJoinDaoImpl.java +++ b/server/src/main/java/com/cloud/api/query/dao/UserVmJoinDaoImpl.java @@ -72,6 +72,7 @@ import com.cloud.network.IpAddress; import com.cloud.network.vpc.VpcVO; import com.cloud.network.vpc.dao.VpcDao; +import com.cloud.server.ManagementServer; import com.cloud.service.ServiceOfferingDetailsVO; import com.cloud.service.dao.ServiceOfferingDao; import com.cloud.storage.DiskOfferingVO; @@ -779,11 +780,7 @@ public UserVmResponse setUserVmResponse(ResponseView view, UserVmResponse userVm @Override public List searchByIds(Long... vmIds) { // set detail batch query size - int DETAILS_BATCH_SIZE = 2000; - String batchCfg = _configDao.getValue("detail.batch.query.size"); - if (batchCfg != null) { - DETAILS_BATCH_SIZE = Integer.parseInt(batchCfg); - } + int DETAILS_BATCH_SIZE = ManagementServer.DetailBatchQuerySize.value(); // query details by batches List uvList = new ArrayList(); // query details by batches diff --git a/server/src/main/java/com/cloud/api/query/dao/VolumeJoinDaoImpl.java b/server/src/main/java/com/cloud/api/query/dao/VolumeJoinDaoImpl.java index e82ec525f01b..40074a489dfb 100644 --- a/server/src/main/java/com/cloud/api/query/dao/VolumeJoinDaoImpl.java +++ b/server/src/main/java/com/cloud/api/query/dao/VolumeJoinDaoImpl.java @@ -21,6 +21,7 @@ import java.util.List; import javax.inject.Inject; +import com.cloud.server.ManagementServer; import com.cloud.storage.clvm.ClvmPoolManager; import org.apache.cloudstack.annotation.AnnotationService; @@ -361,11 +362,7 @@ public List newVolumeView(Volume vol) { @Override public List searchByIds(Long... volIds) { // set detail batch query size - int DETAILS_BATCH_SIZE = 2000; - String batchCfg = _configDao.getValue("detail.batch.query.size"); - if (batchCfg != null) { - DETAILS_BATCH_SIZE = Integer.parseInt(batchCfg); - } + int DETAILS_BATCH_SIZE = ManagementServer.DetailBatchQuerySize.value(); // query details by batches List uvList = new ArrayList(); // query details by batches diff --git a/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java b/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java index 4a5bc4494b84..6227f15bac54 100644 --- a/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java +++ b/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java @@ -750,7 +750,7 @@ public boolean start() { // As it is so common for people to forget about configuring // management.network.cidr, - final String mgtCidr = _configDao.getValue(Config.ManagementNetwork.key()); + final String mgtCidr = ManagementServer.ManagementNetwork.value(); if (mgtCidr == null || mgtCidr.trim().isEmpty()) { final String[] localCidrs = NetUtils.getLocalCidrs(); if (localCidrs != null && localCidrs.length > 0) { @@ -758,7 +758,7 @@ public boolean start() { _alertMgr.sendAlert(AlertManager.AlertType.ALERT_TYPE_MANAGEMENT_NODE, 0, 0L, "Management network CIDR is not configured originally. Set it default to " + localCidrs[0], ""); - _configDao.update(Config.ManagementNetwork.key(), Config.ManagementNetwork.getCategory(), localCidrs[0]); + _configDao.update(ManagementServer.ManagementNetwork.key(), ManagementServer.ManagementNetwork.category(), localCidrs[0]); } else { logger.warn("Management network CIDR is not properly configured and we are not able to find a default setting"); _alertMgr.sendAlert(AlertManager.AlertType.ALERT_TYPE_MANAGEMENT_NODE, 0, 0L, @@ -1015,8 +1015,8 @@ private boolean shouldEncryptValue(String category) { * Updates the 'hypervisor.list' value to match the new custom hypervisor name set as newValue if the previous value was set */ private void updateCustomDisplayNameOnHypervisorsList(String previousValue, String newValue) { - String hypervisorListConfigName = Config.HypervisorList.key(); - String hypervisors = _configDao.getValue(hypervisorListConfigName); + String hypervisorListConfigName = ManagementServer.HypervisorList.key(); + String hypervisors = ManagementServer.HypervisorList.value(); if (Arrays.asList(hypervisors.split(",")).contains(previousValue)) { hypervisors = hypervisors.replace(previousValue, newValue); logger.info("Updating the hypervisor list configuration '{}' to match the new custom hypervisor display name", @@ -2700,7 +2700,7 @@ public HostPodVO createPod(final long userId, final String podName, final DataCe _zoneDao.addPrivateIpAddress(zone.getId(), pod.getId(), startIpFinal, endIpFinal, false, null); } - final String[] linkLocalIpRanges = NetUtils.getLinkLocalIPRange(_configDao.getValue(Config.ControlCidr.key())); + final String[] linkLocalIpRanges = NetUtils.getLinkLocalIPRange(ManagementServer.ControlCidr.value()); if (linkLocalIpRanges.length > 1) { _zoneDao.addLinkLocalIpAddress(zone.getId(), pod.getId(), linkLocalIpRanges[0], linkLocalIpRanges[1]); } diff --git a/server/src/main/java/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java b/server/src/main/java/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java index 68bfbe3d952a..0d46c2d031ba 100644 --- a/server/src/main/java/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java +++ b/server/src/main/java/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java @@ -62,7 +62,6 @@ import com.cloud.agent.api.proxy.ConsoleProxyLoadAnswer; import com.cloud.agent.manager.Commands; import com.cloud.cluster.ClusterManager; -import com.cloud.configuration.Config; import com.cloud.configuration.ConfigurationManagerImpl; import com.cloud.configuration.ZoneConfig; import com.cloud.dc.DataCenter; @@ -1241,7 +1240,7 @@ public boolean finalizeVirtualMachineProfile(VirtualMachineProfile profile, Depl } if (nic.getTrafficType() == TrafficType.Management) { - String mgmt_cidr = configurationDao.getValue(Config.ManagementNetwork.key()); + String mgmt_cidr = ManagementServer.ManagementNetwork.value(); if (NetUtils.isValidCidrList(mgmt_cidr)) { logger.debug("Management server cidr list is " + mgmt_cidr); buf.append(" mgmtcidr=").append(mgmt_cidr); diff --git a/server/src/main/java/com/cloud/hypervisor/kvm/discoverer/LibvirtServerDiscoverer.java b/server/src/main/java/com/cloud/hypervisor/kvm/discoverer/LibvirtServerDiscoverer.java index e7dd3dea60e5..52fb2f53b789 100644 --- a/server/src/main/java/com/cloud/hypervisor/kvm/discoverer/LibvirtServerDiscoverer.java +++ b/server/src/main/java/com/cloud/hypervisor/kvm/discoverer/LibvirtServerDiscoverer.java @@ -43,7 +43,6 @@ import com.cloud.agent.api.ShutdownCommand; import com.cloud.agent.api.StartupCommand; import com.cloud.agent.api.StartupRoutingCommand; -import com.cloud.configuration.Config; import com.cloud.dc.ClusterVO; import com.cloud.exception.AgentUnavailableException; import com.cloud.exception.DiscoveredWithErrorException; @@ -229,7 +228,7 @@ private void setupAgentSecurity(final Connection sshConnection, final String age sshConnection.connect(null, 60000, 60000); - final String privateKey = _configDao.getValue("ssh.privatekey"); + final String privateKey = ManagementServer.SshPrivateKey.value(); if (!SSHCmdHelper.acquireAuthorizedConnectionWithPublicKey(sshConnection, username, privateKey)) { if (org.apache.commons.lang3.StringUtils.isEmpty(password)) { logger.error("Failed to authenticate with SSH key"); @@ -312,7 +311,7 @@ private void setupAgentSecurity(final Connection sshConnection, final String age KvmDummyResourceBase kvmResource = new KvmDummyResourceBase(); Map params = new HashMap(); - params.put("router.aggregation.command.each.timeout", _configDao.getValue(Config.RouterAggregationCommandEachTimeout.toString())); + params.put("router.aggregation.command.each.timeout", String.valueOf(ManagementServer.RouterAggregationCommandEachTimeout.value())); params.put("zone", Long.toString(dcId)); params.put("pod", Long.toString(podId)); diff --git a/server/src/main/java/com/cloud/network/guru/ControlNetworkGuru.java b/server/src/main/java/com/cloud/network/guru/ControlNetworkGuru.java index 9cec05446ac6..21b67a47fdfb 100644 --- a/server/src/main/java/com/cloud/network/guru/ControlNetworkGuru.java +++ b/server/src/main/java/com/cloud/network/guru/ControlNetworkGuru.java @@ -24,7 +24,6 @@ import com.cloud.network.router.VirtualNetworkApplianceManager; import org.apache.cloudstack.framework.config.dao.ConfigurationDao; -import com.cloud.configuration.Config; import com.cloud.dc.DataCenter; import com.cloud.dc.DataCenter.NetworkType; import com.cloud.dc.DataCenterVO; @@ -43,6 +42,7 @@ import com.cloud.network.Networks.TrafficType; import com.cloud.network.dao.NetworkVO; import com.cloud.offering.NetworkOffering; +import com.cloud.server.ManagementServer; import com.cloud.user.Account; import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.net.NetUtils; @@ -225,12 +225,12 @@ public boolean configure(String name, Map params) throws Configu Map dbParams = _configDao.getConfiguration(params); - _cidr = dbParams.get(Config.ControlCidr.toString()); + _cidr = dbParams.get(ManagementServer.ControlCidr.key()); if (_cidr == null) { _cidr = NetUtils.getLinkLocalCIDR(); } - _gateway = dbParams.get(Config.ControlGateway.toString()); + _gateway = dbParams.get(ManagementServer.ControlGateway.key()); if (_gateway == null) { _gateway = NetUtils.getLinkLocalGateway(); } diff --git a/server/src/main/java/com/cloud/network/router/CommandSetupHelper.java b/server/src/main/java/com/cloud/network/router/CommandSetupHelper.java index e458f8e62d75..de82348b7365 100644 --- a/server/src/main/java/com/cloud/network/router/CommandSetupHelper.java +++ b/server/src/main/java/com/cloud/network/router/CommandSetupHelper.java @@ -75,7 +75,6 @@ import com.cloud.agent.api.to.PortForwardingRuleTO; import com.cloud.agent.api.to.StaticNatRuleTO; import com.cloud.agent.manager.Commands; -import com.cloud.configuration.Config; import com.cloud.configuration.ConfigurationManager; import com.cloud.dc.ASNumberVO; import com.cloud.dc.DataCenter; @@ -136,6 +135,7 @@ import com.cloud.offerings.NetworkOfferingVO; import com.cloud.offerings.dao.NetworkOfferingDao; import com.cloud.offerings.dao.NetworkOfferingDetailsDao; +import com.cloud.server.ManagementServer; import com.cloud.service.dao.ServiceOfferingDao; import com.cloud.user.Account; import com.cloud.uservm.UserVm; @@ -1065,10 +1065,7 @@ public int compare(final PublicIpAddress o1, final PublicIpAddress o2) { setIpAddressNetworkParams(ip, network, router); if (router.getHypervisorType() == Hypervisor.HypervisorType.VMware) { Map details = new HashMap<>(); - String defaultSystemVmNicAdapterType = _configDao.getValue(Config.VmwareSystemVmNicDeviceType.key()); - if (defaultSystemVmNicAdapterType == null) { - defaultSystemVmNicAdapterType = Config.VmwareSystemVmNicDeviceType.getDefaultValue(); - } + String defaultSystemVmNicAdapterType = ManagementServer.VmwareSystemVmNicDeviceType.value(); details.put(VmDetailConstants.NIC_ADAPTER, defaultSystemVmNicAdapterType); ip.setDetails(details); } diff --git a/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java b/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java index 389a1fcb0b20..1ffb9d51b4f5 100644 --- a/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java +++ b/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java @@ -122,7 +122,6 @@ import com.cloud.bgp.BGPService; import com.cloud.cluster.ManagementServerHostVO; import com.cloud.cluster.dao.ManagementServerHostDao; -import com.cloud.configuration.Config; import com.cloud.configuration.ZoneConfig; import com.cloud.dc.DataCenter; import com.cloud.dc.DataCenter.NetworkType; @@ -1975,7 +1974,7 @@ public boolean finalizeVirtualMachineProfile(final VirtualMachineProfile profile // always add management explicit route, for basic // networking setup, DomR may have two interfaces while both // are on the same subnet - String _mgmtCidr = _configDao.getValue(Config.ManagementNetwork.key()); + String _mgmtCidr = ManagementServer.ManagementNetwork.value(); if (NetUtils.isValidIp4Cidr(_mgmtCidr)) { buf.append(" mgmtcidr=").append(_mgmtCidr); buf.append(" localgw=").append(dest.getPod().getGateway()); @@ -2086,7 +2085,7 @@ public boolean finalizeVirtualMachineProfile(final VirtualMachineProfile profile buf.append(" exposedns=true"); } - if (Boolean.parseBoolean(_configDao.getValue(Config.BaremetalProvisionDoneNotificationEnabled.key()))) { + if (ManagementServer.BaremetalProvisionDoneNotificationEnabled.value()) { final QueryBuilder acntq = QueryBuilder.create(UserVO.class); acntq.and(acntq.entity().getUsername(), SearchCriteria.Op.EQ, "baremetal-system-account"); final UserVO user = acntq.find(); @@ -2102,7 +2101,7 @@ public boolean finalizeVirtualMachineProfile(final VirtualMachineProfile profile buf.append(String.format(" baremetalnotificationsecuritykey=%s", latestKeypair.getSecretKey())); buf.append(String.format(" baremetalnotificationapikey=%s", latestKeypair.getApiKey())); buf.append(" host=").append(ApiServiceConfiguration.ManagementServerAddresses.value()); - buf.append(" port=").append(_configDao.getValue(Config.BaremetalProvisionDoneNotificationPort.key())); + buf.append(" port=").append(ManagementServer.BaremetalProvisionDoneNotificationPort.value()); } } diff --git a/server/src/main/java/com/cloud/resource/ResourceManagerImpl.java b/server/src/main/java/com/cloud/resource/ResourceManagerImpl.java index e241339bfd6d..5a9d5694aa23 100755 --- a/server/src/main/java/com/cloud/resource/ResourceManagerImpl.java +++ b/server/src/main/java/com/cloud/resource/ResourceManagerImpl.java @@ -108,7 +108,6 @@ import com.cloud.capacity.CapacityVO; import com.cloud.capacity.dao.CapacityDao; import com.cloud.cluster.ClusterManager; -import com.cloud.configuration.Config; import com.cloud.cpu.CPU; import com.cloud.dc.ClusterDetailsDao; import com.cloud.dc.ClusterDetailsVO; @@ -178,6 +177,7 @@ import com.cloud.org.Grouping; import com.cloud.org.Managed; import com.cloud.serializer.GsonHelper; +import com.cloud.server.ManagementServer; import com.cloud.server.ManagementService; import com.cloud.service.ServiceOfferingDetailsVO; import com.cloud.service.ServiceOfferingVO; @@ -1232,7 +1232,7 @@ public void doInTransactionWithoutResult(final TransactionStatus status) { // If this cluster is of type vmware, and if the nexus vswitch // global parameter setting is turned // on, remove the row in cluster_vsm_map for this cluster id. - if (hypervisorType == HypervisorType.VMware && Boolean.parseBoolean(_configDao.getValue(Config.VmwareUseNexusVSwitch.toString()))) { + if (hypervisorType == HypervisorType.VMware && ManagementServer.VmwareUseNexusVSwitch.value()) { _clusterVSMMapDao.removeByClusterId(cmd.getId()); } // remove from dedicated resources @@ -3980,7 +3980,7 @@ protected Ternary getHostCredentials(HostVO host) { _hostDao.loadDetails(host); final String password = host.getDetail("password"); final String username = host.getDetail("username"); - final String privateKey = _configDao.getValue("ssh.privatekey"); + final String privateKey = ManagementServer.SshPrivateKey.value(); if ((password == null && privateKey == null) || username == null) { throw new CloudRuntimeException("SSH to agent is enabled, but username and password or private key are not found"); } diff --git a/server/src/main/java/com/cloud/server/ConfigurationServerImpl.java b/server/src/main/java/com/cloud/server/ConfigurationServerImpl.java index 053d2a7fdc6f..15862e30e373 100644 --- a/server/src/main/java/com/cloud/server/ConfigurationServerImpl.java +++ b/server/src/main/java/com/cloud/server/ConfigurationServerImpl.java @@ -393,12 +393,12 @@ private void initiateXenServerPVDriverVersion() { @Override public void doInTransactionWithoutResult(TransactionStatus status) { TransactionLegacy txn = TransactionLegacy.currentTxn(); - String pvdriverversion = Config.XenServerPVdriverVersion.getDefaultValue(); + String pvdriverversion = ManagementServer.XenServerPVdriverVersion.defaultValue(); PreparedStatement pstmt = null; ResultSet rs1 = null; ResultSet rs2 = null; try { - String oldValue = _configDao.getValue(Config.XenServerPVdriverVersion.key()); + String oldValue = ManagementServer.XenServerPVdriverVersion.value(); if (oldValue == null) { String sql = "select resource from host where hypervisor_type='XenServer' and removed is null and status not in ('Error', 'Removed') group by resource"; pstmt = txn.prepareAutoCloseStatement(sql); @@ -416,8 +416,8 @@ public void doInTransactionWithoutResult(TransactionStatus status) { break; } } - _configDao.getValueAndInitIfNotExist(Config.XenServerPVdriverVersion.key(), Config.XenServerPVdriverVersion.getCategory(), pvdriverversion, - Config.XenServerPVdriverVersion.getDescription()); + _configDao.getValueAndInitIfNotExist(ManagementServer.XenServerPVdriverVersion.key(), ManagementServer.XenServerPVdriverVersion.category(), pvdriverversion, + ManagementServer.XenServerPVdriverVersion.description()); sql = "select id from vm_template where hypervisor_type='XenServer' and format!='ISO' and removed is null"; pstmt = txn.prepareAutoCloseStatement(sql); rs2 = pstmt.executeQuery(); @@ -926,13 +926,12 @@ public void doInTransactionWithoutResult(TransactionStatus status) throws Intern _zoneDao.addPrivateIpAddress(zoneId, pod.getId(), startIp, endIpFinal, false, null); } - String ipNums = _configDao.getValue("linkLocalIp.nums"); - int nums = Integer.parseInt(ipNums); + int nums = ManagementServer.LinkLocalIpNums.value(); if (nums > 16 || nums <= 0) { throw new InvalidParameterValueException("The linkLocalIp.nums: " + nums + "is wrong, should be 1~16"); } /* local link ip address starts from 169.254.0.2 - 169.254.(nums) */ - String[] linkLocalIpRanges = NetUtils.getLinkLocalIPRange(_configDao.getValue(Config.ControlCidr.key())); + String[] linkLocalIpRanges = NetUtils.getLinkLocalIPRange(ManagementServer.ControlCidr.value()); _zoneDao.addLinkLocalIpAddress(zoneId, pod.getId(), linkLocalIpRanges[0], linkLocalIpRanges[1]); } }); diff --git a/server/src/main/java/com/cloud/server/ManagementServerImpl.java b/server/src/main/java/com/cloud/server/ManagementServerImpl.java index 01d0ae4e6eeb..0e15f2422537 100644 --- a/server/src/main/java/com/cloud/server/ManagementServerImpl.java +++ b/server/src/main/java/com/cloud/server/ManagementServerImpl.java @@ -702,7 +702,6 @@ import com.cloud.cluster.ClusterManager; import com.cloud.cluster.ManagementServerHostVO; import com.cloud.cluster.dao.ManagementServerHostDao; -import com.cloud.configuration.Config; import com.cloud.configuration.ConfigurationManagerImpl; import com.cloud.consoleproxy.ConsoleProxyManagementState; import com.cloud.consoleproxy.ConsoleProxyManager; @@ -1162,8 +1161,8 @@ public boolean configure(final String name, final Map params) th } //Alerts purge configurations - final int alertPurgeInterval = NumbersUtil.parseInt(_configDao.getValue(Config.AlertPurgeInterval.key()), 60 * 60 * 24); // 1 day. - _alertPurgeDelay = NumbersUtil.parseInt(_configDao.getValue(Config.AlertPurgeDelay.key()), 0); + final int alertPurgeInterval = AlertPurgeInterval.value(); + _alertPurgeDelay = AlertPurgeDelay.value(); if (_alertPurgeDelay != 0) { _alertExecutor.scheduleAtFixedRate(new AlertPurgeTask(), alertPurgeInterval, alertPurgeInterval, TimeUnit.SECONDS); } @@ -5122,7 +5121,7 @@ private void validateCertificate(String certificate, String key, String domainSu @Override public List getHypervisors(final Long zoneId) { final List result = new ArrayList<>(); - final String hypers = _configDao.getValue(Config.HypervisorList.key()); + final String hypers = HypervisorList.value(); final String[] hypervisors = hypers.split(","); if (zoneId != null) { diff --git a/server/src/main/java/com/cloud/template/TemplateAdapterBase.java b/server/src/main/java/com/cloud/template/TemplateAdapterBase.java index a98378d0d9f2..6bdac9125189 100644 --- a/server/src/main/java/com/cloud/template/TemplateAdapterBase.java +++ b/server/src/main/java/com/cloud/template/TemplateAdapterBase.java @@ -56,7 +56,6 @@ import org.apache.commons.lang3.StringUtils; import com.cloud.api.ApiDBUtils; -import com.cloud.configuration.Config; import com.cloud.configuration.Resource.ResourceType; import com.cloud.cpu.CPU; import com.cloud.dc.DataCenterVO; @@ -74,6 +73,7 @@ import com.cloud.org.Grouping; import com.cloud.projects.ProjectManager; import com.cloud.server.ConfigurationServer; +import com.cloud.server.ManagementServer; import com.cloud.server.StatsCollector; import com.cloud.storage.GuestOS; import com.cloud.storage.Storage.ImageFormat; @@ -388,7 +388,7 @@ public TemplateProfile prepare(boolean isIso, long userId, String name, String d if (hypervisorType.equals(Hypervisor.HypervisorType.XenServer)) { if (details == null || !details.containsKey("hypervisortoolsversion") || details.get("hypervisortoolsversion") == null || ((String)details.get("hypervisortoolsversion")).equalsIgnoreCase("none")) { - String hpvs = _configDao.getValue(Config.XenServerPVdriverVersion.key()); + String hpvs = ManagementServer.XenServerPVdriverVersion.value(); if (hpvs != null) { if (details == null) { details = new HashMap(); diff --git a/server/src/main/java/com/cloud/user/AccountManagerImpl.java b/server/src/main/java/com/cloud/user/AccountManagerImpl.java index 9142af6bdb76..1e9aedae5de2 100644 --- a/server/src/main/java/com/cloud/user/AccountManagerImpl.java +++ b/server/src/main/java/com/cloud/user/AccountManagerImpl.java @@ -132,7 +132,6 @@ import com.cloud.api.ApiDBUtils; import com.cloud.api.auth.SetupUserTwoFactorAuthenticationCmd; import com.cloud.api.query.vo.ControlledViewEntity; -import com.cloud.configuration.Config; import com.cloud.configuration.ConfigurationManager; import com.cloud.configuration.Resource.ResourceOwnerType; import com.cloud.configuration.ResourceCountVO; @@ -199,6 +198,7 @@ import com.cloud.projects.dao.ProjectAccountDao; import com.cloud.projects.dao.ProjectDao; import com.cloud.region.ha.GlobalLoadBalancingRulesService; +import com.cloud.server.ManagementServer; import com.cloud.storage.VMTemplateVO; import com.cloud.storage.VolumeApiService; import com.cloud.storage.VolumeVO; @@ -3499,7 +3499,7 @@ public void deleteApiKey(ApiKeyPair keyPair) { } if ((BaremetalUtils.BAREMETAL_SYSTEM_ACCOUNT_NAME.equals(user.getUsername()) || user.getId() == User.UID_SYSTEM) - && Boolean.parseBoolean(_configDao.getValue(Config.BaremetalProvisionDoneNotificationEnabled.key()))) { + && ManagementServer.BaremetalProvisionDoneNotificationEnabled.value()) { throw new PermissionDeniedException(String.format("User ID [%s] is a system account and the global setting " + "baremetal.provision.done.notification is enabled. Therefore, it is not possible to delete API key pairs. If you wish to delete " + "the baremetal user/account or their API Key, please disable the baremetal.provision.done.notification configuration.", user.getUuid())); diff --git a/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java b/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java index f4efdba9e696..41833871a14d 100644 --- a/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java +++ b/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java @@ -215,7 +215,6 @@ import com.cloud.api.query.vo.ServiceOfferingJoinVO; import com.cloud.capacity.Capacity; import com.cloud.capacity.CapacityManager; -import com.cloud.configuration.Config; import com.cloud.configuration.ConfigurationManager; import com.cloud.configuration.ConfigurationManagerImpl; import com.cloud.configuration.Resource.ResourceType; @@ -330,6 +329,7 @@ import com.cloud.resourcelimit.CheckedReservation; import com.cloud.serializer.GsonHelper; import com.cloud.resourcelimit.ReservationHelper; +import com.cloud.server.ManagementServer; import com.cloud.server.ManagementService; import com.cloud.server.ResourceTag; import com.cloud.service.ServiceOfferingVO; @@ -5288,8 +5288,7 @@ private void updateVMDiskController(UserVmVO vm, Map customParam // Don't override if VM already has root/data disk controller detail if (vm.getDetail(VmDetailConstants.ROOT_DISK_CONTROLLER) == null) { - String vmwareRootDiskControllerTypeFromSetting = StringUtils.defaultIfEmpty(_configDao.getValue(Config.VmwareRootDiskControllerType.key()), - Config.VmwareRootDiskControllerType.getDefaultValue()); + String vmwareRootDiskControllerTypeFromSetting = ManagementServer.VmwareRootDiskControllerType.value(); vm.setDetail(VmDetailConstants.ROOT_DISK_CONTROLLER, vmwareRootDiskControllerTypeFromSetting); } @@ -5646,7 +5645,7 @@ private void addUserVMCmdlineArgs(Long vmId, VirtualMachineProfile profile, Depl } if (nic.getTrafficType() == TrafficType.Management) { - String mgmt_cidr = _configDao.getValue(Config.ManagementNetwork.key()); + String mgmt_cidr = ManagementServer.ManagementNetwork.value(); if (NetUtils.isValidIp4Cidr(mgmt_cidr)) { buf.append(" mgmtcidr=").append(mgmt_cidr); } diff --git a/server/src/main/java/org/apache/cloudstack/region/gslb/GlobalLoadBalancingRulesServiceImpl.java b/server/src/main/java/org/apache/cloudstack/region/gslb/GlobalLoadBalancingRulesServiceImpl.java index 926ac72e6b07..c4e09c743487 100644 --- a/server/src/main/java/org/apache/cloudstack/region/gslb/GlobalLoadBalancingRulesServiceImpl.java +++ b/server/src/main/java/org/apache/cloudstack/region/gslb/GlobalLoadBalancingRulesServiceImpl.java @@ -43,7 +43,6 @@ import com.cloud.agent.AgentManager; import com.cloud.agent.api.routing.GlobalLoadBalancerConfigCommand; import com.cloud.agent.api.routing.SiteLoadBalancerConfig; -import com.cloud.configuration.Config; import com.cloud.event.ActionEvent; import com.cloud.event.EventTypes; import com.cloud.event.UsageEventUtils; @@ -59,6 +58,7 @@ import com.cloud.network.rules.RulesManager; import com.cloud.region.ha.GlobalLoadBalancerRule; import com.cloud.region.ha.GlobalLoadBalancingRulesService; +import com.cloud.server.ManagementServer; import com.cloud.user.Account; import com.cloud.user.AccountManager; import com.cloud.utils.Pair; @@ -144,7 +144,7 @@ public GlobalLoadBalancerRule createGlobalLoadBalancerRule(CreateGlobalLoadBalan throw new InvalidParameterValueException("Invalid region ID: " + regionId); } - String providerDnsName = _globalConfigDao.getValue(Config.CloudDnsName.key()); + String providerDnsName = ManagementServer.CloudDnsName.value(); if (!region.checkIfServiceEnabled(Region.Service.Gslb) || (providerDnsName == null)) { throw new CloudRuntimeException("GSLB service is not enabled in region : " + region.getName()); } @@ -626,7 +626,7 @@ private boolean applyGlobalLoadBalancerRuleConfig(long gslbRuleId, boolean revok // each Gslb rule will have a FQDN, formed from the domain name associated with the gslb rule // and the deployment DNS name configured in global config parameter 'cloud.dns.name' String domainName = gslbRule.getGslbDomain(); - String providerDnsName = _globalConfigDao.getValue(Config.CloudDnsName.key()); + String providerDnsName = ManagementServer.CloudDnsName.value(); String gslbFqdn = domainName + "." + providerDnsName; GlobalLoadBalancerConfigCommand gslbConfigCmd = new GlobalLoadBalancerConfigCommand(gslbFqdn, lbMethod, persistenceMethod, serviceType, gslbRuleId, revoke); diff --git a/server/src/test/java/com/cloud/configuration/ConfigurationManagerTest.java b/server/src/test/java/com/cloud/configuration/ConfigurationManagerTest.java index 8873d58de605..d36d36b0560c 100644 --- a/server/src/test/java/com/cloud/configuration/ConfigurationManagerTest.java +++ b/server/src/test/java/com/cloud/configuration/ConfigurationManagerTest.java @@ -61,6 +61,7 @@ import com.cloud.network.dao.PhysicalNetworkVO; import com.cloud.offering.DiskOffering; import com.cloud.projects.ProjectManager; +import com.cloud.server.ManagementServer; import com.cloud.storage.DiskOfferingVO; import com.cloud.storage.StoragePoolTagVO; import com.cloud.storage.VolumeVO; @@ -1425,7 +1426,7 @@ public void testEdgeZoneCreatePod() { Mockito.when(zone.getType()).thenReturn(DataCenter.Type.Edge); Mockito.when(zone.getId()).thenReturn(1L); Mockito.when(_zoneDao.findById(Mockito.anyLong())).thenReturn(zone); - Mockito.when(_configDao.getValue(Config.ControlCidr.key())).thenReturn(Config.ControlCidr.getDefaultValue()); + Mockito.when(_configDao.getValue(ManagementServer.ControlCidr.key())).thenReturn(ManagementServer.ControlCidr.defaultValue()); Mockito.when(_podDao.persist(Mockito.any(HostPodVO.class))).thenAnswer((Answer) invocation -> { HostPodVO pod = (HostPodVO)invocation.getArguments()[0]; ReflectionTestUtils.setField(pod, "uuid", UUID.randomUUID().toString()); diff --git a/services/secondary-storage/controller/src/main/java/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java b/services/secondary-storage/controller/src/main/java/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java index 61f1ab4fe735..4dce075c89da 100644 --- a/services/secondary-storage/controller/src/main/java/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java +++ b/services/secondary-storage/controller/src/main/java/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java @@ -74,7 +74,6 @@ import com.cloud.agent.manager.Commands; import com.cloud.capacity.dao.CapacityDao; import com.cloud.cluster.ClusterManager; -import com.cloud.configuration.Config; import com.cloud.configuration.ConfigurationManagerImpl; import com.cloud.configuration.ZoneConfig; import com.cloud.consoleproxy.ConsoleProxyManager; @@ -1200,7 +1199,7 @@ public boolean finalizeVirtualMachineProfile(VirtualMachineProfile profile, Depl buf.append(" gateway=").append(nic.getIPv4Gateway()); } if (nic.getTrafficType() == TrafficType.Management) { - String mgmt_cidr = _configDao.getValue(Config.ManagementNetwork.key()); + String mgmt_cidr = ManagementServer.ManagementNetwork.value(); if (NetUtils.isValidCidrList(mgmt_cidr)) { logger.debug("Management server cidr list is " + mgmt_cidr); buf.append(" mgmtcidr=").append(mgmt_cidr); From 4e4d12043da04a2a118d01cbf3bacfb2f4da078e Mon Sep 17 00:00:00 2001 From: Daan Hoogland Date: Fri, 23 Oct 2026 11:57:09 +0200 Subject: [PATCH 2/2] update ResourceManagerImplTest and ManagementServerImplTest for ConfigKeys Co-Authored-By: Claude Opus 5.5 --- .../resource/ResourceManagerImplTest.java | 8 +++-- .../server/ManagementServerImplTest.java | 31 +++++++++++++++++++ 2 files changed, 36 insertions(+), 3 deletions(-) diff --git a/server/src/test/java/com/cloud/resource/ResourceManagerImplTest.java b/server/src/test/java/com/cloud/resource/ResourceManagerImplTest.java index b9da7390566c..98ff7625345f 100644 --- a/server/src/test/java/com/cloud/resource/ResourceManagerImplTest.java +++ b/server/src/test/java/com/cloud/resource/ResourceManagerImplTest.java @@ -36,6 +36,7 @@ import com.cloud.host.Status; import com.cloud.host.dao.HostDao; import com.cloud.hypervisor.Hypervisor; +import com.cloud.server.ManagementServer; import com.cloud.storage.ScopeType; import com.cloud.storage.StorageManager; import com.cloud.storage.StoragePoolHostVO; @@ -198,7 +199,7 @@ public void setup() throws Exception { when(hostDao.findById(hostId)).thenReturn(host); when(host.getDetail("username")).thenReturn(hostUsername); when(host.getDetail("password")).thenReturn(hostPassword); - when(configurationDao.getValue("ssh.privatekey")).thenReturn(hostPrivateKey); + overrideDefaultConfigValue(ManagementServer.SshPrivateKey, "_value", hostPrivateKey); when(host.getStatus()).thenReturn(Status.Up); when(host.getPrivateIpAddress()).thenReturn(hostPrivateIp); when(vm1.getId()).thenReturn(vm1Id); @@ -242,6 +243,7 @@ public void setup() throws Exception { @After public void tearDown() throws Exception { + overrideDefaultConfigValue(ManagementServer.SshPrivateKey, "_value", null); sshHelperMocked.close(); actionEventUtilsMocked.close(); getVncPortCommandMockedConstruction.close(); @@ -380,9 +382,9 @@ public void testConfigureVncAccessForKVMHostFailedMigrations() { } @Test(expected = CloudRuntimeException.class) - public void testGetHostCredentialsMissingParameter() { + public void testGetHostCredentialsMissingParameter() throws Exception { when(host.getDetail("password")).thenReturn(null); - when(configurationDao.getValue("ssh.privatekey")).thenReturn(null); + overrideDefaultConfigValue(ManagementServer.SshPrivateKey, "_value", null); resourceManager.getHostCredentials(host); } diff --git a/server/src/test/java/com/cloud/server/ManagementServerImplTest.java b/server/src/test/java/com/cloud/server/ManagementServerImplTest.java index d2c12b6c99dd..e1cd21f87d14 100644 --- a/server/src/test/java/com/cloud/server/ManagementServerImplTest.java +++ b/server/src/test/java/com/cloud/server/ManagementServerImplTest.java @@ -42,8 +42,11 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; import org.apache.cloudstack.annotation.dao.AnnotationDao; import org.apache.cloudstack.affinity.dao.AffinityGroupVMMapDao; @@ -2493,4 +2496,32 @@ public void createDeploymentPlanForMigrationListingTestAllocatesInSourceClusterW Assert.assertEquals(5L, (long) deploymentPlan.getPodId()); Assert.assertEquals(4L, (long) deploymentPlan.getClusterId()); } + + @Test + public void configureSchedulesAlertPurgeTaskWhenAlertPurgeDelayIsNonZero() throws Exception { + when(configDao.getConfiguration()).thenReturn(new HashMap<>()); + overrideDefaultConfigValue(spy.AlertPurgeInterval, "_defaultValue", "10"); + overrideDefaultConfigValue(spy.AlertPurgeDelay, "_defaultValue", "5"); + ScheduledExecutorService alertExecutor = mock(ScheduledExecutorService.class); + ReflectionTestUtils.setField(spy, "_alertExecutor", alertExecutor); + + spy.configure("management-server", new HashMap<>()); + + Mockito.verify(alertExecutor).scheduleAtFixedRate(any(Runnable.class), Mockito.eq(10L), Mockito.eq(10L), Mockito.eq(TimeUnit.SECONDS)); + Assert.assertEquals(5, ReflectionTestUtils.getField(spy, "_alertPurgeDelay")); + } + + @Test + public void configureDoesNotScheduleAlertPurgeTaskWhenAlertPurgeDelayIsZero() throws Exception { + when(configDao.getConfiguration()).thenReturn(new HashMap<>()); + overrideDefaultConfigValue(spy.AlertPurgeInterval, "_defaultValue", "10"); + overrideDefaultConfigValue(spy.AlertPurgeDelay, "_defaultValue", "0"); + ScheduledExecutorService alertExecutor = mock(ScheduledExecutorService.class); + ReflectionTestUtils.setField(spy, "_alertExecutor", alertExecutor); + + spy.configure("management-server", new HashMap<>()); + + Mockito.verifyNoInteractions(alertExecutor); + Assert.assertEquals(0, ReflectionTestUtils.getField(spy, "_alertPurgeDelay")); + } }