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
Bug-Url: https://bugzilla.redhat.com/1057546
Signed-off-by: Sergey Gotliv <[email protected]>
---
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, 36 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/59/24259/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..49569e1 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,20 @@
         boolean isInternal = (Boolean) getIsInternal().getEntity();
         DiskInterface diskInterface = (DiskInterface) 
getDiskInterface().getSelectedItem();
         getIsSgIoUnfiltered().setIsAvailable(!isInternal && 
DiskInterface.VirtIO_SCSI.equals(diskInterface));
+
+        updateReadOnlyChangeability();
+    }
+
+    protected void updateReadOnlyChangeability() {
+        DiskInterface diskInterface = (DiskInterface) 
getDiskInterface().getSelectedItem();
+
+        if (DiskInterface.IDE.equals(diskInterface)) {
+            
getIsReadOnly().setChangeProhibitionReason(CONSTANTS.cannotEnableIdeInterfaceForReadOnlyDisk());
+            getIsReadOnly().setIsChangable(false);
+        }
+        else {
+            getIsReadOnly().setIsChangable(isEditEnabled());
+        }
     }
 
     private void wipeAfterDelete_EntityChanged(EventArgs e) {
@@ -746,7 +761,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 65293f0..6a533ad 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
@@ -68,6 +68,8 @@
             getIsInternal().setEntity(false);
             getSizeExtend().setIsAvailable(false);
         }
+
+        updateReadOnlyChangeability();
     }
 
     @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 5e93023..8ce3dd9 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
@@ -2182,5 +2182,8 @@
 
     @DefaultStringValue("VirtIO-SCSI is not supported for the selected OS")
     String cannotEnableVirtioScsiForOs();
+
+    @DefaultStringValue("An IDE disk can't be read-only.")
+    String cannotEnableIdeInterfaceForReadOnlyDisk();
 }
 


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

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

Reply via email to