Tal Nisan has uploaded a new change for review. Change subject: webadmin: Consolidated move & copy disk availability checks ......................................................................
webadmin: Consolidated move & copy disk availability checks The logic for checking whether moving a disk or copying a disk is allowed was all the same except for the check whether the disk is used as a template disk or not, both checks were consolidated to a single check to avoid redundant checks on the same disks and for better code reuse Change-Id: Ieb3c388aecc5b007a76c54ed0d41105bc28ebb51 Signed-off-by: Tal Nisan <tni...@redhat.com> --- M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/disks/DiskListModel.java 1 file changed, 26 insertions(+), 37 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/83/15783/1 diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/disks/DiskListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/disks/DiskListModel.java index c875594..07dc3fd 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/disks/DiskListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/disks/DiskListModel.java @@ -440,8 +440,7 @@ getNewCommand().setIsExecutionAllowed(true); getEditCommand().setIsExecutionAllowed(disk != null && disks != null && disks.size() == 1 && !isDiskLocked); getRemoveCommand().setIsExecutionAllowed(disks != null && disks.size() > 0 && isRemoveCommandAvailable()); - getMoveCommand().setIsExecutionAllowed(disks != null && disks.size() > 0 && isMoveCommandAvailable()); - getCopyCommand().setIsExecutionAllowed(disks != null && disks.size() > 0 && isCopyCommandAvailable()); + updateCopyAndMoveCommandAvailability(disks); ChangeQuotaModel.updateChangeQuotaActionAvailability(getItems() != null ? (List<Disk>) getItems() : null, getSelectedItems() != null ? (List<Disk>) getSelectedItems() : null, @@ -449,58 +448,48 @@ getChangeQuotaCommand()); } - private boolean isMoveCommandAvailable() { - ArrayList<Disk> disks = - getSelectedItems() != null ? Linq.<Disk> cast(getSelectedItems()) : new ArrayList<Disk>(); + private void updateCopyAndMoveCommandAvailability(List<Disk> disks) { + boolean isCopyAllowed = true; + boolean isMoveAllowed = true; Disk firstDisk = disks.get(0); - if (firstDisk.getDiskStorageType() != DiskStorageType.IMAGE) { - return false; + + if (disks == null || disks.isEmpty() || firstDisk.getDiskStorageType() != DiskStorageType.IMAGE) { + disableMoveAndCopyCommands(); + return; } NGuid datacenterId = ((DiskImage) firstDisk).getStoragePoolId(); for (Disk disk : disks) { - if (disk.getDiskStorageType() != DiskStorageType.IMAGE) { - return false; + if (!isCopyAllowed && !isMoveAllowed || disk.getDiskStorageType() != DiskStorageType.IMAGE) { + disableMoveAndCopyCommands(); + return; } DiskImage diskImage = (DiskImage) disk; - if (disk.getDiskStorageType() != DiskStorageType.IMAGE || - diskImage.getImageStatus() != ImageStatus.OK || - disk.getVmEntityType() == VmEntityType.TEMPLATE || - !datacenterId.equals(diskImage.getStoragePoolId())) + if (diskImage.getImageStatus() != ImageStatus.OK || !datacenterId.equals(diskImage.getStoragePoolId())) { - return false; + disableMoveAndCopyCommands(); + return; + } + + if (disk.getVmEntityType() == VmEntityType.TEMPLATE) { + isMoveAllowed = false; + } + else { + isCopyAllowed = false; } } - return true; + getCopyCommand().setIsExecutionAllowed(isCopyAllowed); + getMoveCommand().setIsExecutionAllowed(isMoveAllowed); } - private boolean isCopyCommandAvailable() { - ArrayList<Disk> disks = - getSelectedItems() != null ? Linq.<Disk> cast(getSelectedItems()) : new ArrayList<Disk>(); - - Disk firstDisk = disks.get(0); - if (firstDisk.getDiskStorageType() != DiskStorageType.IMAGE) { - return false; - } - - NGuid datacenterId = ((DiskImage) firstDisk).getStoragePoolId(); - - for (Disk disk : disks) - { - DiskImage diskImage = (DiskImage) disk; - if (diskImage.getImageStatus() != ImageStatus.OK || disk.getVmEntityType() != VmEntityType.TEMPLATE || - !datacenterId.equals(diskImage.getStoragePoolId())) - { - return false; - } - } - - return true; + private void disableMoveAndCopyCommands() { + getCopyCommand().setIsExecutionAllowed(false); + getMoveCommand().setIsExecutionAllowed(false); } private boolean isRemoveCommandAvailable() { -- To view, visit http://gerrit.ovirt.org/15783 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ieb3c388aecc5b007a76c54ed0d41105bc28ebb51 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Tal Nisan <tni...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches