Kanagaraj M has uploaded a new change for review. Change subject: webadmin: Fix brick advanced details hang issue ......................................................................
webadmin: Fix brick advanced details hang issue Brick Advanced details query might fail when the corresponding brick process is down. An error message will be shown in Advanced details popup if the query is failed. Change-Id: Ie880c7eb7435f96bd081473dcffe78c10f1658cd Bug-Url: https://bugzilla.redhat.com/886411 Signed-off-by: Kanagaraj M <[email protected]> --- M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/VolumeBrickListModel.java M frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/BrickAdvancedDetailsPopupView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/BrickAdvancedDetailsPopupView.ui.xml 5 files changed, 40 insertions(+), 11 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/73/10273/1 diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java index a8855bd..db3492b 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java @@ -29,6 +29,7 @@ import org.ovirt.engine.core.common.businessentities.Role; import org.ovirt.engine.core.common.businessentities.ServerCpu; import org.ovirt.engine.core.common.businessentities.StorageDomainType; +import org.ovirt.engine.core.common.businessentities.StorageServerConnections; import org.ovirt.engine.core.common.businessentities.StorageType; import org.ovirt.engine.core.common.businessentities.TagsType; import org.ovirt.engine.core.common.businessentities.VDS; @@ -46,7 +47,6 @@ import org.ovirt.engine.core.common.businessentities.permissions; import org.ovirt.engine.core.common.businessentities.storage_domains; import org.ovirt.engine.core.common.businessentities.storage_pool; -import org.ovirt.engine.core.common.businessentities.StorageServerConnections; import org.ovirt.engine.core.common.businessentities.tags; import org.ovirt.engine.core.common.businessentities.vm_pools; import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity; @@ -1096,13 +1096,6 @@ } public static void GetGlusterVolumeBrickDetails(AsyncQuery aQuery, Guid clusterId, String volume, String brick) { - aQuery.converterCallback = new IAsyncConverter() { - @Override - public Object Convert(Object source, AsyncQuery _asyncQuery) - { - return source; - } - }; GlusterVolumeAdvancedDetailsParameters parameters = new GlusterVolumeAdvancedDetailsParameters(clusterId, volume, brick, true); Frontend.RunQuery(VdcQueryType.GetGlusterVolumeAdvancedDetails, diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/VolumeBrickListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/VolumeBrickListModel.java index a85dae5..c5bcfee 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/VolumeBrickListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/VolumeBrickListModel.java @@ -20,6 +20,7 @@ import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity; import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeType; import org.ovirt.engine.core.common.businessentities.gluster.Mempool; +import org.ovirt.engine.core.common.queries.VdcQueryReturnValue; import org.ovirt.engine.ui.frontend.AsyncQuery; import org.ovirt.engine.ui.frontend.Frontend; import org.ovirt.engine.ui.frontend.INewAsyncCallback; @@ -140,7 +141,8 @@ getReplaceBrickCommand().setIsExecutionAllowed(getSelectedItems() != null && getSelectedItems().size() == 1); getBrickAdvancedDetailsCommand().setIsExecutionAllowed(getSelectedItems() != null - && getSelectedItems().size() == 1 && ((GlusterVolumeEntity) getEntity()).isOnline()); + && getSelectedItems().size() == 1 && ((GlusterVolumeEntity) getEntity()).isOnline() + && getSelectedItems().get(0) != null && ((GlusterBrickEntity) getSelectedItems().get(0)).isOnline()); } @Override @@ -712,7 +714,16 @@ public void OnSuccess(Object model, Object result) { brickModel.StopProgress(); - GlusterVolumeAdvancedDetails advDetails = (GlusterVolumeAdvancedDetails) result; + + VdcQueryReturnValue returnValue = (VdcQueryReturnValue) result; + if (returnValue == null || !returnValue.getSucceeded()) { + brickModel.setMessage(ConstantsManager.getInstance() + .getConstants() + .errorInFetchingBrickAdvancedDetails()); + return; + } + + GlusterVolumeAdvancedDetails advDetails = (GlusterVolumeAdvancedDetails) returnValue.getReturnValue(); brickModel.getBrick().setEntity(brickEntity.getQualifiedName()); if (advDetails != null && advDetails.getBrickDetails() != null && advDetails.getBrickDetails().size() == 1) @@ -736,7 +747,7 @@ brickModel.getMemoryPools().setItems(memoryPools); } } - }), volumeEntity.getClusterId(), volumeEntity.getName(), brickEntity.getQualifiedName()); + },true), volumeEntity.getClusterId(), volumeEntity.getName(), brickEntity.getQualifiedName()); UICommand command = new UICommand("Cancel", this); //$NON-NLS-1$ command.setTitle(ConstantsManager.getInstance().getConstants().close()); diff --git a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java index 4d1f2c3..7df9551 100644 --- a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java +++ b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java @@ -1389,6 +1389,9 @@ @DefaultStringValue("Brick Details") String advancedDetailsBrickTitle(); + @DefaultStringValue("Error in fetching the brick details, please try again.") + String errorInFetchingBrickAdvancedDetails(); + @DefaultStringValue("Are you sure want to remove the following Brick(s)?") String removeBricksMessage(); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/BrickAdvancedDetailsPopupView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/BrickAdvancedDetailsPopupView.java index bc1ad66..ae24836 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/BrickAdvancedDetailsPopupView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/BrickAdvancedDetailsPopupView.java @@ -25,6 +25,7 @@ import com.google.gwt.resources.client.CssResource; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; +import com.google.gwt.user.client.ui.Label; import com.google.inject.Inject; public class BrickAdvancedDetailsPopupView extends AbstractModelBoundPopupView<BrickAdvancedDetailsModel> implements BrickAdvancedDetailsPopupPresenterWidget.ViewDef { @@ -169,6 +170,10 @@ @Ignore @WithElementId EntityModelCellTable<ListModel> memoryPoolsTable; + + @UiField + @Ignore + Label messageLabel; @Inject public BrickAdvancedDetailsPopupView(EventBus eventBus, ApplicationResources resources, ApplicationConstants constants) { @@ -344,6 +349,12 @@ return Driver.driver.flush(); } + @Override + public void setMessage(String message) { + super.setMessage(message); + messageLabel.setText(message); + } + interface WidgetStyle extends CssResource { String memStatLabel(); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/BrickAdvancedDetailsPopupView.ui.xml b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/BrickAdvancedDetailsPopupView.ui.xml index 863e126..8907382 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/BrickAdvancedDetailsPopupView.ui.xml +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/BrickAdvancedDetailsPopupView.ui.xml @@ -11,14 +11,24 @@ width: 615px; border: 1px solid #CED8DF; } + .memStatLabel{ width: 150px; } + .memStatValue{ width: 150px; } + .generalValue{ width: 300px; + } + + .messageLabel { + color: #FF0000; + left: 10px; + padding-top: 50px; + padding-left: 5px; } </ui:style> @@ -39,6 +49,7 @@ <e:EntityModelLabelEditor ui:field="blockSizeEditor" /> <e:EntityModelTextAreaLabelEditor ui:field="mountOptionsEditor" /> <e:EntityModelLabelEditor ui:field="fileSystemEditor" /> + <g:Label ui:field="messageLabel" addStyleNames="{style.messageLabel}" /> </g:FlowPanel> </t:content> </t:DialogTab> -- To view, visit http://gerrit.ovirt.org/10273 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ie880c7eb7435f96bd081473dcffe78c10f1658cd Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Kanagaraj M <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
