Daniel Erez has uploaded a new change for review.

Change subject: webadmin: DiskStorageType instead of isInternal flag
......................................................................

webadmin: DiskStorageType instead of isInternal flag

Disk Dialog:
Use DiskStorageType enum instead of isInternal flag to
support extendability of future disk types.

Change-Id: I6550d85062dbff324591c2b790e0192c21dabf18
Signed-off-by: Daniel Erez <[email protected]>
---
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmDiskPopupWidget.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/AbstractDiskModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/EditDiskModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewDiskModel.java
4 files changed, 60 insertions(+), 63 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/52/33152/1

diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmDiskPopupWidget.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmDiskPopupWidget.java
index 3408bce..de455ac 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmDiskPopupWidget.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmDiskPopupWidget.java
@@ -605,7 +605,7 @@
                 attachDiskPanel.setVisible(isAttach);
 
                 if (!isAttach && !isNewLunDiskEnabled) {
-                    disk.getIsInternal().setEntity(true);
+                    disk.getDiskStorageType().setEntity(DiskStorageType.IMAGE);
                 }
                 revealDiskPanel(disk);
             }
@@ -642,7 +642,7 @@
                 new ClickHandler() {
                 @Override
                 public void onClick(ClickEvent event) {
-                    disk.getIsInternal().setEntity(true);
+                    disk.getDiskStorageType().setEntity(DiskStorageType.IMAGE);
                     revealDiskPanel(disk);
                 }
             });
@@ -654,7 +654,7 @@
                 new ClickHandler() {
                     @Override
                     public void onClick(ClickEvent event) {
-                        disk.getIsInternal().setEntity(false);
+                        
disk.getDiskStorageType().setEntity(DiskStorageType.LUN);
                         revealStorageView(disk);
                         revealDiskPanel(disk);
                     }
@@ -723,7 +723,6 @@
 
     private void revealDiskPanel(final AbstractDiskModel disk) {
         boolean isAttachDisk = disk.getIsAttachDisk().getEntity();
-        boolean isInternal = disk.getIsInternal().getEntity();
         boolean isInVm = disk.getVm() != null;
 
         // Hide tables
@@ -735,7 +734,7 @@
         diskTypePanel.setVisible(isAttachDisk || isNewLunDiskEnabled);
 
         if (isAttachDisk) {
-            if (isInternal) {
+            if (disk.getDiskStorageType().getEntity() == 
DiskStorageType.IMAGE) {
                 // Show and edit internal disk table
                 internalDiskTable.setVisible(true);
                 
internalDiskTable.asEditor().edit(disk.getInternalAttachableDisks());
@@ -747,7 +746,7 @@
             }
         }
         else {
-            externalDiskPanel.setVisible(isNewLunDiskEnabled && !isInternal);
+            externalDiskPanel.setVisible(isNewLunDiskEnabled && 
disk.getDiskStorageType().getEntity() == DiskStorageType.LUN);
         }
 
         topPanel.setVisible(isInVm && disk.getIsNew());
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/AbstractDiskModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/AbstractDiskModel.java
index 1c9b0e4..d8cedb6 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/AbstractDiskModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/AbstractDiskModel.java
@@ -66,11 +66,11 @@
     private EntityModel<Boolean> isPlugged;
     private EntityModel<Boolean> isReadOnly;
     private EntityModel<Boolean> isAttachDisk;
-    private EntityModel<Boolean> isInternal;
     private EntityModel<Boolean> isDirectLunDiskAvaialable;
     private EntityModel<Boolean> isScsiPassthrough;
     private EntityModel<Boolean> isSgIoUnfiltered;
     private EntityModel<String> sizeExtend;
+    private EntityModel<DiskStorageType> diskStorageType;
 
     private ListModel<StorageType> storageType;
     private ListModel<VDS> host;
@@ -134,14 +134,6 @@
 
     public void setIsAttachDisk(EntityModel<Boolean> isAttachDisk) {
         this.isAttachDisk = isAttachDisk;
-    }
-
-    public EntityModel<Boolean> getIsInternal() {
-        return isInternal;
-    }
-
-    public void setIsInternal(EntityModel<Boolean> isInternal) {
-        this.isInternal = isInternal;
     }
 
     public EntityModel<Boolean> getIsDirectLunDiskAvaialable() {
@@ -240,6 +232,14 @@
         this.sizeExtend = sizeExtend;
     }
 
+    public EntityModel<DiskStorageType> getDiskStorageType() {
+        return diskStorageType;
+    }
+
+    public void setDiskStorageType(EntityModel<DiskStorageType> 
diskStorageType) {
+        this.diskStorageType = diskStorageType;
+    }
+
     private EntityModel<Boolean> isVirtioScsiEnabled;
 
     public EntityModel<Boolean> getIsVirtioScsiEnabled() {
@@ -275,10 +275,6 @@
         getIsAttachDisk().setEntity(false);
         getIsAttachDisk().getEntityChangedEvent().addListener(this);
 
-        setIsInternal(new EntityModel<Boolean>());
-        getIsInternal().setEntity(true);
-        getIsInternal().getEntityChangedEvent().addListener(this);
-
         setIsWipeAfterDelete(new EntityModel<Boolean>());
         getIsWipeAfterDelete().setEntity(false);
 
@@ -305,6 +301,10 @@
         getIsSgIoUnfiltered().setIsAvailable(false);
         getIsSgIoUnfiltered().setEntity(false);
         getIsSgIoUnfiltered().getEntityChangedEvent().addListener(this);
+
+        setDiskStorageType(new EntityModel<DiskStorageType>());
+        getDiskStorageType().setEntity(DiskStorageType.IMAGE);
+        getDiskStorageType().getEntityChangedEvent().addListener(this);
 
         setIsDirectLunDiskAvaialable(new EntityModel<Boolean>());
         getIsDirectLunDiskAvaialable().setEntity(true);
@@ -403,12 +403,7 @@
                 diskModel.getStorageDomain().setItems(filteredStorageDomains);
                 diskModel.getStorageDomain().setSelectedItem(storage);
 
-                if (storage != null) {
-                    diskModel.setMessage(""); //$NON-NLS-1$
-                }
-                else {
-                    
diskModel.setMessage(CONSTANTS.noActiveStorageDomainsInDC());
-                }
+                diskModel.setMessage(storage == null ? 
CONSTANTS.noActiveStorageDomainsInDC() : "");
             }
         }, getHash()), datacenter.getId(), ActionGroup.CREATE_DISK);
     }
