Daniel Erez has uploaded a new change for review. Change subject: webadmin: fix DirectLUN disk creation ......................................................................
webadmin: fix DirectLUN disk creation As progress start/stop event is no longer invoked on the model, external disk panel isn't being displayed on VmDiskPopupWidget (i.e. New disk popup is missing the LUNs list in DirectLUN view). Hence, * Removing progress indication from the inner view (external disk panel) and rely on the popup progress. * Pass proper target to AsyncQuerys on SanStorageModel/SanStorageModelBase to ensure progress on Disk and Storage popups. Change-Id: Ib5f30df2ba2f4591f6daaa6144b1af8a0d09bfd4 Signed-off-by: Daniel Erez <de...@redhat.com> --- M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmDiskPopupWidget.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/SanStorageModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/SanStorageModelBase.java 3 files changed, 26 insertions(+), 52 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/31/36831/1 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 48f265f..8464412 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 @@ -1,7 +1,15 @@ package org.ovirt.engine.ui.common.widget.uicommon.popup.vm; -import java.util.ArrayList; - +import com.google.gwt.core.client.GWT; +import com.google.gwt.editor.client.SimpleBeanEditorDriver; +import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.event.dom.client.ClickHandler; +import com.google.gwt.text.shared.AbstractRenderer; +import com.google.gwt.uibinder.client.UiBinder; +import com.google.gwt.uibinder.client.UiField; +import com.google.gwt.user.client.ui.FlowPanel; +import com.google.gwt.user.client.ui.Label; +import com.google.gwt.user.client.ui.VerticalPanel; import org.ovirt.engine.core.common.businessentities.Disk.DiskStorageType; import org.ovirt.engine.core.common.businessentities.DiskInterface; import org.ovirt.engine.core.common.businessentities.Quota; @@ -20,7 +28,6 @@ import org.ovirt.engine.ui.common.widget.Align; import org.ovirt.engine.ui.common.widget.RadioButtonsHorizontalPanel; 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.ListModelListBoxEditor; import org.ovirt.engine.ui.common.widget.editor.generic.EntityModelCheckBoxEditor; import org.ovirt.engine.ui.common.widget.editor.generic.IntegerEntityModelTextBoxEditor; @@ -43,18 +50,8 @@ import org.ovirt.engine.ui.uicompat.Event; import org.ovirt.engine.ui.uicompat.EventArgs; import org.ovirt.engine.ui.uicompat.IEventListener; -import org.ovirt.engine.ui.uicompat.PropertyChangedEventArgs; -import com.google.gwt.core.client.GWT; -import com.google.gwt.editor.client.SimpleBeanEditorDriver; -import com.google.gwt.event.dom.client.ClickEvent; -import com.google.gwt.event.dom.client.ClickHandler; -import com.google.gwt.text.shared.AbstractRenderer; -import com.google.gwt.uibinder.client.UiBinder; -import com.google.gwt.uibinder.client.UiField; -import com.google.gwt.user.client.ui.FlowPanel; -import com.google.gwt.user.client.ui.Label; -import com.google.gwt.user.client.ui.VerticalPanel; +import java.util.ArrayList; public class VmDiskPopupWidget extends AbstractModelBoundPopupWidget<AbstractDiskModel> { @@ -180,9 +177,6 @@ Label message; @Ignore - ProgressPopupContent progressContent; - - @Ignore IscsiStorageView iscsiStorageView; @Ignore @@ -207,7 +201,6 @@ CommonApplicationTemplates templates, boolean isLunDiskEnabled) { this.isNewLunDiskEnabled = isLunDiskEnabled; - this.progressContent = createProgressContentWidget(); this.constants = constants; initManualWidgets(constants, resources, templates); initWidget(ViewUiBinder.uiBinder.createAndBindUi(this)); @@ -288,12 +281,6 @@ interfaceInfoIcon = new InfoIcon(templates.italicText(constants.diskInterfaceInfo()), resources); } - private ProgressPopupContent createProgressContentWidget() { - ProgressPopupContent progressPopupContent = new ProgressPopupContent(); - progressPopupContent.setHeight("100%"); //$NON-NLS-1$ - return progressPopupContent; - } - @Override public void focusInput() { sizeEditor.setFocus(true); @@ -357,7 +344,6 @@ // Create IscsiStorageModel iscsiStorageModel = new IscsiStorageModel(); iscsiStorageModel.setContainer(storageModel); - iscsiStorageModel.getPropertyChangedEvent().addListener(progressEventHandler); iscsiStorageModel.setIsGrouppedByTarget(true); iscsiStorageModel.setIgnoreGrayedOut(true); @@ -367,7 +353,6 @@ // Create FcpStorageModel fcpStorageModel = new FcpStorageModel(); fcpStorageModel.setContainer(storageModel); - fcpStorageModel.getPropertyChangedEvent().addListener(progressEventHandler); fcpStorageModel.setIsGrouppedByTarget(false); fcpStorageModel.setIgnoreGrayedOut(true); fcpStorageView = new FcpStorageView(false, 278, 240); @@ -431,25 +416,15 @@ // Execute 'UpdateCommand' to call 'GetDeviceList' sanStorageModel.getUpdateCommand().execute(); + + sanStorageModel.setWidgetModel(diskModel); + externalDiskPanel.clear(); + externalDiskPanel.add(storageView); } public boolean handleEnterKeyDisabled() { return storageView != null && storageView.isSubViewFocused(); } - - final IEventListener<PropertyChangedEventArgs> progressEventHandler = new IEventListener<PropertyChangedEventArgs>() { - @Override - public void eventRaised(Event<? extends PropertyChangedEventArgs> ev, Object sender, PropertyChangedEventArgs args) { - if (PropertyChangedEventArgs.PROGRESS.equals(args.propertyName)) { - externalDiskPanel.clear(); - if (sanStorageModel.getProgress() != null) { - externalDiskPanel.add(progressContent); - } else { - externalDiskPanel.add(storageView); - } - } - } - }; @Override public AbstractDiskModel flush() { diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/SanStorageModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/SanStorageModel.java index 1178cec..41f2588 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/SanStorageModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/SanStorageModel.java @@ -135,10 +135,11 @@ clearItems(); initializeItems(null, null); - AsyncQuery asyncQuery = new AsyncQuery(this, new INewAsyncCallback() { + final SanStorageModel model = this; + Object target = getWidgetModel() != null ? getWidgetModel() : getContainer(); + AsyncQuery asyncQuery = new AsyncQuery(target, new INewAsyncCallback() { @Override public void onSuccess(Object target, Object returnValue) { - SanStorageModel model = (SanStorageModel) target; VdcQueryReturnValue response = (VdcQueryReturnValue) returnValue; if (response.getSucceeded()) { model.applyData((ArrayList<LUNs>) response.getReturnValue(), false); diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/SanStorageModelBase.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/SanStorageModelBase.java index 9db0554..6224354 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/SanStorageModelBase.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/SanStorageModelBase.java @@ -287,9 +287,7 @@ } } - private void postLogin(FrontendActionAsyncResult result) { - VdcReturnValueBase returnValue = result.getReturnValue(); - SanStorageModelBase sanStorageModel = (SanStorageModelBase) result.getState(); + private void postLogin( VdcReturnValueBase returnValue, SanStorageModelBase sanStorageModel) { SanTargetModel sanTargetModel = sanStorageModel.targetsToConnect.remove(0); boolean success = returnValue != null && returnValue.getSucceeded(); @@ -316,11 +314,11 @@ ArrayList<VdcActionParametersBase> parameters = new ArrayList<VdcActionParametersBase>(); ArrayList<IFrontendActionAsyncCallback> callbacks = new ArrayList<IFrontendActionAsyncCallback>(); + final SanStorageModelBase sanStorageModel = this; IFrontendActionAsyncCallback loginCallback = new IFrontendActionAsyncCallback() { @Override public void executed(FrontendActionAsyncResult result) { - SanStorageModelBase sanStorageModel = (SanStorageModelBase) result.getState(); - sanStorageModel.postLogin(result); + sanStorageModel.postLogin(result.getReturnValue(), sanStorageModel); } }; @@ -339,9 +337,8 @@ callbacks.add(loginCallback); } - getContainer().startProgress(null); - - Frontend.getInstance().runMultipleActions(actionTypes, parameters, callbacks, null, this); + Object target = getWidgetModel() != null ? getWidgetModel() : getContainer(); + Frontend.getInstance().runMultipleActions(actionTypes, parameters, callbacks, null, target); } private void sanTargetModel_LoggedIn(Object sender, EventArgs args) @@ -394,10 +391,11 @@ setMessage(null); - AsyncQuery asyncQuery = new AsyncQuery(this, new INewAsyncCallback() { + final SanStorageModelBase model = this; + Object target = getWidgetModel() != null ? getWidgetModel() : getContainer(); + AsyncQuery asyncQuery = new AsyncQuery(target, new INewAsyncCallback() { @Override public void onSuccess(Object target, Object returnValue) { - SanStorageModelBase model = (SanStorageModelBase) target; Object result = ((VdcQueryReturnValue) returnValue).getReturnValue(); model.postDiscoverTargetsInternal(result != null ? (ArrayList<StorageServerConnections>) result : new ArrayList<StorageServerConnections>()); -- To view, visit http://gerrit.ovirt.org/36831 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ib5f30df2ba2f4591f6daaa6144b1af8a0d09bfd4 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