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

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

commit 2804221f3d81c084a6591479bc0c921a17511016
Author: Daan Hoogland <[email protected]>
AuthorDate: Fri Aug 14 12:55:31 2026 +0200

    move more network configuration items from deprecated Config enum to 
services
---
 .../main/java/com/cloud/network/NetworkModel.java  |  3 +++
 .../java/com/cloud/network/NetworkService.java     |  7 +++++++
 .../cloud/network/vpn/RemoteAccessVpnService.java  |  7 +++++++
 .../service/NetworkOrchestrationService.java       | 17 ++++++++++++++++
 .../network/security/SecurityGroupManager.java     | 19 ++++++++++++++++++
 .../engine/orchestration/NetworkOrchestrator.java  |  3 ++-
 .../network/lb/ElasticLoadBalancerManagerImpl.java |  8 ++++----
 .../lb/InternalLoadBalancerVMManagerImpl.java      |  8 ++++----
 .../network/tungsten/service/TungstenElement.java  | 13 +++++-------
 .../tungsten/service/TungstenServiceImpl.java      | 13 +++++-------
 .../tungsten/service/TungstenElementTest.java      | 20 +++++++++++--------
 .../tungsten/service/TungstenServiceImplTest.java  |  6 ------
 .../configuration/ConfigurationManagerImpl.java    |  5 +++--
 .../network/ExternalFirewallDeviceManagerImpl.java |  3 +--
 .../java/com/cloud/network/NetworkModelImpl.java   |  5 ++---
 .../java/com/cloud/network/NetworkServiceImpl.java |  8 ++++----
 .../com/cloud/network/guru/GuestNetworkGuru.java   |  5 ++---
 .../cloud/network/router/CommandSetupHelper.java   |  8 ++++----
 .../cloud/network/router/NetworkHelperImpl.java    |  3 +--
 .../router/VirtualNetworkApplianceManager.java     |  6 ++++++
 .../router/VirtualNetworkApplianceManagerImpl.java | 15 ++++++--------
 .../network/security/SecurityGroupManagerImpl.java | 23 +++++++++++++++-------
 .../security/SecurityGroupManagerImpl2.java        |  5 +----
 .../network/vpn/RemoteAccessVpnManagerImpl.java    |  8 +++-----
 24 files changed, 134 insertions(+), 84 deletions(-)

