From 3cd9dee1db21794f19fff3699ed79115bfe02ecc Mon Sep 17 00:00:00 2001 From: Min Chen Date: Thu, 6 Feb 2014 15:33:05 -0800 Subject: [PATCH] CLOUDSTACK-6046:CreateVolume from snapshot is failing with S3 as secondary storage and zone-wide primary storage.(cherry picked from commit 900c51103ab1e29b86ea5f76cb73c72b3de51db7) Signed-off-by: Animesh Chaturvedi --- .../cloudstack/storage/motion/AncientDataMotionStrategy.java | 2 +- .../cloudstack/storage/endpoint/DefaultEndPointSelector.java | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/engine/storage/datamotion/src/org/apache/cloudstack/storage/motion/AncientDataMotionStrategy.java b/engine/storage/datamotion/src/org/apache/cloudstack/storage/motion/AncientDataMotionStrategy.java index 30edf68fb98..f2ed6679edd 100644 --- a/engine/storage/datamotion/src/org/apache/cloudstack/storage/motion/AncientDataMotionStrategy.java +++ b/engine/storage/datamotion/src/org/apache/cloudstack/storage/motion/AncientDataMotionStrategy.java @@ -249,7 +249,7 @@ AncientDataMotionStrategy implements DataMotionStrategy { if (srcData.getDataStore().getRole() == DataStoreRole.Primary) { ep = selector.select(volObj); } else { - ep = selector.select(snapObj, volObj); + ep = selector.select(srcData, volObj); } CopyCommand cmd = new CopyCommand(srcData.getTO(), volObj.getTO(), _createVolumeFromSnapshotWait, VirtualMachineManager.ExecuteInSequence.value()); diff --git a/engine/storage/src/org/apache/cloudstack/storage/endpoint/DefaultEndPointSelector.java b/engine/storage/src/org/apache/cloudstack/storage/endpoint/DefaultEndPointSelector.java index 967251f329c..39bc8399b80 100644 --- a/engine/storage/src/org/apache/cloudstack/storage/endpoint/DefaultEndPointSelector.java +++ b/engine/storage/src/org/apache/cloudstack/storage/endpoint/DefaultEndPointSelector.java @@ -167,10 +167,11 @@ public class DefaultEndPointSelector implements EndPointSelector { poolId = destStore.getId(); } else { // if both are zone scope - selectedScope = srcScope; if (srcStore.getRole() == DataStoreRole.Primary) { + selectedScope = srcScope; poolId = srcStore.getId(); } else if (destStore.getRole() == DataStoreRole.Primary) { + selectedScope = destScope; poolId = destStore.getId(); } }