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

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

commit 89dd4fd1d7f1ad2526cd352c50016f3553377c54
Author: Harikrishna Patnala <harikrishna.patn...@gmail.com>
AuthorDate: Tue Mar 28 08:07:15 2023 +0530

    code refactoring and some changes
---
 .../kvm/resource/wrapper/LibvirtMigrateVolumeCommandWrapper.java    | 6 +++---
 .../storage/datastore/driver/ScaleIOPrimaryDataStoreDriver.java     | 2 +-
 server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java    | 4 ++--
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git 
a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtMigrateVolumeCommandWrapper.java
 
b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtMigrateVolumeCommandWrapper.java
index a31cb765b59..bfc77ddbb29 100644
--- 
a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtMigrateVolumeCommandWrapper.java
+++ 
b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtMigrateVolumeCommandWrapper.java
@@ -32,13 +32,13 @@ import com.cloud.hypervisor.kvm.storage.KVMStoragePool;
 import com.cloud.hypervisor.kvm.storage.KVMStoragePoolManager;
 import com.cloud.resource.CommandWrapper;
 import com.cloud.resource.ResourceWrapper;
+import com.cloud.storage.Storage;
 
 import java.io.File;
 import java.util.List;
 import java.util.Map;
 import java.util.UUID;
 
-import com.cloud.storage.Storage;
 import org.apache.cloudstack.storage.datastore.client.ScaleIOGatewayClient;
 import org.apache.cloudstack.storage.datastore.util.ScaleIOUtil;
 import org.apache.cloudstack.storage.to.PrimaryDataStoreTO;
@@ -66,7 +66,7 @@ public final class LibvirtMigrateVolumeCommandWrapper extends 
CommandWrapper<Mig
 
         MigrateVolumeAnswer answer;
         if 
(srcPrimaryDataStore.getPoolType().equals(Storage.StoragePoolType.PowerFlex)) {
-            answer = migrateVolumeInternal(command, libvirtComputingResource);
+            answer = migratePowerFlexVolume(command, libvirtComputingResource);
         } else {
             answer = migrateRegularVolume(command, libvirtComputingResource);
         }
@@ -74,7 +74,7 @@ public final class LibvirtMigrateVolumeCommandWrapper extends 
CommandWrapper<Mig
         return answer;
     }
 
-    private MigrateVolumeAnswer migrateVolumeInternal (final 
MigrateVolumeCommand command, final LibvirtComputingResource 
libvirtComputingResource) {
+    private MigrateVolumeAnswer migratePowerFlexVolume(final 
MigrateVolumeCommand command, final LibvirtComputingResource 
libvirtComputingResource) {
 
         // Source Details
         VolumeObjectTO srcVolumeObjectTO = 
(VolumeObjectTO)command.getSrcData();
diff --git 
a/plugins/storage/volume/scaleio/src/main/java/org/apache/cloudstack/storage/datastore/driver/ScaleIOPrimaryDataStoreDriver.java
 
b/plugins/storage/volume/scaleio/src/main/java/org/apache/cloudstack/storage/datastore/driver/ScaleIOPrimaryDataStoreDriver.java
index 9af900f5ee5..5d6d6f372ac 100644
--- 
a/plugins/storage/volume/scaleio/src/main/java/org/apache/cloudstack/storage/datastore/driver/ScaleIOPrimaryDataStoreDriver.java
+++ 
b/plugins/storage/volume/scaleio/src/main/java/org/apache/cloudstack/storage/datastore/driver/ScaleIOPrimaryDataStoreDriver.java
@@ -762,7 +762,7 @@ public class ScaleIOPrimaryDataStoreDriver implements 
PrimaryDataStoreDriver {
     }
 
     private Answer copyVolume(DataObject srcData, DataObject destData, Host 
destHost) {
-        // Volume migration within same PowerFlex/ScaleIO cluster (with same 
System ID)
+        // Volume migration across different PowerFlex/ScaleIO clusters
         final long srcVolumeId = srcData.getId();
         DataStore srcStore = srcData.getDataStore();
         Map<String, String> srcDetails = getVolumeDetails((VolumeInfo) 
srcData, srcStore);
diff --git a/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java 
b/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java
index 650627793e4..e554241aa4d 100644
--- a/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java
+++ b/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java
@@ -3027,7 +3027,7 @@ public class VolumeApiServiceImpl extends ManagerBase 
implements VolumeApiServic
         if (vm == null || !State.Running.equals(vm.getState())) {
             StoragePoolVO sourceStoragePoolVO = 
_storagePoolDao.findById(vol.getPoolId());
             if 
(sourceStoragePoolVO.getPoolType().equals(Storage.StoragePoolType.PowerFlex) && 
isScaleIOVolumeOnDifferentScaleIOStorageInstances(vol.getPoolId(), 
storagePoolId)) {
-                throw new InvalidParameterValueException("Volume needs to be 
attached to a VM to move across ScaleIO storages in different ScaleIO 
clusters");
+                throw new InvalidParameterValueException("Volume needs to be 
attached to a running VM to move across ScaleIO storages in different ScaleIO 
clusters");
             }
         }
 
@@ -3182,7 +3182,7 @@ public class VolumeApiServiceImpl extends ManagerBase 
implements VolumeApiServic
             throw new CloudRuntimeException("Failed to validate PowerFlex 
pools compatibility for migration as storage instance details are not 
available");
         }
 
-        if (srcPoolSystemId.equals(destPoolSystemId)) {
+        if (!srcPoolSystemId.equals(destPoolSystemId)) {
             return true;
         }
 

Reply via email to