diff --git a/api/src/main/java/com/cloud/network/NetworkModel.java 
b/api/src/main/java/com/cloud/network/NetworkModel.java
index 7e1a07ebeb6..e5cf60af1d9 100644
--- a/api/src/main/java/com/cloud/network/NetworkModel.java
+++ b/api/src/main/java/com/cloud/network/NetworkModel.java
@@ -97,6 +97,9 @@ public interface NetworkModel {
     static final ConfigKey<Boolean> AdminIsAllowedToDeployAnywhere = new 
ConfigKey<>("Advanced",Boolean.class, "admin.is.allowed.to.deploy.anywhere", 
"false",
             "This will determine if the root admin is allowed to deploy in 
networks in subdomains.", true, ConfigKey.Scope.Global);
 
+    ConfigKey<Boolean> SecurityGroupDefaultAdding = new ConfigKey<>("Network", 
Boolean.class, "network.securitygroups.defaultadding", "true",
+            "If true, the user VM would be added to the default security group 
by default", true);
+
     /**
      * Lists IP addresses that belong to VirtualNetwork VLANs
      *
diff --git a/api/src/main/java/com/cloud/network/NetworkService.java 
b/api/src/main/java/com/cloud/network/NetworkService.java
index c32bb711c0f..6028aeed54c 100644
--- a/api/src/main/java/com/cloud/network/NetworkService.java
+++ b/api/src/main/java/com/cloud/network/NetworkService.java
@@ -84,6 +84,13 @@ public interface NetworkService {
             "allow.end.users.to.specify.vr.mtu", "false", "Allow end Users to 
specify VR MTU",
             true, ConfigKey.Scope.Zone);
 
+    ConfigKey<Integer> GuestVlanBits = new ConfigKey<>("Network", 
Integer.class, "guest.vlan.bits", "12",
+            "The number of bits to reserve for the VLAN identifier in the 
guest subnet.", true);
+
+    ConfigKey<Integer> MaxNumberOfSecondaryIPsPerNIC = new 
ConfigKey<>("Network", Integer.class,
+            "vm.network.nic.max.secondary.ipaddresses", "10",
+            "Specify the number of secondary ip addresses per nic per vm. 
Default value 10 is used, if not specified.", true);
+
     List<? extends Network> getIsolatedNetworksOwnedByAccountInZone(long 
zoneId, Account owner);
 
     IpAddress allocateIP(Account ipOwner, long zoneId, Long networkId, Boolean 
displayIp, String ipaddress) throws ResourceAllocationException, 
InsufficientAddressCapacityException,
diff --git 
a/api/src/main/java/com/cloud/network/vpn/RemoteAccessVpnService.java 
b/api/src/main/java/com/cloud/network/vpn/RemoteAccessVpnService.java
index ffa8af4576d..00bd4b3a512 100644
--- a/api/src/main/java/com/cloud/network/vpn/RemoteAccessVpnService.java
+++ b/api/src/main/java/com/cloud/network/vpn/RemoteAccessVpnService.java
@@ -20,6 +20,7 @@ import java.util.List;
 
 import org.apache.cloudstack.api.command.user.vpn.ListRemoteAccessVpnsCmd;
 import org.apache.cloudstack.api.command.user.vpn.ListVpnUsersCmd;
+import org.apache.cloudstack.framework.config.ConfigKey;
 
 import com.cloud.exception.NetworkRuleConflictException;
 import com.cloud.exception.ResourceUnavailableException;
@@ -31,6 +32,12 @@ import com.cloud.utils.Pair;
 public interface RemoteAccessVpnService {
     static final String RemoteAccessVpnClientIpRangeCK = 
"remote.access.vpn.client.iprange";
 
+    ConfigKey<Integer> RemoteAccessVpnPskLength = new ConfigKey<>("Network", 
Integer.class, "remote.access.vpn.psk.length", "24",
+            "The length of the ipsec preshared key (minimum 8, maximum 256)", 
true);
+
+    ConfigKey<Integer> RemoteAccessVpnUserLimit = new ConfigKey<>("Network", 
Integer.class, "remote.access.vpn.user.limit", "8",
+            "The maximum number of VPN users that can be created per account", 
true);
+
     RemoteAccessVpn createRemoteAccessVpn(long vpnServerAddressId, String 
ipRange, boolean openFirewall, Boolean forDisplay) throws 
NetworkRuleConflictException;
 
     boolean destroyRemoteAccessVpnForIp(long ipId, Account caller, boolean 
forceCleanup) throws ResourceUnavailableException;
diff --git 
a/engine/api/src/main/java/org/apache/cloudstack/engine/orchestration/service/NetworkOrchestrationService.java
 
b/engine/api/src/main/java/org/apache/cloudstack/engine/orchestration/service/NetworkOrchestrationService.java
index 109a44488ec..992f4adea83 100644
--- 
a/engine/api/src/main/java/org/apache/cloudstack/engine/orchestration/service/NetworkOrchestrationService.java
+++ 
b/engine/api/src/main/java/org/apache/cloudstack/engine/orchestration/service/NetworkOrchestrationService.java
@@ -138,6 +138,23 @@ public interface NetworkOrchestrationService {
     ConfigKey<Integer> VmNetworkThrottlingRate = new 
ConfigKey<Integer>("Network", Integer.class, "vm.network.throttling.rate", 
"200",
             "Default data transfer rate in megabits per second allowed in User 
vm's default network.", true, ConfigKey.Scope.Zone);
 
+    ConfigKey<String> NetworkLBHaproxyStatsVisbility = new 
ConfigKey<>("Network", String.class,
+            "network.loadbalancer.haproxy.stats.visibility", "global",
+            "Load Balancer(haproxy) stats visibility, the value can be one of 
the following six parameters : 
global,guest-network,link-local,disabled,all,default",
+            true, ConfigKey.Kind.Select, 
"global,guest-network,link-local,disabled,all,default");
+
+    ConfigKey<String> NetworkLBHaproxyStatsUri = new ConfigKey<>("Network", 
String.class,
+            "network.loadbalancer.haproxy.stats.uri", "/admin?stats",
+            "Load Balancer(haproxy) uri.", true);
+
+    ConfigKey<String> NetworkLBHaproxyStatsAuth = new ConfigKey<>("Secure", 
String.class,
+            "network.loadbalancer.haproxy.stats.auth", "admin1:AdMiN123",
+            "Load Balancer(haproxy) authentication string in the format 
username:password", true);
+
+    ConfigKey<String> NetworkLBHaproxyStatsPort = new ConfigKey<>("Network", 
String.class,
+            "network.loadbalancer.haproxy.stats.port", "8081",
+            "Load Balancer(haproxy) stats port number.", true);
+
     List<? extends Network> setupNetwork(Account owner, NetworkOffering 
offering, DeploymentPlan plan, String name, String displayText, boolean 
isDefault)
         throws ConcurrentOperationException;
 
diff --git 
a/engine/components-api/src/main/java/com/cloud/network/security/SecurityGroupManager.java
 
b/engine/components-api/src/main/java/com/cloud/network/security/SecurityGroupManager.java
index 6e2270ffb10..5167a396e2e 100644
--- 
a/engine/components-api/src/main/java/com/cloud/network/security/SecurityGroupManager.java
+++ 
b/engine/components-api/src/main/java/com/cloud/network/security/SecurityGroupManager.java
@@ -19,6 +19,8 @@ package com.cloud.network.security;
 import java.util.HashMap;
 import java.util.List;
 
+import org.apache.cloudstack.framework.config.ConfigKey;
+
 import com.cloud.uservm.UserVm;
 import com.cloud.utils.Pair;
 
@@ -33,6 +35,23 @@ public interface SecurityGroupManager {
     public static final int TIME_BETWEEN_CLEANUPS = 60;
     public static final int WORKER_THREAD_COUNT = 10;
 
+    ConfigKey<Integer> SecurityGroupWorkCleanupInterval = new 
ConfigKey<>("Network", Integer.class,
+            "network.securitygroups.work.cleanup.interval", "120",
+            "Time interval (seconds) in which finished work is cleaned up from 
the work table", true);
+
+    ConfigKey<Integer> SecurityGroupWorkerThreads = new ConfigKey<>("Network", 
Integer.class,
+            "network.securitygroups.workers.pool.size", "50",
+            "Number of worker threads processing the security group update 
work queue", true);
+
+    ConfigKey<Integer> SecurityGroupWorkGlobalLockTimeout = new 
ConfigKey<>("Network", Integer.class,
+            "network.securitygroups.work.lock.timeout", "300",
+            "Lock wait timeout (seconds) while updating the security group 
work queue", true);
+
+    ConfigKey<Integer> SecurityGroupWorkPerAgentMaxQueueSize = new 
ConfigKey<>("Network", Integer.class,
+            "network.securitygroups.work.per.agent.queue.size", "100",
+            "The number of outstanding security group work items that can be 
queued to a host. If exceeded, work items will get dropped to conserve memory. "
+                    + "Security Group Sync will take care of ensuring that the 
host gets updated eventually", true);
+
     public SecurityGroupVO createSecurityGroup(String name, String 
description, Long domainId, Long accountId, String accountName);
 
     public SecurityGroupVO createDefaultSecurityGroup(Long accountId);
diff --git 
a/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java
 
b/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java
index 84a397349ce..7295f46b05a 100644
--- 
a/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java
+++ 
b/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java
@@ -5069,6 +5069,7 @@ public class NetworkOrchestrator extends ManagerBase 
implements NetworkOrchestra
                 GuestDomainSuffix, NetworkThrottlingRate, 
VmNetworkThrottlingRate, MinVRVersion, DhcpLeaseTimeout,
                 PromiscuousMode, MacAddressChanges, ForgedTransmits, 
MacLearning, RollingRestartEnabled,
                 TUNGSTEN_ENABLED, NSX_ENABLED, NETRIS_ENABLED, 
NETWORK_LB_HAPROXY_MAX_CONN,
-                NETWORK_LB_HAPROXY_IDLE_TIMEOUT};
+                NETWORK_LB_HAPROXY_IDLE_TIMEOUT, 
NetworkLBHaproxyStatsVisbility, NetworkLBHaproxyStatsUri,
+                NetworkLBHaproxyStatsAuth, NetworkLBHaproxyStatsPort};
     }
 }
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 9dc083015c3..b1a5524b760 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
@@ -220,10 +220,10 @@ public class ElasticLoadBalancerManagerImpl extends 
ManagerBase implements Elast
         cmd.setAccessDetail(NetworkElementCommand.ROUTER_NAME, 
elbVm.getInstanceName());
         //FIXME: why are we setting attributes directly? Ick!! There should be 
accessors and
         //the constructor should set defaults.
-        cmd.lbStatsVisibility = 
_configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key());
-        cmd.lbStatsUri = 
_configDao.getValue(Config.NetworkLBHaproxyStatsUri.key());
-        cmd.lbStatsAuth = 
_configDao.getValue(Config.NetworkLBHaproxyStatsAuth.key());
-        cmd.lbStatsPort = 
_configDao.getValue(Config.NetworkLBHaproxyStatsPort.key());
+        cmd.lbStatsVisibility = 
NetworkOrchestrationService.NetworkLBHaproxyStatsVisbility.value();
+        cmd.lbStatsUri = 
NetworkOrchestrationService.NetworkLBHaproxyStatsUri.value();
+        cmd.lbStatsAuth = 
NetworkOrchestrationService.NetworkLBHaproxyStatsAuth.value();
+        cmd.lbStatsPort = 
NetworkOrchestrationService.NetworkLBHaproxyStatsPort.value();
 
         cmds.addCommand(cmd);
 
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 cda139b5a62..ab938837053 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
@@ -516,10 +516,10 @@ public class InternalLoadBalancerVMManagerImpl extends 
ManagerBase implements In
                         internalLbVm.getHypervisorType()), 
internalLbVm.getVpcId(), maxconn, offering.isKeepAliveEnabled(),
                         
NetworkOrchestrationService.NETWORK_LB_HAPROXY_IDLE_TIMEOUT.value());
 
-        cmd.lbStatsVisibility = 
_configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key());
-        cmd.lbStatsUri = 
_configDao.getValue(Config.NetworkLBHaproxyStatsUri.key());
-        cmd.lbStatsAuth = 
_configDao.getValue(Config.NetworkLBHaproxyStatsAuth.key());
-        cmd.lbStatsPort = 
_configDao.getValue(Config.NetworkLBHaproxyStatsPort.key());
+        cmd.lbStatsVisibility = 
NetworkOrchestrationService.NetworkLBHaproxyStatsVisbility.value();
+        cmd.lbStatsUri = 
NetworkOrchestrationService.NetworkLBHaproxyStatsUri.value();
+        cmd.lbStatsAuth = 
NetworkOrchestrationService.NetworkLBHaproxyStatsAuth.value();
+        cmd.lbStatsPort = 
NetworkOrchestrationService.NetworkLBHaproxyStatsPort.value();
 
         cmd.setAccessDetail(NetworkElementCommand.ROUTER_IP, 
getInternalLbControlIp(internalLbVm.getId()));
         cmd.setAccessDetail(NetworkElementCommand.ROUTER_GUEST_IP, 
guestNic.getIPv4Address());
diff --git 
a/plugins/network-elements/tungsten/src/main/java/org/apache/cloudstack/network/tungsten/service/TungstenElement.java
 
b/plugins/network-elements/tungsten/src/main/java/org/apache/cloudstack/network/tungsten/service/TungstenElement.java
index 1f4f98194dc..d4178af1540 100644
--- 
a/plugins/network-elements/tungsten/src/main/java/org/apache/cloudstack/network/tungsten/service/TungstenElement.java
+++ 
b/plugins/network-elements/tungsten/src/main/java/org/apache/cloudstack/network/tungsten/service/TungstenElement.java
@@ -25,7 +25,6 @@ import com.cloud.agent.api.Command;
 import com.cloud.agent.api.StartupCommand;
 import com.cloud.agent.api.to.LoadBalancerTO;
 import com.cloud.api.ApiDBUtils;
-import com.cloud.configuration.Config;
 import com.cloud.dc.DataCenter;
 import com.cloud.dc.DataCenterVO;
 import com.cloud.dc.HostPodVO;
@@ -105,7 +104,7 @@ import com.cloud.vm.VirtualMachineProfile;
 import com.cloud.vm.dao.NicDao;
 import com.cloud.vm.dao.VMInstanceDao;
 import com.google.gson.Gson;
-import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
+import 
org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
 import org.apache.cloudstack.framework.messagebus.MessageBus;
 import org.apache.cloudstack.framework.messagebus.PublishScope;
 import 
org.apache.cloudstack.network.tungsten.agent.api.ApplyTungstenNetworkPolicyCommand;
@@ -180,8 +179,6 @@ public class TungstenElement extends AdapterBase
     @Inject
     AgentManager agentMgr;
     @Inject
-    ConfigurationDao configDao;
-    @Inject
     VlanDao vlanDao;
     @Inject
     HostDao hostDao;
@@ -436,11 +433,11 @@ public class TungstenElement extends AdapterBase
 
         // update haproxy
         TungstenCommand updateTungstenLoadBalancerPoolCommand;
-        String lbStatsVisibility = 
configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key());
+        String lbStatsVisibility = 
NetworkOrchestrationService.NetworkLBHaproxyStatsVisbility.value();
         if (!lbStatsVisibility.equals("disabled")) {
-            String lbStatsUri = 
configDao.getValue(Config.NetworkLBHaproxyStatsUri.key());
-            String lbStatsAuth = 
configDao.getValue(Config.NetworkLBHaproxyStatsAuth.key());
-            String lbStatsPort = 
configDao.getValue(Config.NetworkLBHaproxyStatsPort.key());
+            String lbStatsUri = 
NetworkOrchestrationService.NetworkLBHaproxyStatsUri.value();
+            String lbStatsAuth = 
NetworkOrchestrationService.NetworkLBHaproxyStatsAuth.value();
+            String lbStatsPort = 
NetworkOrchestrationService.NetworkLBHaproxyStatsPort.value();
             updateTungstenLoadBalancerPoolCommand = new 
UpdateTungstenLoadBalancerPoolCommand(
                     tungstenProjectFqn, 
TungstenUtils.getLoadBalancerPoolName(loadBalancingRule.getId()),
                     
TungstenUtils.getLoadBalancerAlgorithm(loadBalancingRule.getAlgorithm()),
diff --git 
a/plugins/network-elements/tungsten/src/main/java/org/apache/cloudstack/network/tungsten/service/TungstenServiceImpl.java
 
b/plugins/network-elements/tungsten/src/main/java/org/apache/cloudstack/network/tungsten/service/TungstenServiceImpl.java
index 2a29b3976b0..6a74b2c6891 100644
--- 
a/plugins/network-elements/tungsten/src/main/java/org/apache/cloudstack/network/tungsten/service/TungstenServiceImpl.java
+++ 
b/plugins/network-elements/tungsten/src/main/java/org/apache/cloudstack/network/tungsten/service/TungstenServiceImpl.java
@@ -20,7 +20,6 @@ import com.cloud.agent.AgentManager;
 import com.cloud.agent.api.Answer;
 import com.cloud.agent.api.Command;
 import com.cloud.api.ApiDBUtils;
-import com.cloud.configuration.Config;
 import com.cloud.configuration.ConfigurationManager;
 import com.cloud.dc.DataCenter;
 import com.cloud.dc.DataCenterIpAddressVO;
@@ -118,7 +117,7 @@ import net.juniper.tungsten.api.types.VirtualNetwork;
 import org.apache.cloudstack.acl.ApiKeyPairVO;
 import org.apache.cloudstack.api.BaseResponse;
 import org.apache.cloudstack.context.CallContext;
-import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
+import 
org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
 import org.apache.cloudstack.framework.messagebus.MessageBus;
 import 
org.apache.cloudstack.network.tungsten.agent.api.AddTungstenNetworkGatewayToLogicalRouterCommand;
 import 
org.apache.cloudstack.network.tungsten.agent.api.AddTungstenNetworkSubnetCommand;
@@ -242,8 +241,6 @@ public class TungstenServiceImpl extends ManagerBase 
implements TungstenService
     @Inject
     protected NetworkDao networkDao;
     @Inject
-    protected ConfigurationDao configDao;
-    @Inject
     protected AccountManager accountMgr;
     @Inject
     protected IPAddressDao ipAddressDao;
@@ -1126,11 +1123,11 @@ public class TungstenServiceImpl extends ManagerBase 
implements TungstenService
 
     private boolean updateHaproxyStats(List<HostVO> hostList, String lbUuid) {
         // update haproxy stats
-        String lbStatsVisibility = 
configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key());
+        String lbStatsVisibility = 
NetworkOrchestrationService.NetworkLBHaproxyStatsVisbility.value();
         if (!lbStatsVisibility.equals("disabled")) {
-            String lbStatsUri = 
configDao.getValue(Config.NetworkLBHaproxyStatsUri.key());
-            String lbStatsAuth = 
configDao.getValue(Config.NetworkLBHaproxyStatsAuth.key());
-            String lbStatsPort = 
configDao.getValue(Config.NetworkLBHaproxyStatsPort.key());
+            String lbStatsUri = 
NetworkOrchestrationService.NetworkLBHaproxyStatsUri.value();
+            String lbStatsAuth = 
NetworkOrchestrationService.NetworkLBHaproxyStatsAuth.value();
+            String lbStatsPort = 
NetworkOrchestrationService.NetworkLBHaproxyStatsPort.value();
             UpdateTungstenLoadbalancerStatsCommand 
updateTungstenLoadbalancerStatsCommand =
                     new UpdateTungstenLoadbalancerStatsCommand(lbUuid, 
lbStatsPort, lbStatsUri, lbStatsAuth);
             for (HostVO host : hostList) {
diff --git 
a/plugins/network-elements/tungsten/src/test/java/org/apache/cloudstack/network/tungsten/service/TungstenElementTest.java
 
b/plugins/network-elements/tungsten/src/test/java/org/apache/cloudstack/network/tungsten/service/TungstenElementTest.java
index bad21464602..32ef1237be4 100644
--- 
a/plugins/network-elements/tungsten/src/test/java/org/apache/cloudstack/network/tungsten/service/TungstenElementTest.java
+++ 
b/plugins/network-elements/tungsten/src/test/java/org/apache/cloudstack/network/tungsten/service/TungstenElementTest.java
@@ -32,7 +32,6 @@ import static org.mockito.Mockito.when;
 
 import com.cloud.agent.AgentManager;
 import com.cloud.api.ApiDBUtils;
-import com.cloud.configuration.Config;
 import com.cloud.dc.DataCenterVO;
 import com.cloud.dc.HostPodVO;
 import com.cloud.dc.VlanVO;
@@ -91,7 +90,9 @@ import com.cloud.vm.VMInstanceVO;
 import com.cloud.vm.VirtualMachine;
 import com.cloud.vm.VirtualMachineProfile;
 import com.cloud.vm.dao.VMInstanceDao;
-import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
+import 
org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
+import org.apache.cloudstack.framework.config.ConfigKey;
+import org.apache.cloudstack.framework.config.impl.ConfigDepotImpl;
 import org.apache.cloudstack.framework.messagebus.MessageBus;
 import 
org.apache.cloudstack.network.tungsten.agent.api.ApplyTungstenNetworkPolicyCommand;
 import 
org.apache.cloudstack.network.tungsten.agent.api.ApplyTungstenPortForwardingCommand;
@@ -144,8 +145,6 @@ public class TungstenElementTest {
     @Mock
     IpAddressManager ipAddressMgr;
     @Mock
-    ConfigurationDao configDao;
-    @Mock
     LoadBalancerDao lbDao;
     @Mock
     AccountManager accountMgr;
@@ -199,7 +198,6 @@ public class TungstenElementTest {
         tungstenElement.lbVmMapDao = lbVmMapDao;
         tungstenElement.tungstenGuestNetworkIpAddressDao = 
tungstenGuestNetworkIpAddressDao;
         tungstenElement.ipAddressMgr = ipAddressMgr;
-        tungstenElement.configDao = configDao;
         tungstenElement.lbDao = lbDao;
         tungstenElement.accountMgr = accountMgr;
         tungstenElement.hostDao = hostDao;
@@ -383,7 +381,6 @@ public class TungstenElementTest {
         
when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkLoadbalancerCommand.class),
 anyLong())).thenReturn(createTungstenNetworkLoadbalancerAnswer);
         
when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerPoolCommand.class),
 anyLong())).thenReturn(updateTungstenLoadBalancerPoolAnswer);
         
when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerMemberCommand.class),
 anyLong())).thenReturn(updateTungstenLoadBalancerMemberAnswer);
-        
when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("enabled");
         when(tungstenService.updateLoadBalancer(any(), 
any())).thenReturn(true);
         when(EncryptionUtil.generateSignature(anyString(), 
anyString())).thenReturn("generatedString");
         
when(tungstenFabricLBHealthMonitorDao.findByLbId(anyLong())).thenReturn(tungstenFabricLBHealthMonitorVO);
@@ -432,11 +429,18 @@ public class TungstenElementTest {
         
when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkLoadbalancerCommand.class),
 anyLong())).thenReturn(createTungstenNetworkLoadbalancerAnswer);
         
when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerPoolCommand.class),
 anyLong())).thenReturn(updateTungstenLoadBalancerPoolAnswer);
         
when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerMemberCommand.class),
 anyLong())).thenReturn(updateTungstenLoadBalancerMemberAnswer);
-        
when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("disabled");
+        ConfigDepotImpl configDepotMock = Mockito.mock(ConfigDepotImpl.class);
+        ConfigKey.init(configDepotMock);
+        
Mockito.when(configDepotMock.getConfigStringValue(Mockito.eq(NetworkOrchestrationService.NetworkLBHaproxyStatsVisbility.key()),
 Mockito.any(), Mockito.any()))
+                .thenReturn("disabled");
         
when(tungstenFabricLBHealthMonitorDao.findByLbId(anyLong())).thenReturn(tungstenFabricLBHealthMonitorVO);
         
when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerHealthMonitorCommand.class),
 anyLong())).thenReturn(updateTungstenHealthMonitorAnswer);
 
-        assertFalse(tungstenElement.applyLBRules(network, 
loadBalancingRuleList1));
+        try {
+            assertFalse(tungstenElement.applyLBRules(network, 
loadBalancingRuleList1));
+        } finally {
+            ConfigKey.init(null);
+        }
     }
 
     @Test
diff --git 
a/plugins/network-elements/tungsten/src/test/java/org/apache/cloudstack/network/tungsten/service/TungstenServiceImplTest.java
 
b/plugins/network-elements/tungsten/src/test/java/org/apache/cloudstack/network/tungsten/service/TungstenServiceImplTest.java
index 38539d8b6c5..791f95b4415 100644
--- 
a/plugins/network-elements/tungsten/src/test/java/org/apache/cloudstack/network/tungsten/service/TungstenServiceImplTest.java
+++ 
b/plugins/network-elements/tungsten/src/test/java/org/apache/cloudstack/network/tungsten/service/TungstenServiceImplTest.java
@@ -30,7 +30,6 @@ import static org.mockito.Mockito.when;
 
 import com.cloud.agent.AgentManager;
 import com.cloud.agent.api.Answer;
-import com.cloud.configuration.Config;
 import com.cloud.configuration.ConfigurationManager;
 import com.cloud.dc.DataCenter;
 import com.cloud.dc.DataCenterIpAddressVO;
@@ -123,7 +122,6 @@ import net.juniper.tungsten.api.types.TagType;
 import net.juniper.tungsten.api.types.VirtualMachine;
 import net.juniper.tungsten.api.types.VirtualMachineInterface;
 import net.juniper.tungsten.api.types.VirtualNetwork;
-import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
 import org.apache.cloudstack.framework.messagebus.MessageBus;
 import org.apache.cloudstack.framework.messagebus.MessageSubscriber;
 import 
org.apache.cloudstack.network.tungsten.agent.api.AddTungstenNetworkGatewayToLogicalRouterCommand;
@@ -228,8 +226,6 @@ public class TungstenServiceImplTest {
     @Mock
     NetworkDao networkDao;
     @Mock
-    ConfigurationDao configDao;
-    @Mock
     IPAddressDao ipAddressDao;
     @Mock
     EntityManager entityMgr;
@@ -293,7 +289,6 @@ public class TungstenServiceImplTest {
         tungstenService.networkDetailsDao = networkDetailsDao;
         tungstenService.agentMgr = agentMgr;
         tungstenService.hostDao = hostDao;
-        tungstenService.configDao = configDao;
         tungstenService.fwRulesDao = fwRulesDao;
         tungstenService.lbCertMapDao = lbCertMapDao;
         tungstenService.entityMgr = entityMgr;
@@ -665,7 +660,6 @@ public class TungstenServiceImplTest {
         when(agentMgr.easySend(anyLong(), 
any(UpdateTungstenLoadbalancerSslCommand.class))).thenReturn(updateTungstenLoadbalancerSslAnswer);
         
when(updateTungstenLoadbalancerStatsAnswer.getResult()).thenReturn(true);
         when(updateTungstenLoadbalancerSslAnswer.getResult()).thenReturn(true);
-        
when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("enabled");
         when(fwRulesDao.listByIpAndPurposeAndNotRevoked(anyLong(), 
eq(FirewallRule.Purpose.LoadBalancing))).thenReturn(List.of(firewallRuleVO));
         
when(lbCertMapDao.findByLbRuleId(anyLong())).thenReturn(loadBalancerCertMapVO);
         when(entityMgr.findById(eq(SslCertVO.class), 
anyLong())).thenReturn(sslCertVO);
diff --git 
a/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java 
b/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java
index 4873d96d79a..e72834a3996 100644
--- a/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java
+++ b/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java
@@ -261,6 +261,7 @@ import com.cloud.network.element.NsxProviderVO;
 import com.cloud.network.netris.NetrisService;
 import com.cloud.network.rules.LoadBalancerContainer.Scheme;
 import com.cloud.network.vpc.VpcManager;
+import com.cloud.network.vpn.RemoteAccessVpnService;
 import com.cloud.offering.DiskOffering;
 import com.cloud.offering.NetworkOffering;
 import com.cloud.offering.NetworkOffering.Availability;
@@ -620,7 +621,7 @@ public class ConfigurationManagerImpl extends ManagerBase 
implements Configurati
         configValuesForValidation.add("externaldhcp.vmip.retrieval.interval");
         configValuesForValidation.add("externaldhcp.vmip.max.retry");
         configValuesForValidation.add("externaldhcp.vmipFetch.threadPool.max");
-        configValuesForValidation.add("remote.access.vpn.psk.length");
+        
configValuesForValidation.add(RemoteAccessVpnService.RemoteAccessVpnPskLength.key());
         
configValuesForValidation.add(StorageManager.STORAGE_POOL_DISK_WAIT.key());
         
configValuesForValidation.add(StorageManager.STORAGE_POOL_CLIENT_TIMEOUT.key());
         
configValuesForValidation.add(StorageManager.STORAGE_POOL_CLIENT_MAX_CONNECTIONS.key());
@@ -1541,7 +1542,7 @@ public class ConfigurationManagerImpl extends ManagerBase 
implements Configurati
                 if ("vm.password.length".equalsIgnoreCase(name) && val < 6) {
                     return String.format("Please enter a value greater than 5 
for the configuration parameter: [%s].",  name);
                 }
-                if ("remote.access.vpn.psk.length".equalsIgnoreCase(name) && 
(val < 8 || val > 256)) {
+                if 
(RemoteAccessVpnService.RemoteAccessVpnPskLength.key().equalsIgnoreCase(name) 
&& (val < 8 || val > 256)) {
                     return String.format("Please enter a value greater than 7 
and less than 257 for the configuration parameter: [%s].", name);
                 }
                 if 
(UserDataManager.VM_USERDATA_MAX_LENGTH_STRING.equalsIgnoreCase(name) && val > 
1048576) {
diff --git 
a/server/src/main/java/com/cloud/network/ExternalFirewallDeviceManagerImpl.java 
b/server/src/main/java/com/cloud/network/ExternalFirewallDeviceManagerImpl.java
index ca108749f01..819e58fd9da 100644
--- 
a/server/src/main/java/com/cloud/network/ExternalFirewallDeviceManagerImpl.java
+++ 
b/server/src/main/java/com/cloud/network/ExternalFirewallDeviceManagerImpl.java
@@ -776,8 +776,7 @@ public abstract class ExternalFirewallDeviceManagerImpl 
extends AdapterBase impl
 
     public int getGloballyConfiguredCidrSize() {
         try {
-            String globalVlanBits = 
_configDao.getValue(Config.GuestVlanBits.key());
-            return 8 + Integer.parseInt(globalVlanBits);
+            return 8 + NetworkService.GuestVlanBits.value();
         } catch (Exception e) {
             throw new CloudRuntimeException("Failed to read the globally 
configured VLAN bits size.");
         }
diff --git a/server/src/main/java/com/cloud/network/NetworkModelImpl.java 
b/server/src/main/java/com/cloud/network/NetworkModelImpl.java
index f47046cdc43..f3c26739b03 100644
--- a/server/src/main/java/com/cloud/network/NetworkModelImpl.java
+++ b/server/src/main/java/com/cloud/network/NetworkModelImpl.java
@@ -1836,8 +1836,7 @@ public class NetworkModelImpl extends ManagerBase 
implements NetworkModel, Confi
 
     @Override
     public boolean canAddDefaultSecurityGroup() {
-        String defaultAdding = 
_configDao.getValue(Config.SecurityGroupDefaultAdding.key());
-        return (defaultAdding != null && 
defaultAdding.equalsIgnoreCase("true"));
+        return SecurityGroupDefaultAdding.value();
     }
 
     @Override
@@ -3010,7 +3009,7 @@ public class NetworkModelImpl extends ManagerBase 
implements NetworkModel, Confi
 
     @Override
     public ConfigKey<?>[] getConfigKeys() {
-        return new ConfigKey<?>[] {MACIdentifier, 
AdminIsAllowedToDeployAnywhere};
+        return new ConfigKey<?>[] {MACIdentifier, 
AdminIsAllowedToDeployAnywhere, SecurityGroupDefaultAdding};
     }
 
     @Override
diff --git a/server/src/main/java/com/cloud/network/NetworkServiceImpl.java 
b/server/src/main/java/com/cloud/network/NetworkServiceImpl.java
index 2853fa96330..a273c4079a9 100644
--- a/server/src/main/java/com/cloud/network/NetworkServiceImpl.java
+++ b/server/src/main/java/com/cloud/network/NetworkServiceImpl.java
@@ -923,7 +923,7 @@ public class NetworkServiceImpl extends ManagerBase 
implements NetworkService, C
             throw new InvalidParameterValueException("Invalid Network id is 
given");
         }
 
-        int maxAllowedIpsPerNic = 
NumbersUtil.parseInt(_configDao.getValue(Config.MaxNumberOfSecondaryIPsPerNIC.key()),
 Integer.parseInt(Config.MaxNumberOfSecondaryIPsPerNIC.getDefaultValue()));
+        int maxAllowedIpsPerNic = MaxNumberOfSecondaryIPsPerNIC.value();
         Long nicWiseIpCount = _nicSecondaryIpDao.countByNicId(nicId);
         if (nicWiseIpCount.intValue() >= maxAllowedIpsPerNic) {
             logger.error("Maximum Number of IPs 
\"vm.network.nic.max.secondary.ipaddresses = \"{} per NIC has been crossed for 
the NIC {}.", maxAllowedIpsPerNic, nicVO);
@@ -1367,8 +1367,7 @@ public class NetworkServiceImpl extends ManagerBase 
implements NetworkService, C
                 Integer highestVlanTag = vlanRange.second();
                 for (int vlan = lowestVlanTag; vlan <= highestVlanTag; ++vlan) 
{
                     int offset = vlan - lowestVlanTag;
-                    String globalVlanBits = 
_configDao.getValue(Config.GuestVlanBits.key());
-                    int cidrSize = 8 + Integer.parseInt(globalVlanBits);
+                    int cidrSize = 8 + GuestVlanBits.value();
                     String guestNetworkCidr = zone.getGuestNetworkCidr();
                     String[] cidrTuple = guestNetworkCidr.split("\\/");
                     long newCidrAddress = (NetUtils.ip2Long(cidrTuple[0]) & 
0xff000000) | (offset << (32 - cidrSize));
@@ -6313,7 +6312,8 @@ public class NetworkServiceImpl extends ManagerBase 
implements NetworkService, C
 
     @Override
     public ConfigKey<?>[] getConfigKeys() {
-        return new ConfigKey<?>[] {AllowDuplicateNetworkName, 
AllowEmptyStartEndIpAddress, AllowUsersToMakeNetworksRedundant, 
VRPrivateInterfaceMtu, VRPublicInterfaceMtu, AllowUsersToSpecifyVRMtu};
+        return new ConfigKey<?>[] {AllowDuplicateNetworkName, 
AllowEmptyStartEndIpAddress, AllowUsersToMakeNetworksRedundant, 
VRPrivateInterfaceMtu, VRPublicInterfaceMtu, AllowUsersToSpecifyVRMtu,
+                GuestVlanBits, MaxNumberOfSecondaryIPsPerNIC};
     }
 
     public boolean isDefaultAcl(Long aclId) {
diff --git a/server/src/main/java/com/cloud/network/guru/GuestNetworkGuru.java 
b/server/src/main/java/com/cloud/network/guru/GuestNetworkGuru.java
index 39b9a32e48e..9c3de03446d 100644
--- a/server/src/main/java/com/cloud/network/guru/GuestNetworkGuru.java
+++ b/server/src/main/java/com/cloud/network/guru/GuestNetworkGuru.java
@@ -36,7 +36,6 @@ import 
org.apache.cloudstack.network.Ipv4GuestSubnetNetworkMap;
 import org.apache.cloudstack.network.RoutedIpv4Manager;
 import org.apache.commons.lang3.StringUtils;
 
-import com.cloud.configuration.Config;
 import com.cloud.dc.DataCenter;
 import com.cloud.dc.DataCenter.NetworkType;
 import com.cloud.dc.dao.DataCenterDao;
@@ -58,6 +57,7 @@ import com.cloud.network.Network.Service;
 import com.cloud.network.Network.State;
 import com.cloud.network.NetworkModel;
 import com.cloud.network.NetworkProfile;
+import com.cloud.network.NetworkService;
 import com.cloud.network.Networks;
 import com.cloud.network.Networks.AddressFormat;
 import com.cloud.network.Networks.BroadcastDomainType;
@@ -353,8 +353,7 @@ public abstract class GuestNetworkGuru extends AdapterBase 
implements NetworkGur
 
     public int getGloballyConfiguredCidrSize() {
         try {
-            final String globalVlanBits = 
_configDao.getValue(Config.GuestVlanBits.key());
-            return 8 + Integer.parseInt(globalVlanBits);
+            return 8 + NetworkService.GuestVlanBits.value();
         } catch (final Exception e) {
             throw new CloudRuntimeException("Failed to read the globally 
configured VLAN bits size.");
         }
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 58b2892e09c..e861cfc7bb5 100644
--- a/server/src/main/java/com/cloud/network/router/CommandSetupHelper.java
+++ b/server/src/main/java/com/cloud/network/router/CommandSetupHelper.java
@@ -403,10 +403,10 @@ public class CommandSetupHelper {
                 router.getPrivateIpAddress(), _itMgr.toNicTO(nicProfile, 
router.getHypervisorType()), router.getVpcId(), maxconn, 
offering.isKeepAliveEnabled(),
                 
NetworkOrchestrationService.NETWORK_LB_HAPROXY_IDLE_TIMEOUT.value());
 
-        cmd.lbStatsVisibility = 
_configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key());
-        cmd.lbStatsUri = 
_configDao.getValue(Config.NetworkLBHaproxyStatsUri.key());
-        cmd.lbStatsAuth = 
_configDao.getValue(Config.NetworkLBHaproxyStatsAuth.key());
-        cmd.lbStatsPort = 
_configDao.getValue(Config.NetworkLBHaproxyStatsPort.key());
+        cmd.lbStatsVisibility = 
NetworkOrchestrationService.NetworkLBHaproxyStatsVisbility.value();
+        cmd.lbStatsUri = 
NetworkOrchestrationService.NetworkLBHaproxyStatsUri.value();
+        cmd.lbStatsAuth = 
NetworkOrchestrationService.NetworkLBHaproxyStatsAuth.value();
+        cmd.lbStatsPort = 
NetworkOrchestrationService.NetworkLBHaproxyStatsPort.value();
 
         cmd.setAccessDetail(NetworkElementCommand.ROUTER_IP, 
_routerControlHelper.getRouterControlIp(router.getId()));
         cmd.setAccessDetail(NetworkElementCommand.ROUTER_GUEST_IP, 
_routerControlHelper.getRouterIpInNetwork(guestNetworkId, router.getId()));
diff --git 
a/server/src/main/java/com/cloud/network/router/NetworkHelperImpl.java 
b/server/src/main/java/com/cloud/network/router/NetworkHelperImpl.java
index 56534a8ee7d..6f48284d3de 100644
--- a/server/src/main/java/com/cloud/network/router/NetworkHelperImpl.java
+++ b/server/src/main/java/com/cloud/network/router/NetworkHelperImpl.java
@@ -48,7 +48,6 @@ import com.cloud.agent.api.to.NicTO;
 import com.cloud.agent.manager.Commands;
 import com.cloud.alert.AlertManager;
 import com.cloud.capacity.CapacityManager;
-import com.cloud.configuration.Config;
 import com.cloud.dc.ClusterVO;
 import com.cloud.dc.DataCenter;
 import com.cloud.dc.Pod;
@@ -950,7 +949,7 @@ public class NetworkHelperImpl implements NetworkHelper {
     @Override
     public boolean validateHAProxyLBRule(final LoadBalancingRule rule) {
         final String timeEndChar = "dhms";
-        int haproxy_stats_port = 
Integer.parseInt(_configDao.getValue(Config.NetworkLBHaproxyStatsPort.key()));
+        int haproxy_stats_port = 
Integer.parseInt(NetworkOrchestrationService.NetworkLBHaproxyStatsPort.value());
         if (rule.getSourcePortStart() == haproxy_stats_port) {
             if (logger.isDebugEnabled()) {
                 logger.debug("Can't create LB on port "+ haproxy_stats_port 
+", haproxy is listening for LB stats on this port");
diff --git 
a/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManager.java
 
b/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManager.java
index 8ef77d3fb32..7db9674d652 100644
--- 
a/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManager.java
+++ 
b/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManager.java
@@ -73,6 +73,12 @@ public interface VirtualNetworkApplianceManager extends 
Manager, VirtualNetworkA
     ConfigKey<Boolean> SetServiceMonitor = new ConfigKey<>(Boolean.class, 
SetServiceMonitorCK, "Advanced", "true",
             "service monitoring in router enable/disable option, default 
true", true, ConfigKey.Scope.Zone, null);
 
+    ConfigKey<Boolean> NetworkRouterRpFilter = new ConfigKey<>("Network", 
Boolean.class, "network.disable.rpfilter", "true",
+            "disable rp_filter on Domain Router VM public interfaces.", true);
+
+    ConfigKey<Boolean> EnableServiceMonitoring = new ConfigKey<>("Network", 
Boolean.class, "network.router.enableserviceMonitoring", "false",
+            "service monitoring in router enable/disable option, default 
false", true);
+
     ConfigKey<Integer> RouterAlertsCheckInterval = new 
ConfigKey<>(Integer.class, RouterAlertsCheckIntervalCK, "Advanced", "1800",
             "Interval (in seconds) to check for alerts in Virtual Router.", 
false, ConfigKey.Scope.Global, null);
     ConfigKey<Boolean> RouterVersionCheckEnabled = new ConfigKey<>("Advanced", 
Boolean.class, "router.version.check", "true",
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 53c44e16d0b..004d4ca73e1 100644
--- 
a/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
+++ 
b/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
@@ -577,10 +577,7 @@ Configurable, StateListener<VirtualMachine.State, 
VirtualMachine.Event, VirtualM
 
         NetworkHelperImpl.setVMInstanceName(instance);
 
-        final String rpValue = configs.get("network.disable.rpfilter");
-        if (rpValue != null && rpValue.equalsIgnoreCase("true")) {
-            _disableRpFilter = true;
-        }
+        _disableRpFilter = NetworkRouterRpFilter.value();
 
         _dnsBasicZoneUpdates = 
String.valueOf(_configDao.getValue(Config.DnsBasicZoneUpdates.key()));
 
@@ -2002,8 +1999,7 @@ Configurable, StateListener<VirtualMachine.State, 
VirtualMachine.Event, VirtualM
             throw new CloudRuntimeException("Didn't start a control port");
         }
 
-        final String rpValue = 
_configDao.getValue(Config.NetworkRouterRpFilter.key());
-        _disableRpFilter = rpValue != null && rpValue.equalsIgnoreCase("true");
+        _disableRpFilter = NetworkRouterRpFilter.value();
 
         String rpFilter = " ";
         String type;
@@ -2359,8 +2355,7 @@ Configurable, StateListener<VirtualMachine.State, 
VirtualMachine.Event, VirtualM
             return;
         }
 
-        final String serviceMonitoringSet = 
_configDao.getValue(Config.EnableServiceMonitoring.key());
-        final boolean isMonitoringServicesEnabled = serviceMonitoringSet != 
null && serviceMonitoringSet.equalsIgnoreCase("true");
+        final boolean isMonitoringServicesEnabled = 
EnableServiceMonitoring.value();
         final NetworkVO network = _networkDao.findById(networkId);
 
         logger.debug("Creating  monitoring services on " + router + " 
start...");
@@ -3384,7 +3379,9 @@ Configurable, StateListener<VirtualMachine.State, 
VirtualMachine.Event, VirtualM
                 ExposeDnsAndBootpServer,
                 RouterLogrotateFrequency,
                 RemoveControlIpOnStop,
-                VirtualRouterUserData
+                VirtualRouterUserData,
+                NetworkRouterRpFilter,
+                EnableServiceMonitoring
         };
     }
 
diff --git 
a/server/src/main/java/com/cloud/network/security/SecurityGroupManagerImpl.java 
b/server/src/main/java/com/cloud/network/security/SecurityGroupManagerImpl.java
index 585b65aa4d9..94d6765a86a 100644
--- 
a/server/src/main/java/com/cloud/network/security/SecurityGroupManagerImpl.java
+++ 
b/server/src/main/java/com/cloud/network/security/SecurityGroupManagerImpl.java
@@ -48,6 +48,8 @@ import 
org.apache.cloudstack.api.command.user.securitygroup.RevokeSecurityGroupI
 import 
org.apache.cloudstack.api.command.user.securitygroup.UpdateSecurityGroupCmd;
 import org.apache.cloudstack.context.CallContext;
 import 
org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
+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.cloudstack.framework.messagebus.MessageBus;
 import org.apache.cloudstack.framework.messagebus.PublishScope;
@@ -63,7 +65,6 @@ import com.cloud.agent.api.SecurityGroupRulesCmd;
 import com.cloud.agent.api.SecurityGroupRulesCmd.IpPortAndProto;
 import com.cloud.agent.api.to.VirtualMachineTO;
 import com.cloud.agent.manager.Commands;
-import com.cloud.configuration.Config;
 import com.cloud.domain.dao.DomainDao;
 import com.cloud.event.ActionEvent;
 import com.cloud.event.EventTypes;
@@ -92,7 +93,6 @@ import com.cloud.user.AccountManager;
 import com.cloud.user.DomainManager;
 import com.cloud.user.dao.AccountDao;
 import com.cloud.uservm.UserVm;
-import com.cloud.utils.NumbersUtil;
 import com.cloud.utils.Pair;
 import com.cloud.utils.component.ManagerBase;
 import com.cloud.utils.concurrency.NamedThreadFactory;
@@ -124,7 +124,7 @@ import com.cloud.vm.dao.NicSecondaryIpDao;
 import com.cloud.vm.dao.UserVmDao;
 import com.cloud.vm.dao.VMInstanceDao;
 
-public class SecurityGroupManagerImpl extends ManagerBase implements 
SecurityGroupManager, SecurityGroupService, StateListener<State, 
VirtualMachine.Event, VirtualMachine> {
+public class SecurityGroupManagerImpl extends ManagerBase implements 
SecurityGroupManager, SecurityGroupService, StateListener<State, 
VirtualMachine.Event, VirtualMachine>, Configurable {
 
     @Inject
     SecurityGroupDao _securityGroupDao;
@@ -944,10 +944,9 @@ public class SecurityGroupManagerImpl extends ManagerBase 
implements SecurityGro
     @Override
     public boolean configure(String name, Map<String, Object> params) throws 
ConfigurationException {
 
-        Map<String, String> configs = _configDao.getConfiguration("Network", 
params);
-        _numWorkerThreads = 
NumbersUtil.parseInt(configs.get(Config.SecurityGroupWorkerThreads.key()), 
WORKER_THREAD_COUNT);
-        _timeBetweenCleanups = 
NumbersUtil.parseInt(configs.get(Config.SecurityGroupWorkCleanupInterval.key()),
 TIME_BETWEEN_CLEANUPS);
-        _globalWorkLockTimeout = 
NumbersUtil.parseInt(configs.get(Config.SecurityGroupWorkGlobalLockTimeout.key()),
 300);
+        _numWorkerThreads = SecurityGroupWorkerThreads.value();
+        _timeBetweenCleanups = SecurityGroupWorkCleanupInterval.value();
+        _globalWorkLockTimeout = SecurityGroupWorkGlobalLockTimeout.value();
         /* register state listener, no matter security group is enabled or not 
*/
         VirtualMachine.State.getStateMachine().registerListener(this);
 
@@ -1488,4 +1487,14 @@ public class SecurityGroupManagerImpl extends 
ManagerBase implements SecurityGro
 
         return true;
     }
+
+    @Override
+    public String getConfigComponentName() {
+        return SecurityGroupManager.class.getSimpleName();
+    }
+
+    @Override
+    public ConfigKey<?>[] getConfigKeys() {
+        return new ConfigKey<?>[] {SecurityGroupWorkCleanupInterval, 
SecurityGroupWorkerThreads, SecurityGroupWorkGlobalLockTimeout, 
SecurityGroupWorkPerAgentMaxQueueSize};
+    }
 }
diff --git 
a/server/src/main/java/com/cloud/network/security/SecurityGroupManagerImpl2.java
 
b/server/src/main/java/com/cloud/network/security/SecurityGroupManagerImpl2.java
index bd532f8162f..e96fa5595bf 100644
--- 
a/server/src/main/java/com/cloud/network/security/SecurityGroupManagerImpl2.java
+++ 
b/server/src/main/java/com/cloud/network/security/SecurityGroupManagerImpl2.java
@@ -31,13 +31,11 @@ import org.apache.cloudstack.managed.context.ManagedContext;
 
 import com.cloud.agent.api.SecurityGroupRulesCmd;
 import com.cloud.agent.manager.Commands;
-import com.cloud.configuration.Config;
 import com.cloud.exception.AgentUnavailableException;
 import com.cloud.network.Networks;
 import com.cloud.network.security.SecurityGroupWork.Step;
 import com.cloud.network.security.SecurityRule.SecurityRuleType;
 import com.cloud.uservm.UserVm;
-import com.cloud.utils.NumbersUtil;
 import com.cloud.utils.Profiler;
 import com.cloud.utils.exception.CloudRuntimeException;
 import com.cloud.utils.mgmt.JmxUtil;
@@ -282,8 +280,7 @@ public class SecurityGroupManagerImpl2 extends 
SecurityGroupManagerImpl {
             logger.error("Failed to register MBean", e);
         }
         boolean result = super.configure(name, params);
-        Map<String, String> configs = _configDao.getConfiguration("Network", 
params);
-        int bufferLength = 
NumbersUtil.parseInt(configs.get(Config.SecurityGroupWorkPerAgentMaxQueueSize.key()),
 100);
+        int bufferLength = SecurityGroupWorkPerAgentMaxQueueSize.value();
         _workTracker = new SecurityGroupWorkTracker(_agentMgr, 
_answerListener, bufferLength);
         _answerListener.setWorkDispatcher(_workTracker);
         return result;
diff --git 
a/server/src/main/java/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java 
b/server/src/main/java/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java
index 24c2f2221d9..ae17273a6a6 100644
--- a/server/src/main/java/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java
+++ b/server/src/main/java/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java
@@ -810,11 +810,9 @@ public class RemoteAccessVpnManagerImpl extends 
ManagerBase implements RemoteAcc
 
     @Override
     public boolean configure(String name, Map<String, Object> params) throws 
ConfigurationException {
-        Map<String, String> configs = _configDao.getConfiguration(params);
+        _userLimit = RemoteAccessVpnUserLimit.value();
 
-        _userLimit = 
NumbersUtil.parseInt(configs.get(Config.RemoteAccessVpnUserLimit.key()), 8);
-
-        _pskLength = 
NumbersUtil.parseInt(configs.get(Config.RemoteAccessVpnPskLength.key()), 24);
+        _pskLength = RemoteAccessVpnPskLength.value();
 
         validateRemoteAccessVpnConfiguration();
 
@@ -859,7 +857,7 @@ public class RemoteAccessVpnManagerImpl extends ManagerBase 
implements RemoteAcc
 
     @Override
     public ConfigKey<?>[] getConfigKeys() {
-        return new ConfigKey<?>[] {RemoteAccessVpnClientIpRange};
+        return new ConfigKey<?>[] {RemoteAccessVpnClientIpRange, 
RemoteAccessVpnPskLength, RemoteAccessVpnUserLimit};
     }
 
     public List<RemoteAccessVPNServiceProvider> getVpnServiceProviders() {

Reply via email to