Daniel Erez has uploaded a new change for review.

Change subject: core: MigrateVmDisks - get source domain by disk
......................................................................

core: MigrateVmDisks - get source domain by disk

LiveMigrateVmDisksCommand - source storage domain should
be retrieved from the operated disk instead of the command parameters
(only a disk that resides on a single storage domain can be moved).

Change-Id: Ifefe823faa8e546eba3e9d34c4b46609085baad8
Bug-Url: https://bugzilla.redhat.com/883871
Signed-off-by: Daniel Erez <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/LiveMigrateVmDisksCommand.java
1 file changed, 12 insertions(+), 11 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/47/12147/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/LiveMigrateVmDisksCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/LiveMigrateVmDisksCommand.java
index 1da8ae2..eaf3daa 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/LiveMigrateVmDisksCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/LiveMigrateVmDisksCommand.java
@@ -198,7 +198,7 @@
         for (LiveMigrateDiskParameters parameters : 
getParameters().getParametersList()) {
             
getReturnValue().setCanDoAction(isDiskNotShareable(parameters.getImageId())
                     && isTemplateInDestStorageDomain(parameters.getImageId(), 
parameters.getStorageDomainId())
-                    && validateSourceStorageDomain(parameters.getImageId(), 
parameters.getSourceStorageDomainId())
+                    && validatSourceStorageDomain(parameters.getImageId())
                     && validateDestStorage(parameters.getImageId(), 
parameters.getStorageDomainId()));
 
             if (!getReturnValue().getCanDoAction()) {
@@ -255,24 +255,25 @@
         return true;
     }
 
-    private boolean validateSourceStorageDomain(Guid imageId, Guid 
sourceDomainId) {
-        StorageDomainValidator validator = getValidator(imageId, 
sourceDomainId);
+    private boolean validatSourceStorageDomain(Guid imageId) {
+        DiskImage diskImage = getDiskImageById(imageId);
+        Guid storagePoolId = diskImage.getStoragePoolId().getValue();
+        Guid domainId = diskImage.getStorageIds().get(0);
+        StorageDomainValidator validator = getValidator(domainId, 
storagePoolId);
 
         return validate(validator.isDomainExistAndActive());
     }
 
     private boolean validateDestStorage(Guid imageId, Guid destDomainId) {
-        StorageDomainValidator validator = getValidator(imageId, destDomainId);
+        DiskImage diskImage = getDiskImageById(imageId);
+        Guid storagePoolId = diskImage.getStoragePoolId().getValue();
+        StorageDomainValidator validator = getValidator(destDomainId, 
storagePoolId);
 
-        return validateSourceStorageDomain(imageId, destDomainId)
-                && validate(validator.domainIsValidDestination());
+        return validate(validator.isDomainExistAndActive()) && 
validate(validator.domainIsValidDestination());
     }
 
-    private StorageDomainValidator getValidator(Guid imageId, Guid domainId) {
-        DiskImage diskImage = getDiskImageById(imageId);
-
-        return new StorageDomainValidator(
-                getStorageDomainById(domainId, 
diskImage.getStoragePoolId().getValue()));
+    private StorageDomainValidator getValidator(Guid domainId, Guid 
storagePoolId) {
+        return new StorageDomainValidator(getStorageDomainById(domainId, 
storagePoolId));
     }
 
     protected boolean isValidSpaceRequirements() {


--
To view, visit http://gerrit.ovirt.org/12147
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ifefe823faa8e546eba3e9d34c4b46609085baad8
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Daniel Erez <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to