You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by da...@apache.org on 2014/05/06 13:37:52 UTC

git commit: updated refs/heads/4.4-forward to 31b3f0a

Repository: cloudstack
Updated Branches:
  refs/heads/4.4-forward 6598167be -> 31b3f0a5c


CLOUDSTACK-6139 router vm on local storage


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/31b3f0a5
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/31b3f0a5
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/31b3f0a5

Branch: refs/heads/4.4-forward
Commit: 31b3f0a5ce2279ec44a091e5383cb4bbc81245ae
Parents: 6598167
Author: wrodrigues <wr...@schubergphilis.com>
Authored: Tue Apr 8 13:54:54 2014 +0200
Committer: Daan Hoogland <da...@onecht.net>
Committed: Tue May 6 13:37:24 2014 +0200

----------------------------------------------------------------------
 server/src/com/cloud/configuration/Config.java       |  2 +-
 .../cloud/deploy/DeploymentPlanningManagerImpl.java  | 15 ++++++++++++++-
 2 files changed, 15 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/31b3f0a5/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 e45291d..bf72dc2 100755
--- a/server/src/com/cloud/configuration/Config.java
+++ b/server/src/com/cloud/configuration/Config.java
@@ -701,7 +701,7 @@ public enum Config {
             "system.vm.use.local.storage",
             "false",
             "Indicates whether to use local storage pools or shared storage pools for system VMs.",
-            null),
+            null, ConfigKey.Scope.Zone.toString()),
     SystemVMAutoReserveCapacity(
             "Advanced",
             ManagementServer.class,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/31b3f0a5/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 f954615..c2a5ff5 100644
--- a/server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java
+++ b/server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java
@@ -199,6 +199,8 @@ public class DeploymentPlanningManagerImpl extends ManagerBase implements Deploy
     protected StoragePoolHostDao _poolHostDao;
 
     @Inject
+    protected DataCenterDao _zoneDao;
+    @Inject
     protected VolumeDao _volsDao;
     @Inject
     protected CapacityManager _capacityMgr;
@@ -1271,7 +1273,18 @@ public class DeploymentPlanningManagerImpl extends ManagerBase implements Deploy
             boolean useLocalStorage = false;
             if (vmProfile.getType() != VirtualMachine.Type.User) {
                 String ssvmUseLocalStorage = _configDao.getValue(Config.SystemVMUseLocalStorage.key());
-                if (ssvmUseLocalStorage.equalsIgnoreCase("true")) {
+
+                DataCenterVO zone = _zoneDao.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;
+
+                // 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) {
                     useLocalStorage = true;
                 }
             } else {