Maor Lipchuk has uploaded a new change for review. Change subject: webadmin: support remove of Cinder disk ......................................................................
webadmin: support remove of Cinder disk Enable removal of Cinder disks (verifying its status is valid). Change-Id: I16cb4999913c11b68433dc889f60bdeb8c8ca717 Bug-Url: https://bugzilla.redhat.com/1185826 Signed-off-by: Maor Lipchuk <mlipc...@redhat.com> --- M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/disks/DiskListModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmDiskListModel.java 2 files changed, 25 insertions(+), 11 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/24/39224/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 b2a66b4..8d8d11c 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 @@ -9,6 +9,7 @@ import org.ovirt.engine.core.common.action.RemoveDiskParameters; import org.ovirt.engine.core.common.action.VdcActionParametersBase; import org.ovirt.engine.core.common.action.VdcActionType; +import org.ovirt.engine.core.common.businessentities.storage.CinderDisk; import org.ovirt.engine.core.common.businessentities.storage.Disk; import org.ovirt.engine.core.common.businessentities.storage.DiskStorageType; import org.ovirt.engine.core.common.businessentities.storage.DiskImage; @@ -256,7 +257,8 @@ diskVmListModel.setIsAvailable(disk.getVmEntityType() == null || !disk.getVmEntityType().isTemplateType()); diskTemplateListModel.setIsAvailable(disk.getVmEntityType() != null && disk.getVmEntityType().isTemplateType()); - diskStorageListModel.setIsAvailable(disk.getDiskStorageType() == DiskStorageType.IMAGE); + diskStorageListModel.setIsAvailable(disk.getDiskStorageType() == DiskStorageType.IMAGE || + disk.getDiskStorageType() == DiskStorageType.CINDER); } } @@ -479,8 +481,7 @@ ArrayList<Disk> disks = getSelectedItems() != null ? (ArrayList) getSelectedItems() : null; boolean shouldAllowEdit = true; if (disk != null) { - shouldAllowEdit = !disk.isOvfStore() && !(disk.getDiskStorageType() == DiskStorageType.IMAGE && - ((DiskImage) disk).getImageStatus() == ImageStatus.LOCKED); + shouldAllowEdit = !disk.isOvfStore() && !isDiskLocked(disk); } getNewCommand().setIsExecutionAllowed(true); @@ -495,6 +496,16 @@ getSelectedItems() != null ? (List) getSelectedItems() : null, getSystemTreeSelectedItem(), getChangeQuotaCommand()); + } + + private boolean isDiskLocked(Disk disk) { + switch (disk.getDiskStorageType()) { + case IMAGE: + return ((DiskImage) disk).getImageStatus() == ImageStatus.LOCKED; + case CINDER: + return ((CinderDisk) disk).getImageStatus() == ImageStatus.LOCKED; + } + return false; } private void updateCopyAndMoveCommandAvailability(List<Disk> disks) { @@ -548,7 +559,7 @@ return false; } - if (disk.getDiskStorageType() == DiskStorageType.IMAGE) { + if (disk.getDiskStorageType() == DiskStorageType.IMAGE || disk.getDiskStorageType() == DiskStorageType.CINDER) { ImageStatus imageStatus = ((DiskImage) disk).getImageStatus(); if (imageStatus == ImageStatus.LOCKED) { return false; diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmDiskListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmDiskListModel.java index e920fcd..8e4c3e9 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmDiskListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmDiskListModel.java @@ -15,6 +15,7 @@ import org.ovirt.engine.core.common.businessentities.StoragePool; import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.businessentities.VMStatus; +import org.ovirt.engine.core.common.businessentities.storage.CinderDisk; import org.ovirt.engine.core.common.businessentities.storage.Disk; import org.ovirt.engine.core.common.businessentities.storage.DiskStorageType; import org.ovirt.engine.core.common.businessentities.storage.DiskImage; @@ -565,8 +566,13 @@ } private boolean isDiskLocked(Disk disk) { - return disk != null && disk.getDiskStorageType() == DiskStorageType.IMAGE && - ((DiskImage) disk).getImageStatus() == ImageStatus.LOCKED; + switch (disk.getDiskStorageType()) { + case IMAGE: + return ((DiskImage) disk).getImageStatus() == ImageStatus.LOCKED; + case CINDER: + return ((CinderDisk) disk).getImageStatus() == ImageStatus.LOCKED; + } + return false; } private boolean isSingleDiskSelected() { @@ -659,11 +665,8 @@ ArrayList<Disk> disks = getSelectedItems() != null ? Linq.<Disk> cast(getSelectedItems()) : new ArrayList<Disk>(); - for (Disk disk : disks) - { - if (disk.getDiskStorageType() == DiskStorageType.IMAGE && - ((DiskImage) disk).getImageStatus() == ImageStatus.LOCKED || (!isVmDown() && disk.getPlugged())) - { + for (Disk disk : disks) { + if (isDiskLocked(disk) || (!isVmDown() && disk.getPlugged())) { return false; } } -- To view, visit https://gerrit.ovirt.org/39224 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I16cb4999913c11b68433dc889f60bdeb8c8ca717 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Maor Lipchuk <mlipc...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches