Allon Mureinik has uploaded a new change for review.

Change subject: engine: Edit disk description when VM is up
......................................................................

engine: Edit disk description when VM is up

Since the description is just a database field, there's no (good)
reason to prevent editing disks' descriptions while the related VM(s)
is(are) up.

This patch includes:
- Fixing the UpdateVmDiskCommand to allow such updates
- Adding cases to UpdateVmDiskCommandTest to check this functionality
- Fixing EditDiskModel to allow this update in the UI

Change-Id: Id116aec43abb8863faf17a240530dac0a78f22e0
Signed-off-by: Allon Mureinik <amure...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmDiskCommand.java
M 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/UpdateVmDiskCommandTest.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/EditDiskModel.java
3 files changed, 30 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/01/30501/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmDiskCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmDiskCommand.java
index fe55f79..e6ec353 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmDiskCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmDiskCommand.java
@@ -556,8 +556,7 @@
                 getOldDisk().getDiskInterface() != 
getNewDisk().getDiskInterface() ||
                 getOldDisk().getPropagateErrors() != 
getNewDisk().getPropagateErrors() ||
                 getOldDisk().isShareable() != getNewDisk().isShareable() ||
-                getOldDisk().getSgio() != getNewDisk().getSgio() ||
-                !StringUtils.equals(getOldDisk().getDiskDescription(), 
getNewDisk().getDiskDescription());
+                getOldDisk().getSgio() != getNewDisk().getSgio();
     }
 
     private boolean updateImageParametersRequiringVmDownRequested() {
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/UpdateVmDiskCommandTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/UpdateVmDiskCommandTest.java
index 5275b00..c9ca0c8 100644
--- 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/UpdateVmDiskCommandTest.java
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/UpdateVmDiskCommandTest.java
@@ -28,6 +28,7 @@
 
 import org.infinispan.transaction.tm.DummyTransactionManager;
 import org.junit.ClassRule;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -74,6 +75,8 @@
 import org.ovirt.engine.core.dao.VmStaticDAO;
 import org.ovirt.engine.core.utils.MockConfigRule;
 import org.ovirt.engine.core.utils.MockEJBStrategyRule;
+import org.ovirt.engine.core.utils.RandomUtils;
+import org.ovirt.engine.core.utils.RandomUtilsSeedingRule;
 import org.ovirt.engine.core.utils.ejb.ContainerManagedResourceType;
 
 
@@ -124,6 +127,9 @@
     public static MockConfigRule mcr = new MockConfigRule(
             mockConfig(ConfigValues.ShareableDiskEnabled, 
Version.v3_1.toString(), true)
     );
+
+    @Rule
+    public RandomUtilsSeedingRule rusr = new RandomUtilsSeedingRule();
 
     /**
      * The command under test.
@@ -327,6 +333,28 @@
         UpdateVmDiskParameters parameters = createParameters();
         parameters.getDiskInfo().setReadOnly(false);
         parameters.getDiskInfo().setWipeAfterDelete(true);
+        initializeCommand(parameters, 
Collections.singletonList(createVm(status)));
+
+        CanDoActionTestUtils.runAndAssertCanDoActionSuccess(command);
+    }
+
+    @Test
+    public void canDoActionUpdateDescriptionVmDown() {
+        canDoActionUpdateDescription(VMStatus.Down);
+    }
+
+    @Test
+    public void canDoActionUpdateDescriptionVmUp() {
+        canDoActionUpdateDescription(VMStatus.Up);
+    }
+
+    private void canDoActionUpdateDescription(VMStatus status) {
+        DiskImage disk  = createDiskImage();
+        disk.setReadOnly(false);
+        when(diskDao.get(diskImageGuid)).thenReturn(disk);
+        UpdateVmDiskParameters parameters = createParameters();
+        parameters.getDiskInfo().setReadOnly(false);
+        disk.setDescription(RandomUtils.instance().nextString(10));
         initializeCommand(parameters, 
Collections.singletonList(createVm(status)));
 
         CanDoActionTestUtils.runAndAssertCanDoActionSuccess(command);
@@ -708,6 +736,7 @@
         disk.setDiskInterface(DiskInterface.VirtIO);
         disk.setStorageIds(new ArrayList<>(Collections.singleton(sdId)));
         disk.setStoragePoolId(spId);
+        disk.setDescription(RandomUtils.instance().nextString(10));
         return disk;
     }
 
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/EditDiskModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/EditDiskModel.java
index 2f090d9..f2e2b57 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/EditDiskModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/EditDiskModel.java
@@ -147,7 +147,6 @@
         getSize().setIsChangable(false);
 
         if (!isEditEnabled()) {
-            getDescription().setIsChangable(false);
             getIsShareable().setIsChangable(false);
             getIsBootable().setIsChangable(false);
             getIsWipeAfterDelete().setIsChangable(false);


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Id116aec43abb8863faf17a240530dac0a78f22e0
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.5
Gerrit-Owner: Allon Mureinik <amure...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to