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
