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

pearl11594 pushed a commit to branch change-cp-settings-to-zonelevel
in repository https://gitbox.apache.org/repos/asf/cloudstack.git

commit 8a0b090c5146c67a521f42ef26f085395b0e58e4
Author: Pearl Dsilva <pearl1...@gmail.com>
AuthorDate: Wed Aug 6 16:49:35 2025 -0400

    Move Console Proxy global settings to zone level
---
 .../cloudstack/framework/config/ConfigKey.java     |  4 +
 .../main/java/com/cloud/configuration/Config.java  | 91 +---------------------
 .../configuration/ConfigurationManagerImpl.java    |  3 +-
 .../AgentBasedConsoleProxyManager.java             |  8 +-
 .../java/com/cloud/consoleproxy/AgentHookBase.java | 16 ++--
 .../cloud/consoleproxy/ConsoleProxyManager.java    | 40 +++++++++-
 .../consoleproxy/ConsoleProxyManagerImpl.java      | 45 ++++++-----
 .../ConfigurationManagerImplTest.java              | 24 ------
 .../PremiumSecondaryStorageManagerImpl.java        |  5 +-
 9 files changed, 87 insertions(+), 149 deletions(-)

diff --git 
a/framework/config/src/main/java/org/apache/cloudstack/framework/config/ConfigKey.java
 
b/framework/config/src/main/java/org/apache/cloudstack/framework/config/ConfigKey.java
index 26151ab5b58..fdbdeaa8814 100644
--- 
a/framework/config/src/main/java/org/apache/cloudstack/framework/config/ConfigKey.java
+++ 
b/framework/config/src/main/java/org/apache/cloudstack/framework/config/ConfigKey.java
@@ -229,6 +229,10 @@ public class ConfigKey<T> {
         this(type, name, category, defaultValue, description, isDynamic, 
Scope.Global, null);
     }
 
+    public ConfigKey(String category, Class<T> type, String name, String 
defaultValue, String description, Scope scope, boolean isDynamic) {
+        this(type, name, category, defaultValue, description, isDynamic, 
scope, null);
+    }
+
     public ConfigKey(String category, Class<T> type, String name, String 
defaultValue, String description, boolean isDynamic, Kind kind, String options) 
{
         this(type, name, category, defaultValue, description, isDynamic, 
Scope.Global, null, null, null, null, null, kind, options);
     }
diff --git a/server/src/main/java/com/cloud/configuration/Config.java 
b/server/src/main/java/com/cloud/configuration/Config.java
index 443909ce319..ebf777ee640 100644
--- a/server/src/main/java/com/cloud/configuration/Config.java
+++ b/server/src/main/java/com/cloud/configuration/Config.java
@@ -25,7 +25,6 @@ import 
org.apache.cloudstack.engine.subsystem.api.storage.StoragePoolAllocator;
 import org.apache.cloudstack.framework.config.ConfigKey;
 
 import com.cloud.agent.AgentManager;
-import com.cloud.consoleproxy.ConsoleProxyManager;
 import com.cloud.ha.HighAvailabilityManager;
 import com.cloud.hypervisor.Hypervisor.HypervisorType;
 import com.cloud.network.router.VpcVirtualNetworkApplianceManager;
