Sergey Gotliv has uploaded a new change for review.

Change subject: webadmin: Prevent selection of IDE disk as read-only in UI
......................................................................

webadmin: Prevent selection of IDE disk as read-only in UI

Change-Id: I71856b447abc3bc3a48247c6df2d8e6083e8e783
Signed-off-by: Sergey Gotliv <sgot...@redhat.com>
---
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/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java
3 files changed, 35 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/98/23998/1

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 60dde15..479dabe 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
@@ -47,6 +47,7 @@
 import org.ovirt.engine.ui.uicommonweb.validation.NotEmptyQuotaValidation;
 import org.ovirt.engine.ui.uicommonweb.validation.NotEmptyValidation;
 import 
org.ovirt.engine.ui.uicommonweb.validation.SpecialAsciiI18NOrNoneValidation;
+import org.ovirt.engine.ui.uicommonweb.validation.ValidationResult;
 import org.ovirt.engine.ui.uicompat.ConstantsManager;
 import org.ovirt.engine.ui.uicompat.Event;
 import org.ovirt.engine.ui.uicompat.EventArgs;
@@ -659,6 +660,15 @@
         boolean isInternal = (Boolean) getIsInternal().getEntity();
         DiskInterface diskInterface = (DiskInterface) 
getDiskInterface().getSelectedItem();
         getIsSgIoUnfiltered().setIsAvailable(!isInternal && 
DiskInterface.VirtIO_SCSI.equals(diskInterface));
+
+        if (DiskInterface.IDE.equals(diskInterface) && 
!Boolean.TRUE.equals(getIsReadOnly().getEntity()))
+        {
+            getIsReadOnly().setIsChangable(false);
+        }
+        else if (isEditEnabled())
+        {
+            getIsReadOnly().setIsChangable(true);
+        }
     }
 
     private void wipeAfterDelete_EntityChanged(EventArgs e) {
@@ -746,7 +756,22 @@
             getQuota().validateSelectedItem(new IValidation[] { new 
NotEmptyQuotaValidation() });
         }
 
-        return getAlias().getIsValid() && getDescription().getIsValid() && 
getQuota().getIsValid();
+        getDiskInterface().validateEntity(new IValidation[] { new 
IValidation() {
+            @Override
+            public ValidationResult validate(Object value) {
+                ValidationResult result = new ValidationResult();
+
+                if (getDiskInterface().getSelectedItem() == DiskInterface.IDE 
&& (Boolean) getIsReadOnly().getEntity())
+                {
+                    result.setSuccess(false);
+                    
result.getReasons().add(ConstantsManager.getInstance().getConstants().cannotEnableIdeInterfaceForReadOnlyDisk());
+                }
+
+                return result;
+            }
+        }});
+
+        return getAlias().getIsValid() && getDescription().getIsValid() && 
getQuota().getIsValid() && getDiskInterface().getIsValid();
     }
 
     protected void forceCreationWarning(ArrayList<String> usedLunsMessages) {
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 e2ba125..17276aa 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
@@ -5,6 +5,7 @@
 import org.ovirt.engine.core.common.action.VdcActionType;
 import org.ovirt.engine.core.common.businessentities.Disk.DiskStorageType;
 import org.ovirt.engine.core.common.businessentities.DiskImage;
+import org.ovirt.engine.core.common.businessentities.DiskInterface;
 import org.ovirt.engine.core.common.businessentities.LunDisk;
 import org.ovirt.engine.core.common.businessentities.ScsiGenericIO;
 import org.ovirt.engine.core.common.businessentities.StorageDomain;
@@ -68,6 +69,11 @@
             getIsInternal().setEntity(false);
             getSizeExtend().setIsAvailable(false);
         }
+
+        if (getDisk().getDiskInterface() == DiskInterface.IDE)
+        {
+            getIsReadOnly().setIsChangable(false);
+        }
     }
 
     @Override
diff --git 
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java
 
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java
index 96ad995..0f82171 100644
--- 
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java
+++ 
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java
@@ -2173,5 +2173,8 @@
 
     @DefaultStringValue("VirtIO-SCSI is not supported for the selected OS")
     String cannotEnableVirtioScsiForOs();
+
+    @DefaultStringValue("IDE disk can't be read-only.")
+    String cannotEnableIdeInterfaceForReadOnlyDisk();
 }
 


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I71856b447abc3bc3a48247c6df2d8e6083e8e783
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Sergey Gotliv <sgot...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to