You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by su...@apache.org on 2024/07/10 07:00:52 UTC

(cloudstack) branch 4.19 updated: Copy on pool host when storage pool has ScopeType.HOST (#9356)

This is an automated email from the ASF dual-hosted git repository.

sureshanaparti pushed a commit to branch 4.19
in repository https://gitbox.apache.org/repos/asf/cloudstack.git


The following commit(s) were added to refs/heads/4.19 by this push:
     new 32cc1d46a5c Copy on pool host when storage pool has ScopeType.HOST (#9356)
32cc1d46a5c is described below

commit 32cc1d46a5c25adfae2e31aba463528672cd285b
Author: Rene Glover <rg...@att.com>
AuthorDate: Wed Jul 10 02:00:47 2024 -0500

    Copy on pool host when storage pool has ScopeType.HOST (#9356)
---
 .../storage/motion/StorageSystemDataMotionStrategy.java | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/engine/storage/datamotion/src/main/java/org/apache/cloudstack/storage/motion/StorageSystemDataMotionStrategy.java b/engine/storage/datamotion/src/main/java/org/apache/cloudstack/storage/motion/StorageSystemDataMotionStrategy.java
index f3e6049c792..c83d52c3d2b 100644
--- a/engine/storage/datamotion/src/main/java/org/apache/cloudstack/storage/motion/StorageSystemDataMotionStrategy.java
+++ b/engine/storage/datamotion/src/main/java/org/apache/cloudstack/storage/motion/StorageSystemDataMotionStrategy.java
@@ -103,6 +103,7 @@ import com.cloud.resource.ResourceState;
 import com.cloud.storage.DataStoreRole;
 import com.cloud.storage.DiskOfferingVO;
 import com.cloud.storage.MigrationOptions;
+import com.cloud.storage.ScopeType;
 import com.cloud.storage.Snapshot;
 import com.cloud.storage.SnapshotVO;
 import com.cloud.storage.Storage;
@@ -921,11 +922,17 @@ public class StorageSystemDataMotionStrategy implements DataMotionStrategy {
 
         HostVO hostVO;
 
-        if (srcStoragePoolVO.getClusterId() != null) {
-            hostVO = getHostInCluster(srcStoragePoolVO.getClusterId());
-        }
-        else {
-            hostVO = getHost(destVolumeInfo.getDataCenterId(), HypervisorType.KVM, false);
+        // if either source or destination is a HOST-scoped storage pool, the migration MUST be performed on that host
+        if (ScopeType.HOST.equals(srcVolumeInfo.getDataStore().getScope().getScopeType())) {
+            hostVO = _hostDao.findById(srcVolumeInfo.getDataStore().getScope().getScopeId());
+        } else if (ScopeType.HOST.equals(destVolumeInfo.getDataStore().getScope().getScopeType())) {
+            hostVO = _hostDao.findById(destVolumeInfo.getDataStore().getScope().getScopeId());
+        } else {
+            if (srcStoragePoolVO.getClusterId() != null) {
+                hostVO = getHostInCluster(srcStoragePoolVO.getClusterId());
+            } else {
+                hostVO = getHost(destVolumeInfo.getDataCenterId(), HypervisorType.KVM, false);
+            }
         }
 
         return hostVO;