@@ -405,94 +404,7 @@ public enum Config {
 
 
     // Console Proxy
-    ConsoleProxyCapacityStandby(
-            "Console Proxy",
-            AgentManager.class,
-            String.class,
-            "consoleproxy.capacity.standby",
-            "10",
-            "The minimal number of console proxy viewer sessions that system 
is able to serve immediately(standby capacity)",
-            null),
-    ConsoleProxyCapacityScanInterval(
-            "Console Proxy",
-            AgentManager.class,
-            String.class,
-            "consoleproxy.capacityscan.interval",
-            "30000",
-            "The time interval(in millisecond) to scan whether or not system 
needs more console proxy to ensure minimal standby capacity",
-            null),
-    ConsoleProxyCmdPort(
-            "Console Proxy",
-            AgentManager.class,
-            Integer.class,
-            "consoleproxy.cmd.port",
-            "8001",
-            "Console proxy command port that is used to communicate with 
management server",
-            null),
-    ConsoleProxyRestart(
-        "Console Proxy",
-        AgentManager.class,
-        Boolean.class,
-        "consoleproxy.restart",
-        "true",
-        "Console proxy restart flag, defaulted to true",
-        null),
-    ConsoleProxyUrlDomain(
-        "Console Proxy",
-        AgentManager.class,
-        String.class,
-        "consoleproxy.url.domain",
-        "",
-        "Console proxy url domain",
-        "domainName,privateip"),
-    ConsoleProxySessionMax(
-            "Console Proxy",
-            AgentManager.class,
-            Integer.class,
-            "consoleproxy.session.max",
-            String.valueOf(ConsoleProxyManager.DEFAULT_PROXY_CAPACITY),
-            "The max number of viewer sessions console proxy is configured to 
serve for",
-            null),
-    ConsoleProxySessionTimeout(
-            "Console Proxy",
-            AgentManager.class,
-            Integer.class,
-            "consoleproxy.session.timeout",
-            "300000",
-            "Timeout(in milliseconds) that console proxy tries to maintain a 
viewer session before it times out the session for no activity",
-            null),
-    ConsoleProxyDisableRpFilter(
-            "Console Proxy",
-            AgentManager.class,
-            Boolean.class,
-            "consoleproxy.disable.rpfilter",
-            "true",
-            "disable rp_filter on console proxy VM public interface",
-            null),
-    ConsoleProxyLaunchMax(
-            "Console Proxy",
-            AgentManager.class,
-            Integer.class,
-            "consoleproxy.launch.max",
-            "10",
-            "maximum number of console proxy instances per zone can be 
launched",
-            null),
-    ConsoleProxyManagementState(
-            "Console Proxy",
-            AgentManager.class,
-            String.class,
-            "consoleproxy.management.state",
-            com.cloud.consoleproxy.ConsoleProxyManagementState.Auto.toString(),
-            "console proxy service management state",
-            null),
-    ConsoleProxyManagementLastState(
-            "Console Proxy",
-            AgentManager.class,
-            String.class,
-            "consoleproxy.management.state.last",
-            com.cloud.consoleproxy.ConsoleProxyManagementState.Auto.toString(),
-            "last console proxy service management state",
-            null),
+
 
     // Snapshots
 
@@ -1799,6 +1711,7 @@ public enum Config {
 
     SSVMPSK("Hidden", ManagementServer.class, String.class, 
"upload.post.secret.key", "", "PSK with SSVM", null);
 
+
     private final String _category;
     private final Class<?> _componentClass;
     private final Class<?> _type;
diff --git 
a/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java 
b/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java
index 64b2a66f452..36dfd969a7b 100644
--- a/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java
+++ b/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java
@@ -50,6 +50,7 @@ import java.util.stream.Collectors;
 import javax.inject.Inject;
 import javax.naming.ConfigurationException;
 
+import com.cloud.consoleproxy.ConsoleProxyManager;
 import org.apache.cloudstack.acl.RoleType;
 import org.apache.cloudstack.acl.SecurityChecker;
 import org.apache.cloudstack.affinity.AffinityGroup;
@@ -573,7 +574,7 @@ public class ConfigurationManagerImpl extends ManagerBase 
implements Configurati
         configValuesForValidation.add("event.purge.interval");
         configValuesForValidation.add("account.cleanup.interval");
         configValuesForValidation.add("alert.wait");
-        configValuesForValidation.add("consoleproxy.capacityscan.interval");
+        
configValuesForValidation.add(ConsoleProxyManager.ConsoleProxyCapacityScanInterval.key());
         configValuesForValidation.add("expunge.interval");
         configValuesForValidation.add("host.stats.interval");
         configValuesForValidation.add("network.gc.interval");
diff --git 
a/server/src/main/java/com/cloud/consoleproxy/AgentBasedConsoleProxyManager.java
 
b/server/src/main/java/com/cloud/consoleproxy/AgentBasedConsoleProxyManager.java
index 863307035ee..47c873a0780 100644
--- 
a/server/src/main/java/com/cloud/consoleproxy/AgentBasedConsoleProxyManager.java
+++ 
b/server/src/main/java/com/cloud/consoleproxy/AgentBasedConsoleProxyManager.java
@@ -120,12 +120,12 @@ public class AgentBasedConsoleProxyManager extends 
ManagerBase implements Consol
             _consoleProxyPort = NumbersUtil.parseInt(value, 
ConsoleProxyManager.DEFAULT_PROXY_VNC_PORT);
         }
 
-        value = configs.get(ConsoleProxySslEnabled.key());
-        if (value != null && value.equalsIgnoreCase("true")) {
+        Boolean sslEnabled = ConsoleProxySslEnabled.value();
+        if (Boolean.TRUE.equals(sslEnabled)) {
             _sslEnabled = true;
         }
 
-        _consoleProxyUrlDomain = configs.get("consoleproxy.url.domain");
+        _consoleProxyUrlDomain = ConsoleProxyUrlDomain.value();
 
         _listener = new ConsoleProxyListener(new 
AgentBasedAgentHook(_instanceDao, _hostDao, _configDao, _ksMgr,
                 _agentMgr, _keysMgr, consoleAccessManager));
@@ -166,6 +166,8 @@ public class AgentBasedConsoleProxyManager extends 
ManagerBase implements Consol
                 urlPort = host.getProxyPort().intValue();
             }
 
+            _sslEnabled = ConsoleProxySslEnabled.valueIn(dataCenterId);
+            _consoleProxyUrlDomain = 
ConsoleProxyUrlDomain.valueIn(dataCenterId);
             return new ConsoleProxyInfo(_sslEnabled, publicIp, 
_consoleProxyPort, urlPort, _consoleProxyUrlDomain);
         } else {
             logger.warn("Host that VM is running is no longer available, 
console access to VM {} will be temporarily unavailable.", userVm);
diff --git a/server/src/main/java/com/cloud/consoleproxy/AgentHookBase.java 
b/server/src/main/java/com/cloud/consoleproxy/AgentHookBase.java
index 93cf1e3f689..2b41101e6c9 100644
--- a/server/src/main/java/com/cloud/consoleproxy/AgentHookBase.java
+++ b/server/src/main/java/com/cloud/consoleproxy/AgentHookBase.java
@@ -41,7 +41,6 @@ import com.cloud.agent.api.GetVncPortCommand;
 import com.cloud.agent.api.StartupCommand;
 import com.cloud.agent.api.StartupProxyCommand;
 import com.cloud.agent.api.proxy.StartConsoleProxyAgentHttpHandlerCommand;
-import com.cloud.configuration.Config;
 import com.cloud.exception.AgentUnavailableException;
 import com.cloud.exception.OperationTimedoutException;
 import com.cloud.host.Host;
@@ -213,10 +212,14 @@ public abstract class AgentHookBase implements AgentHook {
 
             byte[] ksBits = null;
 
-            String consoleProxyUrlDomain = 
_configDao.getValue(Config.ConsoleProxyUrlDomain.key());
-            String consoleProxySslEnabled = 
_configDao.getValue(ConsoleProxyManager.ConsoleProxySslEnabled.key());
-            if (!StringUtils.isEmpty(consoleProxyUrlDomain) && 
!StringUtils.isEmpty(consoleProxySslEnabled)
-                    && consoleProxySslEnabled.equalsIgnoreCase("true")) {
+            HostVO consoleProxyHost = findConsoleProxyHost(startupCmd);
+
+            assert (consoleProxyHost != null);
+
+            Long datacenterId = consoleProxyHost.getDataCenterId();
+            String consoleProxyUrlDomain = 
ConsoleProxyManager.ConsoleProxyUrlDomain.valueIn(datacenterId);
+            Boolean consoleProxySslEnabled = 
ConsoleProxyManager.ConsoleProxySslEnabled.valueIn(datacenterId);
+            if (!StringUtils.isEmpty(consoleProxyUrlDomain) && 
Boolean.TRUE.equals(consoleProxySslEnabled)) {
                 ksBits = 
_ksMgr.getKeystoreBits(ConsoleProxyManager.CERTIFICATE_NAME, 
ConsoleProxyManager.CERTIFICATE_NAME, storePassword);
                 //ks manager raises exception if ksBits are null, hence no 
need to explicltly handle the condition
             } else {
@@ -227,9 +230,6 @@ public abstract class AgentHookBase implements AgentHook {
             cmd.setEncryptorPassword(getEncryptorPassword());
             
cmd.setIsSourceIpCheckEnabled(Boolean.parseBoolean(_configDao.getValue(ConsoleProxyManager.NoVncConsoleSourceIpCheckEnabled.key())));
 
-            HostVO consoleProxyHost = findConsoleProxyHost(startupCmd);
-
-            assert (consoleProxyHost != null);
             if (consoleProxyHost != null) {
                 Answer answer = _agentMgr.send(consoleProxyHost.getId(), cmd);
                 if (answer == null || !answer.getResult()) {
diff --git 
a/server/src/main/java/com/cloud/consoleproxy/ConsoleProxyManager.java 
b/server/src/main/java/com/cloud/consoleproxy/ConsoleProxyManager.java
index 88f3b30f96f..1b585f12d1a 100644
--- a/server/src/main/java/com/cloud/consoleproxy/ConsoleProxyManager.java
+++ b/server/src/main/java/com/cloud/consoleproxy/ConsoleProxyManager.java
@@ -16,7 +16,9 @@
 // under the License.
 package com.cloud.consoleproxy;
 
+import java.util.Arrays;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 import org.apache.cloudstack.framework.config.ConfigKey;
 
@@ -46,14 +48,48 @@ public interface ConsoleProxyManager extends Manager, 
ConsoleProxyService {
     String CERTIFICATE_NAME = "CPVMCertificate";
 
     ConfigKey<Boolean> ConsoleProxySslEnabled = new 
ConfigKey<>(ConfigKey.CATEGORY_ADVANCED, Boolean.class, 
"consoleproxy.sslEnabled", "false",
-            "Enable SSL for console proxy", false);
+            "Enable SSL for console proxy", ConfigKey.Scope.Zone, false);
 
     ConfigKey<Boolean> NoVncConsoleDefault = new 
ConfigKey<>(ConfigKey.CATEGORY_ADVANCED, Boolean.class, 
"novnc.console.default", "true",
-        "If true, noVNC console will be default console for virtual machines", 
true);
+        "If true, noVNC console will be default console for virtual machines", 
ConfigKey.Scope.Zone, true);
 
     ConfigKey<Boolean> NoVncConsoleSourceIpCheckEnabled = new 
ConfigKey<>(ConfigKey.CATEGORY_ADVANCED, Boolean.class, 
"novnc.console.sourceip.check.enabled", "false",
         "If true, The source IP to access novnc console must be same as the IP 
in request to management server for console URL. Needs to reconnect CPVM to 
management server when this changes (via restart CPVM, or management server, or 
cloud service in CPVM)", false);
 
+    ConfigKey<String> ConsoleProxyCapacityStandby = new 
ConfigKey<>(String.class, "consoleproxy.capacity.standby", "Console Proxy", 
"10",
+            "The minimal number of console proxy viewer sessions that system 
is able to serve immediately(standby capacity)", false, ConfigKey.Scope.Zone, 
null);
+
+    ConfigKey<String> ConsoleProxyCapacityScanInterval = new 
ConfigKey<>(String.class, "consoleproxy.capacityscan.interval", "Console 
Proxy", "30000",
+            "The time interval(in millisecond) to scan whether or not system 
needs more console proxy to ensure minimal standby capacity", false, 
ConfigKey.Scope.Zone, null);
+
+    ConfigKey<Integer> ConsoleProxyCmdPort = new ConfigKey<>(Integer.class, 
"consoleproxy.cmd.port", "Console Proxy", 
String.valueOf(DEFAULT_PROXY_CMD_PORT),
+            "Console proxy command port that is used to communicate with 
management server", false, ConfigKey.Scope.Zone, null);
+
+    ConfigKey<Boolean> ConsoleProxyRestart = new ConfigKey<>(Boolean.class, 
"consoleproxy.restart", "Console Proxy", "true",
+            "Console proxy restart flag, defaults to true", false, 
ConfigKey.Scope.Zone, null);
+
+    ConfigKey<String> ConsoleProxyUrlDomain = new ConfigKey<>(String.class, 
"consoleproxy.url.domain", "Console Proxy", "",
+            "Console proxy url domain - domainName,privateip", false, 
ConfigKey.Scope.Zone, null);
+
+    ConfigKey<Integer> ConsoleProxySessionMax = new ConfigKey<>(Integer.class, 
"consoleproxy.session.max", "Console Proxy", 
String.valueOf(DEFAULT_PROXY_CAPACITY),
+            "The max number of viewer sessions console proxy is configured to 
serve for", false, ConfigKey.Scope.Zone, null);
+
+    ConfigKey<Integer> ConsoleProxySessionTimeout = new 
ConfigKey<>(Integer.class, "consoleproxy.session.timeout", "Console Proxy", 
"300000",
+            "Timeout(in milliseconds) that console proxy tries to maintain a 
viewer session before it times out the session for no activity", false, 
ConfigKey.Scope.Zone, null);
+
+    ConfigKey<Boolean> ConsoleProxyDisableRpFilter = new 
ConfigKey<>(Boolean.class, "consoleproxy.disable.rpfilter", "Console Proxy", 
"true",
+            "disable rp_filter on console proxy VM public interface", false, 
ConfigKey.Scope.Zone, null);
+
+    ConfigKey<Integer> ConsoleProxyLaunchMax = new ConfigKey<>(Integer.class, 
"consoleproxy.launch.max", "Console Proxy", "10",
+            "maximum number of console proxy instances per zone can be 
launched", false, ConfigKey.Scope.Zone, null);
+
+    String consoleProxyManagementStates = 
Arrays.stream(com.cloud.consoleproxy.ConsoleProxyManagementState.values()).map(Enum::name).collect(Collectors.joining(","));
+    ConfigKey<String> ConsoleProxyServiceManagementState = new 
ConfigKey<String>(ConfigKey.CATEGORY_ADVANCED, String.class, 
"consoleproxy.management.state", 
com.cloud.consoleproxy.ConsoleProxyManagementState.Auto.toString(),
+            "console proxy service management state", false, 
ConfigKey.Kind.Select, consoleProxyManagementStates);
+
+    ConfigKey<String> ConsoleProxyManagementLastState = new 
ConfigKey<String>(ConfigKey.CATEGORY_ADVANCED, String.class, 
"consoleproxy.management.state.last", 
com.cloud.consoleproxy.ConsoleProxyManagementState.Auto.toString(),
+            "last console proxy service management state", false, 
ConfigKey.Kind.Select, consoleProxyManagementStates);
+
     void setManagementState(ConsoleProxyManagementState state);
 
     ConsoleProxyManagementState getManagementState();
diff --git 
a/server/src/main/java/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java 
b/server/src/main/java/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java
index 484193f2fcd..097ad6dc179 100644
--- a/server/src/main/java/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java
+++ b/server/src/main/java/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java
@@ -342,6 +342,7 @@ public class ConsoleProxyManagerImpl extends ManagerBase 
implements ConsoleProxy
             logger.warn(String.format("SSL is enabled for console proxy [%s] 
but no server certificate found in database.", proxy.toString()));
         }
 
+        consoleProxyUrlDomain = ConsoleProxyUrlDomain.valueIn(dataCenterId);
         ConsoleProxyInfo info;
         if (staticPublicIp == null) {
             info = new ConsoleProxyInfo(proxy.isSslEnabled(), 
proxy.getPublicIpAddress(), consoleProxyPort, proxy.getPort(), 
consoleProxyUrlDomain);
@@ -466,8 +467,8 @@ public class ConsoleProxyManagerImpl extends ManagerBase 
implements ConsoleProxy
                 return proxy;
             }
 
-            String restart = 
configurationDao.getValue(Config.ConsoleProxyRestart.key());
-            if (!ignoreRestartSetting && restart != null && 
restart.equalsIgnoreCase("false")) {
+            Boolean restart = 
ConsoleProxyRestart.valueIn(proxy.getDataCenterId());
+            if (!ignoreRestartSetting && Boolean.FALSE.equals(restart)) {
                 return null;
             }
 
@@ -566,8 +567,9 @@ public class ConsoleProxyManagerImpl extends ManagerBase 
implements ConsoleProxy
         }
 
         if (!allowToLaunchNew(dataCenterId)) {
-            String configKey = Config.ConsoleProxyLaunchMax.key();
-            logger.warn(String.format("The number of launched console proxys 
on zone [%s] has reached the limit [%s]. Limit set in [%s].", dataCenterId, 
configurationDao.getValue(configKey), configKey));
+            String configKey = ConsoleProxyLaunchMax.key();
+            Integer configValue = ConsoleProxyLaunchMax.valueIn(dataCenterId);
+            logger.warn(String.format("The number of launched console proxys 
on zone [%s] has reached the limit [%s]. Limit set in [%s].", dataCenterId, 
configValue, configKey));
             return null;
         }
 
@@ -814,8 +816,7 @@ public class ConsoleProxyManagerImpl extends ManagerBase 
implements ConsoleProxy
             consoleProxyDao.getProxyListInStates(dcId, State.Starting, 
State.Running, State.Stopping,
                 State.Stopped, State.Migrating, State.Shutdown, State.Unknown);
 
-        String value = 
configurationDao.getValue(Config.ConsoleProxyLaunchMax.key());
-        int launchLimit = NumbersUtil.parseInt(value, 10);
+        int launchLimit = ConsoleProxyLaunchMax.valueIn(dcId);
         return l.size() < launchLimit;
     }
 
@@ -997,8 +998,8 @@ public class ConsoleProxyManagerImpl extends ManagerBase 
implements ConsoleProxy
                 Transaction.execute(new TransactionCallbackNoReturn() {
                     @Override
                     public void doInTransactionWithoutResult(TransactionStatus 
status) {
-                        
configurationDao.update(Config.ConsoleProxyManagementLastState.key(), 
Config.ConsoleProxyManagementLastState.getCategory(), lastState.toString());
-                        
configurationDao.update(Config.ConsoleProxyManagementState.key(), 
Config.ConsoleProxyManagementState.getCategory(), state.toString());
+                        
configurationDao.update(ConsoleProxyManagementLastState.key(), 
ConsoleProxyManagementLastState.category(), lastState.toString());
+                        
configurationDao.update(ConsoleProxyServiceManagementState.key(), 
ConsoleProxyServiceManagementState.category(), state.toString());
                     }
                 });
             }
@@ -1009,8 +1010,8 @@ public class ConsoleProxyManagerImpl extends ManagerBase 
implements ConsoleProxy
 
     @Override
     public ConsoleProxyManagementState getManagementState() {
-        String configKey = Config.ConsoleProxyManagementState.key();
-        String value = configurationDao.getValue(configKey);
+        String configKey = ConsoleProxyServiceManagementState.key();
+        String value = ConsoleProxyServiceManagementState.value();
 
         if (value != null) {
             ConsoleProxyManagementState state = 
ConsoleProxyManagementState.valueOf(value);
@@ -1035,7 +1036,7 @@ public class ConsoleProxyManagerImpl extends ManagerBase 
implements ConsoleProxy
             }
 
             if (lastState != state) {
-                
configurationDao.update(Config.ConsoleProxyManagementState.key(), 
Config.ConsoleProxyManagementState.getCategory(), lastState.toString());
+                
configurationDao.update(ConsoleProxyServiceManagementState.key(), 
ConsoleProxyServiceManagementState.category(), lastState.toString());
             }
         } catch (Exception e) {
             logger.error(String.format("Unable to resume last management state 
due to [%s].", e.getMessage()), e);
@@ -1043,8 +1044,8 @@ public class ConsoleProxyManagerImpl extends ManagerBase 
implements ConsoleProxy
     }
 
     private ConsoleProxyManagementState getLastManagementState() {
-        String configKey = Config.ConsoleProxyManagementLastState.key();
-        String value = configurationDao.getValue(configKey);
+        String configKey = ConsoleProxyManagementLastState.key();
+        String value = ConsoleProxyManagementLastState.value();
 
         if (value != null) {
             ConsoleProxyManagementState state = 
ConsoleProxyManagementState.valueOf(value);
@@ -1132,23 +1133,25 @@ public class ConsoleProxyManagerImpl extends 
ManagerBase implements ConsoleProxy
         }
 
         Map<String, String> configs = 
configurationDao.getConfiguration("management-server", params);
-
+        for (Map.Entry<String, String> entry : configs.entrySet()) {
+            logger.info("PEARL - Configure console proxy manager : " + 
entry.getKey() + " = " + entry.getValue());
+        }
         String value = configs.get(ConsoleProxySslEnabled.key());
         if (value != null && value.equalsIgnoreCase("true")) {
             sslEnabled = true;
         }
 
-        consoleProxyUrlDomain = 
configs.get(Config.ConsoleProxyUrlDomain.key());
+        consoleProxyUrlDomain = ConsoleProxyUrlDomain.value();
         if( sslEnabled && (consoleProxyUrlDomain == null || 
consoleProxyUrlDomain.isEmpty())) {
             logger.warn("Empty console proxy domain, explicitly disabling 
SSL");
             sslEnabled = false;
         }
 
-        value = configs.get(Config.ConsoleProxyCapacityScanInterval.key());
+        value = ConsoleProxyCapacityScanInterval.value();
         capacityScanInterval = NumbersUtil.parseLong(value, 
DEFAULT_CAPACITY_SCAN_INTERVAL_IN_MILLISECONDS);
 
         capacityPerProxy = 
NumbersUtil.parseInt(configs.get("consoleproxy.session.max"), 
DEFAULT_PROXY_CAPACITY);
-        standbyCapacity = 
NumbersUtil.parseInt(configs.get("consoleproxy.capacity.standby"), 
DEFAULT_STANDBY_CAPACITY);
+        standbyCapacity = 
NumbersUtil.parseInt(ConsoleProxyCapacityStandby.value(), 
DEFAULT_STANDBY_CAPACITY);
         proxySessionTimeoutValue = 
NumbersUtil.parseInt(configs.get("consoleproxy.session.timeout"), 
DEFAULT_PROXY_SESSION_TIMEOUT);
 
         value = configs.get("consoleproxy.port");
@@ -1156,8 +1159,8 @@ public class ConsoleProxyManagerImpl extends ManagerBase 
implements ConsoleProxy
             consoleProxyPort = NumbersUtil.parseInt(value, 
ConsoleProxyManager.DEFAULT_PROXY_VNC_PORT);
         }
 
-        value = configs.get(Config.ConsoleProxyDisableRpFilter.key());
-        if (value != null && value.equalsIgnoreCase("true")) {
+        Boolean rpFilterDisabled = ConsoleProxyDisableRpFilter.value();
+        if (Boolean.TRUE.equals(rpFilterDisabled)) {
             disableRpFilter = true;
         }
 
@@ -1255,10 +1258,12 @@ public class ConsoleProxyManagerImpl extends 
ManagerBase implements ConsoleProxy
         if (sslEnabled) {
             buf.append(" premium=true");
         }
-        buf.append(" zone=").append(dest.getDataCenter().getId());
+        Long datacenterId = dest.getDataCenter().getId();
+        buf.append(" zone=").append(datacenterId);
         buf.append(" pod=").append(dest.getPod().getId());
         buf.append(" guid=Proxy.").append(profile.getId());
         buf.append(" proxy_vm=").append(profile.getId());
+        disableRpFilter = ConsoleProxyDisableRpFilter.valueIn(datacenterId);
         if (disableRpFilter) {
             buf.append(" disable_rp_filter=true");
         }
diff --git 
a/server/src/test/java/com/cloud/configuration/ConfigurationManagerImplTest.java
 
b/server/src/test/java/com/cloud/configuration/ConfigurationManagerImplTest.java
index 9facfc04b41..1ffd7967eec 100644
--- 
a/server/src/test/java/com/cloud/configuration/ConfigurationManagerImplTest.java
+++ 
b/server/src/test/java/com/cloud/configuration/ConfigurationManagerImplTest.java
@@ -850,30 +850,6 @@ public class ConfigurationManagerImplTest {
         Assert.assertEquals(expectedResult, result);
     }
 
-    @Test
-    public void shouldValidateConfigRangeTestValueIsNullReturnFalse() {
-        boolean result = 
configurationManagerImplSpy.shouldValidateConfigRange(Config.ConsoleProxyUrlDomain.name(),
 null, Config.ConsoleProxyUrlDomain);
-        Assert.assertFalse(result);
-    }
-
-    @Test
-    public void shouldValidateConfigRangeTestConfigIsNullReturnFalse() {
-        boolean result = 
configurationManagerImplSpy.shouldValidateConfigRange("", "test", null);
-        Assert.assertFalse(result);
-    }
-
-    @Test
-    public void 
shouldValidateConfigRangeTestConfigDoesNotHaveARangeReturnFalse() {
-        boolean result = 
configurationManagerImplSpy.shouldValidateConfigRange(Config.ConsoleProxySessionMax.name(),
 "test", Config.ConsoleProxySessionMax);
-        Assert.assertFalse(result);
-    }
-
-    @Test
-    public void 
shouldValidateConfigRangeTestValueIsNotNullAndConfigHasRangeReturnTrue() {
-        boolean result = 
configurationManagerImplSpy.shouldValidateConfigRange(Config.ConsoleProxySessionMax.name(),
 "test", Config.ConsoleProxyUrlDomain);
-        Assert.assertTrue(result);
-    }
-
     @Test
     public void testResetConfigurations() {
         Long poolId = 1L;
diff --git 
a/services/secondary-storage/controller/src/main/java/org/apache/cloudstack/secondarystorage/PremiumSecondaryStorageManagerImpl.java
 
b/services/secondary-storage/controller/src/main/java/org/apache/cloudstack/secondarystorage/PremiumSecondaryStorageManagerImpl.java
index f4b72e53967..8c2a6bbd9a3 100644
--- 
a/services/secondary-storage/controller/src/main/java/org/apache/cloudstack/secondarystorage/PremiumSecondaryStorageManagerImpl.java
+++ 
b/services/secondary-storage/controller/src/main/java/org/apache/cloudstack/secondarystorage/PremiumSecondaryStorageManagerImpl.java
@@ -28,6 +28,7 @@ import javax.naming.ConfigurationException;
 
 import com.cloud.agent.api.Command;
 import com.cloud.configuration.Config;
+import com.cloud.consoleproxy.ConsoleProxyManager;
 import com.cloud.host.Host;
 import com.cloud.host.HostVO;
 import com.cloud.host.Status;
@@ -121,8 +122,8 @@ public class PremiumSecondaryStorageManagerImpl extends 
SecondaryStorageManagerI
         boolean suspendAutoLoading = !reserveStandbyCapacity();
         if (!suspendAutoLoading) {
             // this is a hacking, has nothing to do with console proxy, it is 
just a flag that primary storage is being under maintenance mode
-            String restart = _configDao.getValue("consoleproxy.restart");
-            if (restart != null && restart.equalsIgnoreCase("false")) {
+            Boolean restart = 
ConsoleProxyManager.ConsoleProxyRestart.valueIn(dataCenterId);
+            if (Boolean.FALSE.equals(restart)) {
                 logger.debug("Capacity scan disabled purposefully, 
consoleproxy.restart = false. This happens when the primarystorage is in 
maintenance mode");
                 suspendAutoLoading = true;
             }

Reply via email to