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 Bug-Url: https://bugzilla.redhat.com/1085136 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/77/30477/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..182b91e 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() { + canDoActionUpdateWipeAfterDelete(VMStatus.Down); + } + + @Test + public void canDoActionUpdateDescriptionVmUp() { + canDoActionUpdateWipeAfterDelete(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 a1085d3..7415f14 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/30477 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Id116aec43abb8863faf17a240530dac0a78f22e0 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Allon Mureinik <amure...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches