Vered Volansky has uploaded a new change for review.

Change subject: core: Disallow RO LUN ISCSI disks in UI
......................................................................

core: Disallow RO LUN ISCSI disks in UI

Qemu currently does not support Direct-LUN disks connected using
Virt-IO-SCSI. This patch blocks this option from UI when adding a new
LUN disk with Virt-IO-SCSI interface to a VM.

Change-Id: Iffe7996a3134b775e95325a58c6659b64ff4da2f
Bug-Url: https://bugzilla.redhat.com/1082673
Signed-off-by: Vered Volansky <[email protected]>
---
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/disks/DisksViewColumns.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/AbstractDiskModel.java
M 
frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java
3 files changed, 26 insertions(+), 7 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/53/27453/1

diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/disks/DisksViewColumns.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/disks/DisksViewColumns.java
index 6d35bbd..2f83f8c 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/disks/DisksViewColumns.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/disks/DisksViewColumns.java
@@ -265,8 +265,8 @@
         }) {
             @Override
             protected boolean canEdit(EntityModel object) {
-                    return true;
-                }
+                return true;
+            }
 
             @Override
             public Boolean getValue(EntityModel object) {
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 cc8bb73..d9148ef 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
@@ -666,13 +666,22 @@
     protected void updateReadOnlyChangeability() {
         DiskInterface diskInterface = (DiskInterface) 
getDiskInterface().getSelectedItem();
 
-        if (DiskInterface.IDE.equals(diskInterface)) {
+        if (diskInterface == DiskInterface.IDE) {
             
getIsReadOnly().setChangeProhibitionReason(CONSTANTS.cannotEnableIdeInterfaceForReadOnlyDisk());
             getIsReadOnly().setIsChangable(false);
+            getIsReadOnly().setEntity(false);
+            return;
         }
-        else {
-            getIsReadOnly().setIsChangable(isEditEnabled());
+        boolean isVirtIoScsiLun = 
Boolean.FALSE.equals(getIsInternal().getEntity()) && diskInterface == 
DiskInterface.VirtIO_SCSI;
+        if (isVirtIoScsiLun) {
+            
getIsReadOnly().setChangeProhibitionReason(CONSTANTS.cannotEnableVirtIoScsiInterfaceForLunReadOnlyDisk());
+            getIsReadOnly().setIsChangable(false);
+            getIsReadOnly().setEntity(false);
+            return;
         }
+
+        getIsReadOnly().setEntity(false);
+        getIsReadOnly().setIsChangable(isEditEnabled());
     }
 
     private void updatePlugChangeability() {
@@ -695,8 +704,7 @@
     }
 
     private void wipeAfterDelete_EntityChanged(EventArgs e) {
-        if (!getIsWipeAfterDelete().getIsChangable() && (Boolean) 
getIsWipeAfterDelete().getEntity())
-        {
+        if (!getIsWipeAfterDelete().getIsChangable() && (Boolean) 
getIsWipeAfterDelete().getEntity()) {
             getIsWipeAfterDelete().setEntity(false);
         }
     }
@@ -791,6 +799,14 @@
                     
result.getReasons().add(ConstantsManager.getInstance().getConstants().cannotEnableIdeInterfaceForReadOnlyDisk());
                 }
 
+                if (Boolean.FALSE.equals(getIsInternal().getEntity()) &&
+                        getDiskInterface().getSelectedItem() == 
DiskInterface.VirtIO_SCSI &&
+                        Boolean.TRUE.equals(getIsReadOnly().getEntity()))
+                {
+                    result.setSuccess(false);
+                    
result.getReasons().add(ConstantsManager.getInstance().getConstants().cannotEnableIdeInterfaceForReadOnlyDisk());
+                }
+
                 return result;
             }
         }});
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 ec32e8b..fa3f5f4 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
@@ -2223,6 +2223,9 @@
     @DefaultStringValue("Are you sure you want to place the following storage 
domain(s) into maintenance mode?")
     String 
areYouSureYouWantToPlaceFollowingStorageDomainsIntoMaintenanceModeMsg();
 
+    @DefaultStringValue("A VirtIO-ISCSI LUN disk can't be read-only.")
+    String cannotEnableVirtIoScsiInterfaceForLunReadOnlyDisk();
+
     @DefaultStringValue("Global Maintenance Enabled")
     String haGlobalMaintenance();
 


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

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

Reply via email to