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; }