From b9d4dd0ffa389b2aef23b97985a1289f19342ae7 Mon Sep 17 00:00:00 2001 From: Edison Su Date: Thu, 20 Jun 2013 16:53:15 -0700 Subject: [PATCH] CLOUDSTACK-2947: fix create template from snapshot, in case of mix zone-wide/cluster wide primary storage --- client/tomcatconf/log4j-cloud.xml.in | 4 ++++ server/src/com/cloud/storage/StorageManagerImpl.java | 12 +++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/client/tomcatconf/log4j-cloud.xml.in b/client/tomcatconf/log4j-cloud.xml.in index 0e7f004eb80..a0219829956 100755 --- a/client/tomcatconf/log4j-cloud.xml.in +++ b/client/tomcatconf/log4j-cloud.xml.in @@ -123,6 +123,10 @@ under the License. + + + + diff --git a/server/src/com/cloud/storage/StorageManagerImpl.java b/server/src/com/cloud/storage/StorageManagerImpl.java index 655eaeab2b1..1b5fcc56284 100755 --- a/server/src/com/cloud/storage/StorageManagerImpl.java +++ b/server/src/com/cloud/storage/StorageManagerImpl.java @@ -399,9 +399,15 @@ public class StorageManagerImpl extends ManagerBase implements StorageManager, C if (pool.getStatus() != StoragePoolStatus.Up) { continue; } - ClusterVO cluster = _clusterDao.findById(pool.getClusterId()); - if (type == cluster.getHypervisorType()) { - retPools.add(pool); + if (pool.getScope() == ScopeType.ZONE) { + if (pool.getHypervisor() != null && pool.getHypervisor() == type) { + retPools.add(pool); + } + } else { + ClusterVO cluster = _clusterDao.findById(pool.getClusterId()); + if (type == cluster.getHypervisorType()) { + retPools.add(pool); + } } } Collections.shuffle(retPools);