@@ -452,8 +447,7 @@
                     diskModel.getDataCenter().setItems(dataCenters);
 
                     if (dataCenters.isEmpty()) {
-                        diskModel.setMessage(getIsInternal().getEntity() ?
-                                CONSTANTS.noActiveStorageDomainsInDC() : 
CONSTANTS.relevantDCnotActive());
+                        diskModel.setMessage(CONSTANTS.relevantDCnotActive());
                     }
                 }
             }, getHash())), getVm().getStoragePoolId());
@@ -519,8 +513,7 @@
     }
 
     private void updateDirectLunDiskEnabled(StoragePool datacenter) {
-        boolean isInternal = getIsInternal().getEntity();
-        if (isInternal) {
+        if (getDiskStorageType().getEntity() != DiskStorageType.LUN) {
             return;
         }
 
@@ -626,8 +619,8 @@
     }
 
     private void updateQuota(StoragePool datacenter) {
-        if 
(datacenter.getQuotaEnforcementType().equals(QuotaEnforcementTypeEnum.DISABLED)
-                || !getIsInternal().getEntity()) {
+        if 
(datacenter.getQuotaEnforcementType().equals(QuotaEnforcementTypeEnum.DISABLED) 
||
+                getDiskStorageType().getEntity() != DiskStorageType.IMAGE) {
             getQuota().setIsAvailable(false);
             return;
         }
@@ -675,27 +668,28 @@
         return isStatusUp;
     }
 
-    private void isInternal_EntityChanged() {
+    private void diskStorageType_EntityChanged() {
         boolean isInVm = getVm() != null;
-        boolean isInternal = getIsInternal().getEntity();
+        boolean isDiskImage = getDiskStorageType().getEntity() == 
DiskStorageType.IMAGE;
+        boolean isLunDisk = getDiskStorageType().getEntity() == 
DiskStorageType.LUN;
 
-        getSize().setIsAvailable(isInternal);
-        getSizeExtend().setIsAvailable(isInternal && !getIsNew());
-        getStorageDomain().setIsAvailable(isInternal);
-        getVolumeType().setIsAvailable(isInternal);
-        getIsWipeAfterDelete().setIsAvailable(isInternal);
-        getHost().setIsAvailable(!isInternal);
-        getStorageType().setIsAvailable(!isInternal);
+        getSize().setIsAvailable(isDiskImage);
+        getSizeExtend().setIsAvailable(isDiskImage && !getIsNew());
+        getStorageDomain().setIsAvailable(isDiskImage);
+        getVolumeType().setIsAvailable(isDiskImage);
+        getIsWipeAfterDelete().setIsAvailable(isDiskImage);
+        getHost().setIsAvailable(isLunDisk);
+        getStorageType().setIsAvailable(isLunDisk);
         getDataCenter().setIsAvailable(!isInVm);
-        getDiskProfile().setIsAvailable(isInternal);
+        getDiskProfile().setIsAvailable(isDiskImage);
 
-        if (!isInternal) {
+        if (!isDiskImage) {
             previousWipeAfterDeleteEntity = getIsWipeAfterDelete().getEntity();
             previousIsQuotaAvailable = getQuota().getIsAvailable();
         }
 
-        getIsWipeAfterDelete().setEntity(isInternal ? 
previousWipeAfterDeleteEntity : false);
-        getQuota().setIsAvailable(isInternal ? previousIsQuotaAvailable : 
false);
+        getIsWipeAfterDelete().setEntity(isDiskImage ? 
previousWipeAfterDeleteEntity : false);
+        getQuota().setIsAvailable(isDiskImage ? previousIsQuotaAvailable : 
false);
 
         updateDatacenters();
     }
@@ -714,10 +708,10 @@
     }
 
     private void DiskInterface_SelectedItemChanged() {
-        boolean isInternal = getIsInternal().getEntity();
+        boolean isLunDisk = getDiskStorageType().getEntity() == 
DiskStorageType.LUN;
         DiskInterface diskInterface = getDiskInterface().getSelectedItem();
-        getIsSgIoUnfiltered().setIsAvailable(!isInternal && 
DiskInterface.VirtIO_SCSI.equals(diskInterface));
-        getIsScsiPassthrough().setIsAvailable(!isInternal && 
DiskInterface.VirtIO_SCSI.equals(diskInterface));
+        getIsSgIoUnfiltered().setIsAvailable(isLunDisk && 
DiskInterface.VirtIO_SCSI.equals(diskInterface));
+        getIsScsiPassthrough().setIsAvailable(isLunDisk && 
DiskInterface.VirtIO_SCSI.equals(diskInterface));
 
         updateScsiPassthroguhChangeability();
         updateReadOnlyChangeability();
@@ -751,7 +745,7 @@
             return;
         }
 
-        boolean isDirectLUN = !getIsInternal().getEntity();
+        boolean isDirectLUN = getDiskStorageType().getEntity() == 
DiskStorageType.LUN;
         boolean isScsiPassthrough = getIsScsiPassthrough().getEntity();
         if (diskInterface == DiskInterface.VirtIO_SCSI && isDirectLUN && 
isScsiPassthrough) {
             
getIsReadOnly().setChangeProhibitionReason(CONSTANTS.cannotEnableReadonlyWhenScsiPassthroughEnabled());
@@ -831,7 +825,6 @@
 
     private void datacenter_SelectedItemChanged() {
         StoragePool datacenter = getDataCenter().getSelectedItem();
-        boolean isInternal = getIsInternal().getEntity() != null ? 
getIsInternal().getEntity() : false;
         boolean isInVm = getVm() != null;
 
         if (datacenter == null) {
@@ -842,7 +835,7 @@
         updateDirectLunDiskEnabled(datacenter);
         updateInterface(isInVm ? getVm().getVdsGroupCompatibilityVersion() : 
null);
 
-        if (isInternal) {
+        if (getDiskStorageType().getEntity() == DiskStorageType.IMAGE) {
             updateStorageDomains(datacenter);
         }
         else {
@@ -923,8 +916,7 @@
     }
 
     public void onSave() {
-        boolean isInternal = getIsInternal().getEntity();
-        if (isInternal) {
+        if (getDiskStorageType().getEntity() == DiskStorageType.IMAGE) {
             DiskImage diskImage = getDiskImage();
             if (getQuota().getIsAvailable() && getQuota().getSelectedItem() != 
null) {
                 diskImage.setQuotaId(getQuota().getSelectedItem().getId());
@@ -989,8 +981,8 @@
             } else if (sender == getIsScsiPassthrough()) {
                 updateSgIoUnfilteredChangeability();
                 updateReadOnlyChangeability();
-            } else if (sender == getIsInternal()) {
-                isInternal_EntityChanged();
+            } else if (sender == getDiskStorageType()) {
+                diskStorageType_EntityChanged();
             }
         }
         else if 
(ev.matchesDefinition(ListModel.selectedItemChangedEventDefinition) && sender 
== getVolumeType())
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/EditDiskModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/EditDiskModel.java
index 1851ef0..82385d3 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/EditDiskModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/EditDiskModel.java
@@ -45,8 +45,8 @@
 
         if (getDisk().getDiskStorageType() == DiskStorageType.IMAGE) {
             DiskImage diskImage = (DiskImage) getDisk();
+            getDiskStorageType().setEntity(DiskStorageType.IMAGE);
             getSize().setEntity((int) diskImage.getSizeInGigabytes());
-            getIsInternal().setEntity(true);
             getVolumeType().setSelectedItem(diskImage.getVolumeType());
             setVolumeFormat(diskImage.getVolumeFormat());
 
@@ -65,8 +65,8 @@
             }, getHash()), storageDomainId);
         } else {
             LunDisk lunDisk = (LunDisk) getDisk();
+            getDiskStorageType().setEntity(DiskStorageType.LUN);
             getSize().setEntity(lunDisk.getLun().getDeviceSize());
-            getIsInternal().setEntity(false);
             getSizeExtend().setIsAvailable(false);
         }
 
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewDiskModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewDiskModel.java
index ecd8b56..bb52b05 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewDiskModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewDiskModel.java
@@ -6,6 +6,7 @@
 import org.ovirt.engine.core.common.action.AttachDetachVmDiskParameters;
 import org.ovirt.engine.core.common.action.VdcActionParametersBase;
 import org.ovirt.engine.core.common.action.VdcActionType;
+import org.ovirt.engine.core.common.businessentities.Disk;
 import org.ovirt.engine.core.common.businessentities.DiskImage;
 import org.ovirt.engine.core.common.businessentities.DiskInterface;
 import org.ovirt.engine.core.common.businessentities.LUNs;
@@ -82,9 +83,15 @@
             }
         };
 
-        ArrayList<EntityModel<DiskModel>> disksToAttach = 
getIsInternal().getEntity() ?
-                (ArrayList<EntityModel<DiskModel>>) 
getInternalAttachableDisks().getSelectedItems() :
-                (ArrayList<EntityModel<DiskModel>>) 
getExternalAttachableDisks().getSelectedItems();
+        ArrayList<EntityModel<DiskModel>> disksToAttach = null;
+        switch (getDiskStorageType().getEntity()) {
+            case IMAGE:
+                disksToAttach = (ArrayList<EntityModel<DiskModel>>) 
getInternalAttachableDisks().getSelectedItems();
+                break;
+            case LUN:
+                disksToAttach = (ArrayList<EntityModel<DiskModel>>) 
getExternalAttachableDisks().getSelectedItems();
+                break;
+        }
 
         for (int i = 0; i < disksToAttach.size(); i++) {
             DiskModel disk = disksToAttach.get(i).getEntity();
@@ -157,8 +164,7 @@
 
         super.onSave();
 
-        boolean isInternal = getIsInternal().getEntity();
-        if (isInternal) {
+        if (getDiskStorageType().getEntity() == Disk.DiskStorageType.IMAGE) {
             DiskImage diskImage = (DiskImage) getDisk();
             diskImage.setSizeInGigabytes(getSize().getEntity());
             diskImage.setVolumeType(getVolumeType().getSelectedItem());
@@ -175,7 +181,7 @@
 
         AddDiskParameters parameters = new AddDiskParameters(getVmId(), 
getDisk());
         parameters.setPlugDiskToVm(getIsPlugged().getEntity());
-        if (getIsInternal().getEntity()) {
+        if (getDiskStorageType().getEntity() == Disk.DiskStorageType.IMAGE) {
             StorageDomain storageDomain = getStorageDomain().getSelectedItem();
             parameters.setStorageDomainId(storageDomain.getId());
         }
@@ -207,7 +213,7 @@
             return true;
         }
 
-        if (!getIsInternal().getEntity() && getSanStorageModel() != null) {
+        if (getDiskStorageType().getEntity() == Disk.DiskStorageType.LUN && 
getSanStorageModel() != null) {
             getSanStorageModel().validate();
             if (!getSanStorageModel().getIsValid()) {
                 return false;


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

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

Reply via email to