Updated Branches:
  refs/heads/4.2 6c4082301 -> bedabf07a

CLOUDSTACK-4129: select SSVM based on ImageCache data store instead of
region wide image store.


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

Branch: refs/heads/4.2
Commit: bedabf07a0786c1974b106237994b6654ae4c0c1
Parents: 6c40823
Author: Min Chen <min.c...@citrix.com>
Authored: Fri Aug 9 16:27:32 2013 -0700
Committer: Min Chen <min.c...@citrix.com>
Committed: Fri Aug 9 16:29:16 2013 -0700

----------------------------------------------------------------------
 .../storage/endpoint/DefaultEndPointSelector.java           | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/bedabf07/engine/storage/src/org/apache/cloudstack/storage/endpoint/DefaultEndPointSelector.java
----------------------------------------------------------------------
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 d2ddfd4..0cd8ad3 100644
--- 
a/engine/storage/src/org/apache/cloudstack/storage/endpoint/DefaultEndPointSelector.java
+++ 
b/engine/storage/src/org/apache/cloudstack/storage/endpoint/DefaultEndPointSelector.java
@@ -166,7 +166,14 @@ public class DefaultEndPointSelector implements 
EndPointSelector {
         if (moveBetweenPrimaryImage(srcStore, destStore)) {
             return findEndPointForImageMove(srcStore, destStore);
         } else if (moveBetweenCacheAndImage(srcStore, destStore)) {
-            EndPoint ep = findEndpointForImageStorage(destStore);
+            // pick ssvm based on image cache dc
+            DataStore selectedStore = null;
+            if (srcStore.getRole() == DataStoreRole.ImageCache) {
+                selectedStore = srcStore;
+            } else {
+                selectedStore = destStore;
+            }
+            EndPoint ep = findEndpointForImageStorage(selectedStore);
             return ep;
         } else if (moveBetweenImages(srcStore, destStore)) {
             EndPoint ep = findEndpointForImageStorage(destStore);

Reply via email to