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; }