Amit Aviram has uploaded a new change for review.

Change subject: webadmin: Preventing moving a shareable disk to a Gluster domain
......................................................................

webadmin: Preventing moving a shareable disk to a Gluster domain

Gluster doamin does not support shareable disks- therefore
UI now prevents this action.

Change-Id: Ibc2ea43f2131056c6f9ea86ecfb574fe71b638be
Bug-Url: https://bugzilla.redhat.com/1135771
Signed-off-by: Amit Aviram <[email protected]>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/MoveOrCopyDiskModel.java
1 file changed, 21 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/78/37278/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/MoveOrCopyDiskModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/MoveOrCopyDiskModel.java
index 2d2cdb7..2b46362 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/MoveOrCopyDiskModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/MoveOrCopyDiskModel.java
@@ -14,6 +14,7 @@
 import org.ovirt.engine.core.common.businessentities.QuotaEnforcementTypeEnum;
 import org.ovirt.engine.core.common.businessentities.StorageDomain;
 import org.ovirt.engine.core.common.businessentities.StoragePool;
+import org.ovirt.engine.core.common.businessentities.StorageType;
 import org.ovirt.engine.core.common.businessentities.VM;
 import org.ovirt.engine.core.common.businessentities.VMStatus;
 import 
org.ovirt.engine.core.common.businessentities.comparators.NameableComparator;
@@ -174,6 +175,13 @@
         }
     }
 
+    private boolean isDiskValidForStorage(DiskImage disk, StorageDomain 
storage) {
+        if (disk.isShareable() && storage.getStorageType() == 
StorageType.GLUSTERFS) {
+            return false;
+        }
+        return true;
+    }
+
     protected void postInitStorageDomains() {
         for (DiskModel disk : getDisks()) {
             DiskImage diskImage = ((DiskImage) disk.getDisk());
@@ -187,6 +195,7 @@
             ArrayList<StorageDomain> destStorageDomains =
                     Linq.except(getActiveStorageDomains(), 
sourceStorageDomains);
             destStorageDomains = 
filterStoragesByDatacenterId(destStorageDomains, diskImage.getStoragePoolId());
+            destStorageDomains = 
filterValidStoragesForDisk(destStorageDomains, diskImage);
 
             if (isFilterDestinationDomainsBySourceType(disk)) {
                 destStorageDomains = 
filterDestinationDomainsByDiskStorageSubtype(destStorageDomains, diskImage);
@@ -194,6 +203,7 @@
 
             // Filter storage domains with missing template disk
             boolean isDiskBasedOnTemplate = 
!diskImage.getParentId().equals(Guid.Empty);
+
             if (isDiskBasedOnTemplate) {
                 destStorageDomains = Linq.except(destStorageDomains, 
getMissingStorages(destStorageDomains, disk));
             }
@@ -277,6 +287,17 @@
         return storages;
     }
 
+    protected ArrayList<StorageDomain> 
filterValidStoragesForDisk(ArrayList<StorageDomain> storageDomains, DiskImage 
diskImage) {
+        ArrayList<StorageDomain> storages = new ArrayList<StorageDomain>();
+        for (StorageDomain storage : storageDomains) {
+            if (isDiskValidForStorage(diskImage, storage)) {
+                storages.add(storage);
+            }
+        }
+        return storages;
+    }
+
+
     protected ArrayList<StorageDomain> 
getMissingStorages(ArrayList<StorageDomain> storageDomains, DiskModel vmdisk) {
         ArrayList<StorageDomain> missingStorageDomains = new 
ArrayList<StorageDomain>();
         DiskModel templateDisk = getTemplateDiskByVmDisk(vmdisk);


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ibc2ea43f2131056c6f9ea86ecfb574fe71b638be
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.5
Gerrit-Owner: Amit Aviram <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to