Daniel Erez has uploaded a new change for review. Change subject: webadmin: disk dialog - VirtIO-SCSI availability hint ......................................................................
webadmin: disk dialog - VirtIO-SCSI availability hint Add/Edit disk dialog: When VirtIO-SCSI is supported by the cluster but disabled for the VM, display an info icon next to Interface dialog (with hinting that VirtIO-SCSI can be enabled from Resource Allocation tab on VM dialog). Change-Id: I9a2bd43de2adb0e85d3848042622fdce69e07ac0 Signed-off-by: Daniel Erez <de...@redhat.com> --- M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmDiskPopupWidget.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmDiskPopupWidget.ui.xml M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/AbstractDiskModel.java 4 files changed, 58 insertions(+), 6 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/12/21712/1 diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java index a09a55f..0fdb68b 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java @@ -1579,6 +1579,9 @@ @DefaultStringValue("Attach a VirtIO-SCSI controller when running the VM") String isVirtioScsiEnabledInfo(); + @DefaultStringValue("VirtIO-SCSI can be enabled from Resource Allocation tab on VM dialog") + String diskInterfaceInfo(); + @DefaultStringValue("FQDN") String fqdn(); @@ -1591,3 +1594,4 @@ @DefaultStringValue("Active VM before the preview") String snapshotDescriptionActiveVmBeforePreview(); } +thati \ No newline at end of file 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 1ef7cf7..c225abd 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 @@ -27,6 +27,7 @@ import org.ovirt.engine.core.common.businessentities.StorageType; import org.ovirt.engine.core.common.businessentities.VDS; import org.ovirt.engine.core.common.utils.SizeConverter; +import org.ovirt.engine.core.compat.Version; import org.ovirt.engine.ui.common.CommonApplicationConstants; import org.ovirt.engine.ui.common.CommonApplicationResources; import org.ovirt.engine.ui.common.CommonApplicationTemplates; @@ -34,6 +35,7 @@ import org.ovirt.engine.ui.common.idhandler.WithElementId; import org.ovirt.engine.ui.common.widget.Align; import org.ovirt.engine.ui.common.widget.ValidatedPanelWidget; +import org.ovirt.engine.ui.common.widget.dialog.InfoIcon; import org.ovirt.engine.ui.common.widget.dialog.ProgressPopupContent; import org.ovirt.engine.ui.common.widget.editor.EntityModelCellTable; import org.ovirt.engine.ui.common.widget.editor.EntityModelCheckBoxEditor; @@ -170,6 +172,10 @@ @WithElementId("attachDisk") EntityModelCheckBoxEditor attachEditor; + @UiField(provided = true) + @Ignore + InfoIcon interfaceInfoIcon; + @UiField @Ignore @WithElementId @@ -235,7 +241,7 @@ boolean isLunDiskEnabled) { this.isNewLunDiskEnabled = isLunDiskEnabled; this.progressContent = createProgressContentWidget(); - initManualWidgets(); + initManualWidgets(constants, resources, templates); initWidget(ViewUiBinder.uiBinder.createAndBindUi(this)); localize(constants); ViewIdHandler.idHandler.generateAndSetIds(this); @@ -267,7 +273,9 @@ } @SuppressWarnings({ "unchecked", "rawtypes" }) - private void initManualWidgets() { + private void initManualWidgets(CommonApplicationConstants constants, + CommonApplicationResources resources, + CommonApplicationTemplates templates) { storageDomainEditor = new ListModelListBoxEditor<Object>(new StorageDomainFreeSpaceRenderer()); hostListEditor = new ListModelListBoxEditor<Object>(new AbstractRenderer<Object>() { @@ -306,6 +314,8 @@ internalDiskTable = new EntityModelCellTable<ListModel>(true); externalDiskTable = new EntityModelCellTable<ListModel>(true); + + interfaceInfoIcon = new InfoIcon(templates.italicText(constants.diskInterfaceInfo()), resources); } private void initAttachPanelWidget() { @@ -572,6 +582,22 @@ } }); + disk.getIsVirtioScsiEnabled().getEntityChangedEvent().addListener(new IEventListener() { + @Override + public void eventRaised(Event ev, Object sender, EventArgs args) { + if (disk.getVm() == null) { + // not relevant for floating disks + return; + } + + boolean isVirtioScsiEnabled = Boolean.TRUE.equals(((EntityModel) sender).getEntity()); + Version clusterVersion = disk.getVm().getVdsGroupCompatibilityVersion(); + + // Show the info icon if VirtIO-SCSI is supported by the cluster but disabled for the VM + interfaceInfoIcon.setVisible(clusterVersion.compareTo(Version.v3_3) >= 0 && !isVirtioScsiEnabled); + } + }); + internalDiskRadioButton.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmDiskPopupWidget.ui.xml b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmDiskPopupWidget.ui.xml index 5d7bf2c..f29fc6f 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmDiskPopupWidget.ui.xml +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmDiskPopupWidget.ui.xml @@ -1,7 +1,8 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> <ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" xmlns:g="urn:import:com.google.gwt.user.client.ui" - xmlns:e="urn:import:org.ovirt.engine.ui.common.widget.editor" xmlns:w="urn:import:org.ovirt.engine.ui.common.widget"> + xmlns:e="urn:import:org.ovirt.engine.ui.common.widget.editor" xmlns:w="urn:import:org.ovirt.engine.ui.common.widget" + xmlns:d="urn:import:org.ovirt.engine.ui.common.widget.dialog"> <ui:with field='constants' type='org.ovirt.engine.ui.common.CommonApplicationConstants' /> @@ -78,6 +79,12 @@ .attachEditor { width: 90%; } + + .infoIcon { + float: left; + padding-top: 5px; + padding-left: 2px; + } </ui:style> <g:FlowPanel addStyleNames="{style.container}"> @@ -95,7 +102,10 @@ <e:EntityModelTextBoxEditor ui:field="sizeExtendEditor" addStyleNames="{style.boxEditor}"/> <e:EntityModelTextBoxEditor ui:field="aliasEditor" addStyleNames="{style.boxEditor}"/> <e:EntityModelTextBoxEditor ui:field="descriptionEditor" addStyleNames="{style.boxEditor}"/> - <e:ListModelListBoxEditor ui:field="interfaceEditor" addStyleNames="{style.boxEditor}"/> + <g:HorizontalPanel> + <e:ListModelListBoxEditor ui:field="interfaceEditor" addStyleNames="{style.boxEditor}"/> + <d:InfoIcon ui:field="interfaceInfoIcon" addStyleNames="{style.infoIcon}" visible="false"/> + </g:HorizontalPanel> <e:ListModelListBoxEditor ui:field="volumeTypeEditor" addStyleNames="{style.boxEditor}"/> <e:ListModelListBoxEditor ui:field="datacenterEditor" addStyleNames="{style.boxEditor}"/> <e:ListModelListBoxEditor ui:field="storageDomainEditor" addStyleNames="{style.boxEditor}"/> 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 b7b78bb..25499b9 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 @@ -227,6 +227,16 @@ this.sizeExtend = sizeExtend; } + private EntityModel<Boolean> isVirtioScsiEnabled; + + public EntityModel<Boolean> getIsVirtioScsiEnabled() { + return isVirtioScsiEnabled; + } + + public void setIsVirtioScsiEnabled(EntityModel<Boolean> virtioScsiEnabled) { + this.isVirtioScsiEnabled = virtioScsiEnabled; + } + public String getHash() { return hash; } @@ -297,6 +307,8 @@ setInternalAttachableDisks(new ListModel()); setExternalAttachableDisks(new ListModel()); + + setIsVirtioScsiEnabled(new EntityModel<Boolean>()); } public abstract boolean getIsNew(); @@ -525,14 +537,14 @@ AsyncDataProvider.isVirtioScsiEnabledForVm(new AsyncQuery(this, new INewAsyncCallback() { @Override public void onSuccess(Object model, Object returnValue1) { - final boolean isVirtioScsiDisabled = Boolean.FALSE.equals(returnValue1); + getIsVirtioScsiEnabled().setEntity(Boolean.TRUE.equals(returnValue1)); AsyncQuery asyncQuery = new AsyncQuery(this, new INewAsyncCallback() { @Override public void onSuccess(Object model, Object returnValue2) { ArrayList<DiskInterface> diskInterfaces = (ArrayList<DiskInterface>) returnValue2; - if (isVirtioScsiDisabled) { + if (Boolean.FALSE.equals(getIsVirtioScsiEnabled().getEntity())) { diskInterfaces.remove(DiskInterface.VirtIO_SCSI); } -- To view, visit http://gerrit.ovirt.org/21712 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I9a2bd43de2adb0e85d3848042622fdce69e07ac0 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Daniel Erez <de...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches