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

Reply via email to