This is an automated email from the ASF dual-hosted git repository.

DaanHoogland pushed a commit to branch ghi10752-config-core-5
in repository https://gitbox.apache.org/repos/asf/cloudstack.git

commit 49c350ed6d31da6a782d327950446d818ce2c618
Author: Daan Hoogland <[email protected]>
AuthorDate: Thu Oct 22 11:35:48 2026 +0200

    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 <[email protected]>
---
 .../java/com/cloud/host/dao/HostTagsDaoImpl.java   | 11 ++++---
 .../cloud/storage/dao/StoragePoolTagsDaoImpl.java  | 16 ++++------
 .../storage/datastore/db/ObjectStoreDaoImpl.java   | 14 ++++-----
 .../storage/dao/StoragePoolTagsDaoImplTest.java    | 18 +++++++----
 .../cloudstack/ca/provider/RootCAProvider.java     |  4 +--
 .../baremetal/manager/BareMetalDiscoverer.java     |  8 ++---
 .../networkservice/BareMetalResourceBase.java      | 10 +++----
 .../BaremetalKickStartServiceImpl.java             |  4 +--
 .../hyperv/discoverer/HypervServerDiscoverer.java  |  5 ++--
 .../hypervisor/vmware/VmwareServerDiscoverer.java  | 11 +++----
 .../vmware/manager/VmwareManagerImpl.java          | 35 +++++++---------------
 .../network/element/CiscoNexusVSMElement.java      |  4 +--
 .../xenserver/discoverer/XcpServerDiscoverer.java  | 18 +++++------
 .../network/lb/ElasticLoadBalancerManagerImpl.java |  9 +++---
 .../lb/InternalLoadBalancerVMManagerImpl.java      |  7 ++---
 .../datastore/driver/S3ImageStoreDriverImpl.java   |  6 ++--
 server/src/main/java/com/cloud/api/ApiDBUtils.java |  3 +-
 .../cloud/api/query/dao/AccountJoinDaoImpl.java    |  7 ++---
 .../api/query/dao/AffinityGroupJoinDaoImpl.java    |  7 ++---
 .../api/query/dao/DiskOfferingJoinDaoImpl.java     |  7 ++---
 .../com/cloud/api/query/dao/DomainJoinDaoImpl.java |  7 ++---
 .../api/query/dao/DomainRouterJoinDaoImpl.java     |  7 ++---
 .../com/cloud/api/query/dao/HostJoinDaoImpl.java   |  7 ++---
 .../cloud/api/query/dao/ImageStoreJoinDaoImpl.java |  7 ++---
 .../cloud/api/query/dao/ProjectJoinDaoImpl.java    |  8 ++---
 .../api/query/dao/ResourceTagJoinDaoImpl.java      |  7 ++---
 .../api/query/dao/SecurityGroupJoinDaoImpl.java    |  7 ++---
 .../api/query/dao/ServiceOfferingJoinDaoImpl.java  |  7 ++---
 .../cloud/api/query/dao/SnapshotJoinDaoImpl.java   |  7 ++---
 .../api/query/dao/StoragePoolJoinDaoImpl.java      |  7 ++---
 .../com/cloud/api/query/dao/UserVmJoinDaoImpl.java |  7 ++---
 .../com/cloud/api/query/dao/VolumeJoinDaoImpl.java |  7 ++---
 .../configuration/ConfigurationManagerImpl.java    | 10 +++----
 .../consoleproxy/ConsoleProxyManagerImpl.java      |  3 +-
 .../kvm/discoverer/LibvirtServerDiscoverer.java    |  5 ++--
 .../com/cloud/network/guru/ControlNetworkGuru.java |  6 ++--
 .../cloud/network/router/CommandSetupHelper.java   |  7 ++---
 .../router/VirtualNetworkApplianceManagerImpl.java |  7 ++---
 .../com/cloud/resource/ResourceManagerImpl.java    |  6 ++--
 .../com/cloud/server/ConfigurationServerImpl.java  | 13 ++++----
 .../com/cloud/server/ManagementServerImpl.java     |  7 ++---
 .../com/cloud/template/TemplateAdapterBase.java    |  4 +--
 .../java/com/cloud/user/AccountManagerImpl.java    |  4 +--
 .../main/java/com/cloud/vm/UserVmManagerImpl.java  |  7 ++---
 .../gslb/GlobalLoadBalancingRulesServiceImpl.java  |  6 ++--
 .../configuration/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 0e554987a06..3c9a2e874b0 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 java.util.List;
 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<HostTagVO, Long> implements
     private final SearchBuilder<HostTagVO> ImplicitTagsSearch;
     private final GenericSearchBuilder<HostTagVO, String> 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<Integer> 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 class HostTagsDaoImpl extends 
GenericDaoBase<HostTagVO, Long> implements
 
     @Override
     public List<HostTagVO> 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<HostTagVO> 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 c4d7ed88607..bc0309365e9 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.ArrayList;
 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 @@ import com.cloud.utils.db.TransactionStatus;
 
 public class StoragePoolTagsDaoImpl extends GenericDaoBase<StoragePoolTagVO, 
Long> 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<Integer> DetailBatchQuerySize = new 
ConfigKey<>("Advanced", Integer.class, "detail.batch.query.size", "2000",
+            "Default entity detail batch query size for listing", true);
 
     protected final SearchBuilder<StoragePoolTagVO> StoragePoolSearch;
     private final SearchBuilder<StoragePoolTagVO> 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 @@ public class StoragePoolTagsDaoImpl extends 
GenericDaoBase<StoragePoolTagVO, 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 891ac0996ac..de90c735d9e 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.TransactionCallback;
 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 @@ import java.util.Map;
 
 @Component
 public class ObjectStoreDaoImpl extends GenericDaoBase<ObjectStoreVO, Long> 
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<Integer> DetailBatchQuerySize = new 
ConfigKey<>("Advanced", Integer.class, "detail.batch.query.size", "2000",
+            "Default entity detail batch query size for listing", true);
     private SearchBuilder<ObjectStoreVO> nameSearch;
     private SearchBuilder<ObjectStoreVO> providerSearch;
-    @Inject
-    private ConfigurationDao _configDao;
     private final SearchBuilder<ObjectStoreVO> osSearch;
 
     private SearchBuilder<ObjectStoreVO> urlSearch;
@@ -100,11 +100,7 @@ public class ObjectStoreDaoImpl extends 
GenericDaoBase<ObjectStoreVO, Long> impl
     @Override
     public List<ObjectStoreVO> 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<ObjectStoreVO> 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 85fe0e09542..3b77e610300 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 @@ import junit.framework.TestCase;
 public class StoragePoolTagsDaoImplTest extends TestCase {
 
     @Mock
-    ConfigurationDao _configDao;
+    ConfigDepotImpl configDepot;
     @Mock
     SearchBuilder<StoragePoolTagVO> 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 class StoragePoolTagsDaoImplTest extends TestCase {
 
     @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 class StoragePoolTagsDaoImplTest extends TestCase {
 
     @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 afb4f561160..798d6ea8c15 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.PemObject;
 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 @@ public final class RootCAProvider extends AdapterBase 
implements CAProvider, Con
     }
 
     protected void addConfiguredManagementIp(List<String> 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<NetworkInterface> 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 f12d701d2e2..55ad3568f5f 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 org.apache.cloudstack.api.ApiConstants;
 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.DiscovererBase;
 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 class BareMetalDiscoverer extends DiscovererBase 
implements Discoverer, R
             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 class BareMetalDiscoverer extends DiscovererBase 
implements Discoverer, R
             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 007640e8aad..f4df8cabefc 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.IpmISetBootDevCommand.BootDev;
 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 class BareMetalResourceBase extends ManagerBase 
implements ServerResource
 
         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 6e1f422526d..3c170ac77a4 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;
 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 @@ public class BaremetalKickStartServiceImpl extends 
BareMetalPxeServiceBase imple
             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 a5fe1442e56..d4db87a9097 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 java.util.Random;
 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.SetupCommand;
 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.DiscovererBase;
 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 class HypervServerDiscoverer extends DiscovererBase 
implements Discoverer
 
             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 9391e095625..d00aa85a45f 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 org.apache.cloudstack.api.ApiConstants;
 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.DiscovererBase;
 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 class VmwareServerDiscoverer extends DiscovererBase 
implements Discoverer
                 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 @@ public class VmwareServerDiscoverer extends DiscovererBase 
implements Discoverer
     }
 
     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 8be9e686364..0355d8095af 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.agent.api.to.StorageFilerTO;
 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;
 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.exception.CloudRuntimeException;
 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 class VmwareManagerImpl extends ManagerBase 
implements VmwareManager, Vmw
 
         _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 193270cc156..d5b1878c57d 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.DisableCiscoNexusVSMCmd;
 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.PhysicalNetworkServiceProvider;
 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 class CiscoNexusVSMElement extends 
CiscoNexusVSMDeviceManagerImpl impleme
 
         } 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 9381d9f88a1..9d0b819995d 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.SetupCommand;
 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.DiscovererBase;
 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 @@ public class XcpServerDiscoverer extends DiscovererBase 
implements Discoverer, L
                 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 @@ public class XcpServerDiscoverer extends DiscovererBase 
implements Discoverer, L
     }
 
     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 37d04d2270d..7577a07eb0c 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.LoadBalancerConfigCommand;
 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 class ElasticLoadBalancerManagerImpl extends 
