Return-Path: X-Original-To: apmail-cloudstack-commits-archive@www.apache.org Delivered-To: apmail-cloudstack-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id D823117E11 for ; Thu, 7 May 2015 14:04:58 +0000 (UTC) Received: (qmail 44290 invoked by uid 500); 7 May 2015 14:04:41 -0000 Delivered-To: apmail-cloudstack-commits-archive@cloudstack.apache.org Received: (qmail 44091 invoked by uid 500); 7 May 2015 14:04:41 -0000 Mailing-List: contact commits-help@cloudstack.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cloudstack.apache.org Delivered-To: mailing list commits@cloudstack.apache.org Received: (qmail 42885 invoked by uid 99); 7 May 2015 14:04:40 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 07 May 2015 14:04:40 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 6C395E4425; Thu, 7 May 2015 14:04:40 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: dahn@apache.org To: commits@cloudstack.apache.org Date: Thu, 07 May 2015 14:05:12 -0000 Message-Id: In-Reply-To: <178ef3558c1541d6aff754cc5de87157@git.apache.org> References: <178ef3558c1541d6aff754cc5de87157@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [34/50] [abbrv] git commit: updated refs/heads/master to 1c408de CLOUDSTACK-6139: Fix regression, allow zone level systemvm localstorage config >From b3f18e7d74a0f09db9977554a6c7648b7edbc33d, the zone level systemvm local storage setting never worked as it needed to be moved to config depot. Signed-off-by: Rohit Yadav Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/279efb04 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/279efb04 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/279efb04 Branch: refs/heads/master Commit: 279efb04324249a2e1a5487b58b40a723baf4600 Parents: fb0bfd5 Author: Rohit Yadav Authored: Fri May 1 15:24:04 2015 +0200 Committer: Rohit Yadav Committed: Fri May 1 15:24:53 2015 +0200 ---------------------------------------------------------------------- api/src/com/cloud/dc/DataCenter.java | 10 +++++-- .../lb/ElasticLoadBalancerManagerImpl.java | 2 +- .../lb/InternalLoadBalancerVMManagerImpl.java | 2 +- server/src/com/cloud/configuration/Config.java | 18 ------------ .../configuration/ConfigurationManagerImpl.java | 4 +-- .../consoleproxy/ConsoleProxyManagerImpl.java | 4 +-- .../deploy/DeploymentPlanningManagerImpl.java | 31 +++++++++++++------- .../VirtualNetworkApplianceManagerImpl.java | 2 +- .../SecondaryStorageManagerImpl.java | 2 +- 9 files changed, 36 insertions(+), 39 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/279efb04/api/src/com/cloud/dc/DataCenter.java ---------------------------------------------------------------------- diff --git a/api/src/com/cloud/dc/DataCenter.java b/api/src/com/cloud/dc/DataCenter.java index 4ee95e6..6cd054e 100644 --- a/api/src/com/cloud/dc/DataCenter.java +++ b/api/src/com/cloud/dc/DataCenter.java @@ -16,18 +16,22 @@ // under the License. package com.cloud.dc; -import java.util.Map; - +import com.cloud.org.Grouping; import org.apache.cloudstack.acl.InfrastructureEntity; import org.apache.cloudstack.api.Identity; import org.apache.cloudstack.api.InternalIdentity; +import org.apache.cloudstack.framework.config.ConfigKey; -import com.cloud.org.Grouping; +import java.util.Map; /** * */ public interface DataCenter extends InfrastructureEntity, Grouping, Identity, InternalIdentity { + public static final String SystemVMUseLocalStorageCK = "system.vm.use.local.storage"; + public static final ConfigKey UseSystemVMLocalStorage = new ConfigKey(Boolean.class, SystemVMUseLocalStorageCK, "Advanced", "false", + "Indicates whether to use local storage pools or shared storage pools for system VMs.", true, ConfigKey.Scope.Zone, null); + public enum NetworkType { Basic, Advanced, } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/279efb04/plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java ---------------------------------------------------------------------- diff --git a/plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java b/plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java index 0415bae..d853299 100644 --- a/plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java +++ b/plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java @@ -290,7 +290,7 @@ public class ElasticLoadBalancerManagerImpl extends ManagerBase implements Elast } _mgmtCidr = _configDao.getValue(Config.ManagementNetwork.key()); - boolean useLocalStorage = Boolean.parseBoolean(configs.get(Config.SystemVMUseLocalStorage.key())); + boolean useLocalStorage = Boolean.parseBoolean(configs.get(DataCenter.SystemVMUseLocalStorageCK)); _elasticLbVmRamSize = NumbersUtil.parseInt(configs.get(Config.ElasticLoadBalancerVmMemory.key()), DEFAULT_ELB_VM_RAMSIZE); _elasticLbvmCpuMHz = NumbersUtil.parseInt(configs.get(Config.ElasticLoadBalancerVmCpuMhz.key()), DEFAULT_ELB_VM_CPU_MHZ); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/279efb04/plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java ---------------------------------------------------------------------- diff --git a/plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java b/plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java index 8b5b3e0..cf77150 100644 --- a/plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java +++ b/plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java @@ -376,7 +376,7 @@ public class InternalLoadBalancerVMManagerImpl extends ManagerBase implements In //if offering wasn't set, try to get the default one if (_internalLbVmOfferingId == 0L) { - boolean useLocalStorage = Boolean.parseBoolean(configs.get(Config.SystemVMUseLocalStorage.key())); + boolean useLocalStorage = Boolean.parseBoolean(configs.get(DataCenter.SystemVMUseLocalStorageCK)); ServiceOfferingVO newOff = new ServiceOfferingVO("System Offering For Internal LB VM", 1, InternalLoadBalancerVMManager.DEFAULT_INTERNALLB_VM_RAMSIZE, InternalLoadBalancerVMManager.DEFAULT_INTERNALLB_VM_CPU_MHZ, null, null, true, null, http://git-wip-us.apache.org/repos/asf/cloudstack/blob/279efb04/server/src/com/cloud/configuration/Config.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/configuration/Config.java b/server/src/com/cloud/configuration/Config.java index a6089fc..fc529b5 100755 --- a/server/src/com/cloud/configuration/Config.java +++ b/server/src/com/cloud/configuration/Config.java @@ -685,14 +685,6 @@ public enum Config { "The mount point on the Management Server for Secondary Storage.", null), // UpgradeURL("Advanced", ManagementServer.class, String.class, "upgrade.url", "http://example.com:8080/client/agent/update.zip", "The upgrade URL is the URL of the management server that agents will connect to in order to automatically upgrade.", null), - SystemVMUseLocalStorage( - "Advanced", - ManagementServer.class, - Boolean.class, - "system.vm.use.local.storage", - "false", - "Indicates whether to use local storage pools or shared storage pools for system VMs.", - null, ConfigKey.Scope.Zone.toString()), SystemVMAutoReserveCapacity( "Advanced", ManagementServer.class, @@ -1981,16 +1973,6 @@ public enum Config { VMSnapshotCreateWait("Advanced", VMSnapshotManager.class, Integer.class, "vmsnapshot.create.wait", "1800", "In second, timeout for create vm snapshot", null), CloudDnsName("Advanced", ManagementServer.class, String.class, "cloud.dns.name", null, "DNS name of the cloud for the GSLB service", null), - - BlacklistedRoutes( - "Advanced", - VpcManager.class, - String.class, - "blacklisted.routes", - null, - "Routes that are blacklisted, can not be used for Static Routes creation for the VPC Private Gateway", - "routes", - ConfigKey.Scope.Zone.toString()), InternalLbVmServiceOfferingId( "Advanced", ManagementServer.class, http://git-wip-us.apache.org/repos/asf/cloudstack/blob/279efb04/server/src/com/cloud/configuration/ConfigurationManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java index 5c97af7..89027c1 100755 --- a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java +++ b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java @@ -570,11 +570,11 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati } catch (Throwable e) { throw new CloudRuntimeException("Failed to update storage.network.device2 in host_details due to exception ", e); } - } else if (Config.SystemVMUseLocalStorage.key().equalsIgnoreCase(name)) { + } else if (DataCenter.SystemVMUseLocalStorageCK.equalsIgnoreCase(name)) { if (s_logger.isDebugEnabled()) { s_logger.debug("Config 'system.vm.use.local.storage' changed to value:" + value + ", need to update System VM offerings"); } - boolean useLocalStorage = Boolean.parseBoolean(_configDao.getValue(Config.SystemVMUseLocalStorage.key())); + boolean useLocalStorage = Boolean.parseBoolean(_configDao.getValue(DataCenter.SystemVMUseLocalStorageCK)); ServiceOfferingVO serviceOffering = _serviceOfferingDao.findByName(ServiceOffering.consoleProxyDefaultOffUniqueName); if (serviceOffering != null) { serviceOffering.setUseLocalStorage(useLocalStorage); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/279efb04/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java b/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java index 2db4be4..3fd3543 100755 --- a/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java +++ b/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java @@ -1208,7 +1208,7 @@ public class ConsoleProxyManagerImpl extends ManagerBase implements ConsoleProxy _disableRpFilter = true; } - value = configs.get(Config.SystemVMUseLocalStorage.key()); + value = configs.get(DataCenter.SystemVMUseLocalStorageCK); if (value != null && value.equalsIgnoreCase("true")) { _useLvm = true; } @@ -1238,7 +1238,7 @@ public class ConsoleProxyManagerImpl extends ManagerBase implements ConsoleProxy _itMgr.registerGuru(VirtualMachine.Type.ConsoleProxy, this); - boolean useLocalStorage = Boolean.parseBoolean(configs.get(Config.SystemVMUseLocalStorage.key())); + boolean useLocalStorage = Boolean.parseBoolean(configs.get(DataCenter.SystemVMUseLocalStorageCK)); //check if there is a default service offering configured String cpvmSrvcOffIdStr = configs.get(Config.ConsoleProxyServiceOffering.key()); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/279efb04/server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java b/server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java index 7986b3a..c290e9c 100755 --- a/server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java +++ b/server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java @@ -46,6 +46,8 @@ import org.apache.cloudstack.engine.subsystem.api.storage.DataStore; import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager; import org.apache.cloudstack.engine.subsystem.api.storage.StoragePoolAllocator; import org.apache.cloudstack.framework.config.dao.ConfigurationDao; +import org.apache.cloudstack.framework.config.ConfigKey; +import org.apache.cloudstack.framework.config.Configurable; import org.apache.cloudstack.framework.messagebus.MessageBus; import org.apache.cloudstack.framework.messagebus.MessageSubscriber; import org.apache.cloudstack.managed.context.ManagedContextTimerTask; @@ -132,7 +134,7 @@ import com.cloud.vm.dao.VMInstanceDao; @Local(value = {DeploymentPlanningManager.class}) public class DeploymentPlanningManagerImpl extends ManagerBase implements DeploymentPlanningManager, Manager, Listener, -StateListener { +StateListener, Configurable { private static final Logger s_logger = Logger.getLogger(DeploymentPlanningManagerImpl.class); @Inject @@ -200,8 +202,6 @@ StateListener { protected StoragePoolHostDao _poolHostDao; @Inject - protected DataCenterDao _zoneDao; - @Inject protected VolumeDao _volsDao; @Inject protected CapacityManager _capacityMgr; @@ -755,6 +755,16 @@ StateListener { return false; } + @Override + public String getConfigComponentName() { + return DeploymentPlanningManagerImpl.class.getSimpleName(); + } + + @Override + public ConfigKey[] getConfigKeys() { + return new ConfigKey[] {DataCenter.UseSystemVMLocalStorage}; + } + class HostReservationReleaseChecker extends ManagedContextTimerTask { @Override protected void runInContext() { @@ -1283,20 +1293,21 @@ StateListener { DiskProfile diskProfile = new DiskProfile(toBeCreated, diskOffering, vmProfile.getHypervisorType()); boolean useLocalStorage = false; if (vmProfile.getType() != VirtualMachine.Type.User) { - String ssvmUseLocalStorage = _configDao.getValue(Config.SystemVMUseLocalStorage.key()); - - DataCenterVO zone = _zoneDao.findById(plan.getDataCenterId()); - + DataCenterVO zone = _dcDao.findById(plan.getDataCenterId()); // It should not happen to have a "null" zone here. There can be NO instance if there is NO zone, // so this part of the code would never be reached if no zone has been created. - // // Added the check and the comment just to make it clear. boolean zoneUsesLocalStorage = zone != null ? zone.isLocalStorageEnabled() : false; - + boolean ssvmUseLocalStorage = DataCenter.UseSystemVMLocalStorage.value(); + if (zone != null) { + ssvmUseLocalStorage = DataCenter.UseSystemVMLocalStorage.valueIn(plan.getDataCenterId()); + } + s_logger.debug("Checking if we need local storage for systemvms is needed for zone id=" + plan.getDataCenterId() + " with system.vm.use.local.storage=" + ssvmUseLocalStorage); // Local storage is used for the NON User VMs if, and only if, the Zone is marked to use local storage AND // the global settings (ssvmUseLocalStorage) is set to true. Otherwise, the global settings won't be applied. - if (ssvmUseLocalStorage.equalsIgnoreCase("true") && zoneUsesLocalStorage) { + if (ssvmUseLocalStorage && zoneUsesLocalStorage) { useLocalStorage = true; + s_logger.debug("SystemVMs will use local storage for zone id=" + plan.getDataCenterId()); } } else { useLocalStorage = diskOffering.getUseLocalStorage(); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/279efb04/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java index add6aa0..c09634f 100755 --- a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java +++ b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java @@ -744,7 +744,7 @@ VirtualMachineGuru, Listener, Configurable, StateListener