Ravi Nori has uploaded a new change for review. Change subject: webadmin: Dashboard results an error, when reports is not deployed ......................................................................
webadmin: Dashboard results an error, when reports is not deployed Reports tab shows error page when accessed after a server restart before the reports web app has been deployed A new Status servlet has been added to Reports app which is used by the webadmin to check the status of the report webapp before showing the reports web app in reports tab Change-Id: Ib6f63fe75110a6f799d355e78ed1fc0af2bd7d06 Bug-Url: https://bugzilla.redhat.com/1037667 Signed-off-by: Ravi Nori <[email protected]> --- M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabReportsView.java 1 file changed, 58 insertions(+), 1 deletion(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/79/22279/1 diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabReportsView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabReportsView.java index 2ae1dcc..d29c680 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabReportsView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabReportsView.java @@ -4,7 +4,14 @@ import java.util.Map; import java.util.Map.Entry; +import com.google.gwt.http.client.Request; +import com.google.gwt.http.client.RequestBuilder; +import com.google.gwt.http.client.RequestCallback; +import com.google.gwt.http.client.RequestException; +import com.google.gwt.http.client.Response; import org.ovirt.engine.ui.common.view.AbstractView; +import org.ovirt.engine.ui.uicommonweb.ErrorPopupManager; +import org.ovirt.engine.ui.uicommonweb.TypeResolver; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.MainTabReportsPresenter; import org.ovirt.engine.ui.webadmin.widget.form.PostableFrame; @@ -19,18 +26,68 @@ @UiField(provided = true) PostableFrame reportPostableFrame; + private static final String REPORTS_WEBAPP_ERROR_MSG = "Error getting status of Reports Webapp"; //$NON-NLS-1$ + private static final String REPORTS_WEBAPP_DEPLOYED_MSG = "Reports Webapp Deployed"; //$NON-NLS-1$ + private static final String REPORTS_WEBAPP_NOT_DEPLOYED_MSG = "Reports Webapp not deployed, please try later."; //$NON-NLS-1$ + private static boolean reportsWebappDeployed = false; + private static ErrorPopupManager errorPopupManager; + interface MainTabReportsViewUiBinder extends UiBinder<Widget, MainTabReportsView> { } public MainTabReportsView() { reportPostableFrame = new PostableFrame("dashboard"); //$NON-NLS-1$ initWidget(uiBinder.createAndBindUi(this)); - + if (errorPopupManager == null) { + errorPopupManager = (ErrorPopupManager) TypeResolver.getInstance().resolve(ErrorPopupManager.class); + } } @Override public void updateReportsPanel(String url, Map<String, List<String>> params) { + if (!reportsWebappDeployed) { + checkUpdateReportsPanel(url, params); + } else { + doUpdateReportsPanel(url, params); + } + } + + private void checkUpdateReportsPanel(final String url, + final Map<String, List<String>> params) { + RequestBuilder requestBuilder = + new RequestBuilder(RequestBuilder.GET, buildStatusUrl(url)); //$NON-NLS-1$ + try { + requestBuilder.setTimeoutMillis(1000); + requestBuilder.sendRequest(null, new RequestCallback() { + @Override + public void onError(Request request, Throwable exception) { + errorPopupManager.show(REPORTS_WEBAPP_NOT_DEPLOYED_MSG); + } + + @Override + public void onResponseReceived(Request request, Response response) { + if (response.getStatusCode() == Response.SC_OK + && response.getText().trim().equals(REPORTS_WEBAPP_DEPLOYED_MSG)) { + reportsWebappDeployed = true; + doUpdateReportsPanel(url, params); + } else { + errorPopupManager.show(REPORTS_WEBAPP_NOT_DEPLOYED_MSG); + } + } + }); + } catch (RequestException e) { + errorPopupManager.show(REPORTS_WEBAPP_ERROR_MSG); + } + } + + private String buildStatusUrl(String url) { + int index = url.lastIndexOf("/"); //$NON-NLS-1$ + return url.substring(0, index+1) + "Status"; //$NON-NLS-1$ + } + + private void doUpdateReportsPanel(String url, + Map<String, List<String>> params) { reportPostableFrame.setUrl(url); // Set parameters -- To view, visit http://gerrit.ovirt.org/22279 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ib6f63fe75110a6f799d355e78ed1fc0af2bd7d06 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Ravi Nori <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
