Daniel Erez has uploaded a new change for review.

Change subject: core: validate vmNotDuringSnapshot on LiveMigrateVmDisks
......................................................................

core: validate vmNotDuringSnapshot on LiveMigrateVmDisks

LiveMigrateVmDisksCommand:
valifate VM is not during snapshot on canDoAction.

Change-Id: Ide91ad3042bbf0889ba948763ce88444045fc104
Bug-Url: https://bugzilla.redhat.com/1162120
Signed-off-by: Daniel Erez <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/LiveMigrateVmDisksCommand.java
M 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/lsm/LiveMigrateVmDisksCommandTest.java
2 files changed, 19 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/67/35067/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 e5e0aeb..71d6ebe 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
@@ -298,8 +298,10 @@
     protected boolean canDoAction() {
         setStoragePoolId(getVm().getStoragePoolId());
 
-        LiveSnapshotValidator validator = new 
LiveSnapshotValidator(getStoragePool().getcompatibility_version(), getVds());
-        if (!validate(validator.canDoSnapshot())) {
+        LiveSnapshotValidator liveSnapshotValidator = new 
LiveSnapshotValidator(getStoragePool().getcompatibility_version(), getVds());
+        SnapshotsValidator snapshotValidator = createSnapshotsValidator();
+
+        if (!validate(liveSnapshotValidator.canDoSnapshot()) || 
!validate(snapshotValidator.vmNotDuringSnapshot(getVmId()))) {
             return false;
         }
 
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/lsm/LiveMigrateVmDisksCommandTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/lsm/LiveMigrateVmDisksCommandTest.java
index c193680..d86a69a 100644
--- 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/lsm/LiveMigrateVmDisksCommandTest.java
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/lsm/LiveMigrateVmDisksCommandTest.java
@@ -303,6 +303,20 @@
     }
 
     @Test
+    public void canDoActionVmDuringSnapshot() {
+        createParameters();
+        initDiskImage(diskImageGroupId, diskImageId);
+        initVm(VMStatus.Up, null, diskImageId);
+        when(snapshotDao.exists(any(Guid.class), 
eq(Snapshot.SnapshotStatus.LOCKED))).thenReturn(true);
+
+        doReturn(new 
ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_VM_IS_DURING_SNAPSHOT)).when(snapshotsValidator)
+                .vmNotDuringSnapshot(any(Guid.class));
+
+        CanDoActionTestUtils.runAndAssertCanDoActionFailure(command,
+                VdcBllMessages.ACTION_TYPE_FAILED_VM_IS_DURING_SNAPSHOT);
+    }
+
+    @Test
     public void 
canDoActionVmHavingDeviceSnapshotsPluggedToOtherVmsThatAreNotDown() {
         createParameters();
         initDiskImage(diskImageGroupId, diskImageId);
@@ -399,5 +413,6 @@
         
doReturn(ValidationResult.VALID).when(vmValidator).vmNotRunningStateless();
         
doReturn(ValidationResult.VALID).when(diskValidator).isDiskPluggedToVmsThatAreNotDown(anyBoolean(),
 anyList());
         
doReturn(ValidationResult.VALID).when(snapshotsValidator).vmNotInPreview(any(Guid.class));
+        
doReturn(ValidationResult.VALID).when(snapshotsValidator).vmNotDuringSnapshot(any(Guid.class));
     }
 }


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ide91ad3042bbf0889ba948763ce88444045fc104
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