ManagerBase implements Elast
         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<ServiceOfferingVO> 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 0efe46432d9..162a8c35858 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.LoadBalancerConfigCommand;
 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 class InternalLoadBalancerVMManagerImpl extends 
ManagerBase implements In
         }
 
         _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 e24eb8a31fc..8553ba5faa5 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 
org.apache.cloudstack.storage.image.store.ImageStoreImpl;
 
 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 class S3ImageStoreDriverImpl extends 
BaseImageStoreDriverImpl {
                         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 class S3ImageStoreDriverImpl extends 
BaseImageStoreDriverImpl {
 
     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 4ee96a2cdb5..74aac293b68 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.CapacityManager;
 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 class ApiDBUtils {
     }
 
     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 de66b80ca55..7a1298b6a83 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.AccountJoinVO;
 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 @@ public class AccountJoinDaoImpl extends 
GenericDaoBase<AccountJoinVO, Long> impl
     @Override
     public List<AccountJoinVO> 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<AccountJoinVO> 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 a5fd2bf11f1..62dcb299a12 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 
org.apache.cloudstack.dedicated.DedicatedResourceResponse;
 
 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 class AffinityGroupJoinDaoImpl extends 
GenericDaoBase<AffinityGroupJoinVO
     @Override
     public List<AffinityGroupJoinVO> 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<AffinityGroupJoinVO> uvList = new 
ArrayList<AffinityGroupJoinVO>();
         // 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 e53f94fa0c3..afea70b3660 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.VsphereStoragePolicyVO;
 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 class DiskOfferingJoinDaoImpl extends 
GenericDaoBase<DiskOfferingJoinVO,
         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<DiskOfferingJoinVO> 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 b6a3370e6bc..d0f0ecf23d0 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.api.query.vo.DomainJoinVO;
 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 @@ public class DomainJoinDaoImpl extends 
GenericDaoBase<DomainJoinVO, Long> implem
     @Override
     public List<DomainJoinVO> 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<DomainJoinVO> 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 9bc409d455e..2c3b51d491f 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.host.ControlState;
 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 class DomainRouterJoinDaoImpl extends 
GenericDaoBase<DomainRouterJoinVO,
     @Override
     public List<DomainRouterJoinVO> 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<DomainRouterJoinVO> uvList = new ArrayList<DomainRouterJoinVO>();
         // 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 2e4025ca001..e94e5fbd822 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.HostStats;
 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 class HostJoinDaoImpl extends 
GenericDaoBase<HostJoinVO, Long> implements
     @Override
     public List<HostJoinVO> 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<HostJoinVO> uvList = new ArrayList<HostJoinVO>();
         // 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 9a0c271fdb4..a8df16e77df 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 java.util.List;
 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 class ImageStoreJoinDaoImpl extends 
GenericDaoBase<ImageStoreJoinVO, Long
     @Override
     public List<ImageStoreJoinVO> 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<ImageStoreJoinVO> uvList = new ArrayList<ImageStoreJoinVO>();
         // 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 d1aebb59108..e57b756202f 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.List;
 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.Project;
 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 class ProjectJoinDaoImpl extends 
GenericDaoBase<ProjectJoinVO, Long> impl
     @Override
     public List<ProjectJoinVO> 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<ProjectJoinVO> uvList = new ArrayList<ProjectJoinVO>();
         // 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 be3d59f8645..03b02cc7262 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 
org.apache.cloudstack.framework.config.dao.ConfigurationDao;
 
 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 class ResourceTagJoinDaoImpl extends 
GenericDaoBase<ResourceTagJoinVO, Lo
     @Override
     public List<ResourceTagJoinVO> 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<ResourceTagJoinVO> uvList = new ArrayList<ResourceTagJoinVO>();
         // 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 72a7e8a3d39..1d56733f5f8 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.SecurityGroup;
 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 class SecurityGroupJoinDaoImpl extends 
GenericDaoBase<SecurityGroupJoinVO
     @Override
     public List<SecurityGroupJoinVO> 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<SecurityGroupJoinVO> uvList = new 
ArrayList<SecurityGroupJoinVO>();
         // 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 579425a68c1..75c6f479071 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.api.query.vo.ServiceOfferingJoinVO;
 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 class ServiceOfferingJoinDaoImpl extends 
GenericDaoBase<ServiceOfferingJo
         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<ServiceOfferingJoinVO> 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 0b0d9b269f3..85195a49add 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 javax.inject.Inject;
 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 class SnapshotJoinDaoImpl extends 
GenericDaoBaseWithTagInformation<Snapsh
     @Override
     public List<SnapshotJoinVO> 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<SnapshotJoinVO> 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 946e3df4e90..c866fe7298a 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.List;
 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 class StoragePoolJoinDaoImpl extends 
GenericDaoBase<StoragePoolJoinVO, Lo
     @Override
     public List<StoragePoolJoinVO> 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<StoragePoolJoinVO> uvList = new ArrayList<StoragePoolJoinVO>();
         // 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 ebc2326a72d..7f9a9d2311f 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.host.dao.HostDetailsDao;
 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 class UserVmJoinDaoImpl extends 
GenericDaoBaseWithTagInformation<UserVmJo
     @Override
     public List<UserVmJoinVO> 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<UserVmJoinVO> uvList = new ArrayList<UserVmJoinVO>();
         // 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 e82ec525f01..40074a489df 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.Collections;
 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 class VolumeJoinDaoImpl extends 
GenericDaoBaseWithTagInformation<VolumeJo
     @Override
     public List<VolumeJoinVO> 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<VolumeJoinVO> uvList = new ArrayList<VolumeJoinVO>();
         // 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 4a5bc4494b8..6227f15bac5 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 class ConfigurationManagerImpl extends ManagerBase 
implements Configurati
 
         // 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 class ConfigurationManagerImpl extends ManagerBase 
implements Configurati
 
         _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 @@ public class ConfigurationManagerImpl extends ManagerBase 
implements Configurati
      * 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 class ConfigurationManagerImpl extends ManagerBase 
implements Configurati
                 _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 68bfbe3d952..0d46c2d031b 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.check.CheckSshCommand;
 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 class ConsoleProxyManagerImpl extends ManagerBase 
implements ConsoleProxy
             }
 
             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 e7dd3dea60e..52fb2f53b78 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.Command;
 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 @@ public abstract class LibvirtServerDiscoverer extends 
DiscovererBase implements
 
             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 @@ public abstract class LibvirtServerDiscoverer extends 
DiscovererBase implements
             KvmDummyResourceBase kvmResource = new KvmDummyResourceBase();
             Map<String, Object> params = new HashMap<String, Object>();
 
-            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 9cec05446ac..21b67a47fdf 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 javax.naming.ConfigurationException;
 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.Mode;
 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 class ControlNetworkGuru extends 
PodBasedNetworkGuru implements NetworkGu
 
         Map<String, String> 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 ab88152c8f8..9b2b461cca3 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.NicTO;
 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.offering.NetworkOffering;
 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 class CommandSetupHelper {
                 setIpAddressNetworkParams(ip, network, router);
                 if (router.getHypervisorType() == 
Hypervisor.HypervisorType.VMware) {
                     Map<String, String> 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 389a1fcb0b2..1ffb9d51b4f 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.api.query.vo.UserVmJoinVO;
 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 @@ Configurable, StateListener<VirtualMachine.State, 
VirtualMachine.Event, VirtualM
                     // 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 @@ Configurable, StateListener<VirtualMachine.State, 
VirtualMachine.Event, VirtualM
             buf.append(" exposedns=true");
         }
 
-        if 
(Boolean.parseBoolean(_configDao.getValue(Config.BaremetalProvisionDoneNotificationEnabled.key())))
 {
+        if 
(ManagementServer.BaremetalProvisionDoneNotificationEnabled.value()) {
             final QueryBuilder<UserVO> 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 @@ Configurable, StateListener<VirtualMachine.State, 
VirtualMachine.Event, VirtualM
                 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 e241339bfd6..5a9d5694aa2 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.CapacityState;
 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.Cluster;
 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 class ResourceManagerImpl extends ManagerBase 
implements ResourceManager,
                         // 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 @@ public class ResourceManagerImpl extends ManagerBase 
implements ResourceManager,
         _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 053d2a7fdc6..15862e30e37 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 @@ public class ConfigurationServerImpl extends ManagerBase 
implements Configuratio
             @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 class ConfigurationServerImpl extends ManagerBase 
implements Configuratio
                                 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 class ConfigurationServerImpl extends ManagerBase 
implements Configuratio
                         _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 01d0ae4e6ee..0e15f242253 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.capacity.dao.CapacityDaoImpl.SummedCapacity;
 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 class ManagementServerImpl extends 
MutualExclusiveIdsManagerBase implemen
         }
 
         //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 @@ public class ManagementServerImpl extends 
MutualExclusiveIdsManagerBase implemen
     @Override
     public List<String> getHypervisors(final Long zoneId) {
         final List<String> 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 a98378d0d9f..6bdac912518 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.BooleanUtils;
 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.hypervisor.Hypervisor.HypervisorType;
 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 abstract class TemplateAdapterBase extends 
AdapterBase implements Templat
         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<String, String>();
diff --git a/server/src/main/java/com/cloud/user/AccountManagerImpl.java 
b/server/src/main/java/com/cloud/user/AccountManagerImpl.java
index 9142af6bdb7..1e9aedae5de 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 
org.springframework.beans.factory.NoSuchBeanDefinitionException;
 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.ProjectVO;
 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 class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
         }
 
         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 f4efdba9e69..41833871a14 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.dao.ServiceOfferingJoinDao;
 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.resource.ResourceState;
 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 @@ public class UserVmManagerImpl extends ManagerBase 
implements UserVmManager, Vir
 
             // 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 @@ public class UserVmManagerImpl extends ManagerBase 
implements UserVmManager, Vir
             }
 
             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 926ac72e6b0..c4e09c74348 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 org.apache.logging.log4j.LogManager;
 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.LoadBalancer;
 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 class GlobalLoadBalancingRulesServiceImpl implements 
GlobalLoadBalancingR
             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 @@ public class GlobalLoadBalancingRulesServiceImpl implements 
GlobalLoadBalancingR
         // 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 8873d58de60..d36d36b0560 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.PhysicalNetworkDao;
 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 class ConfigurationManagerTest {
         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<HostPodVO>)
 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 61f1ab4fe73..4dce075c89d 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.api.to.NfsTO;
 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 class SecondaryStorageManagerImpl extends 
ManagerBase implements Secondar
                 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);

Reply via email to