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
