Ravi Nori has uploaded a new change for review. Change subject: core, webadmin : Fix issues with reports integration ......................................................................
core, webadmin : Fix issues with reports integration Reports tab and right click reports generation need to use different url to access reports. Reports tab is not updated when clicking on system tree. Sometimes null uri is sent to reports. Change-Id: Id5e91aa80dcd4e4d4f175d0193e92d19e65281e6 Bug-Url: https://bugzilla.redhat.com/1116851 Signed-off-by: Ravi Nori <rn...@redhat.com> --- M backend/manager/modules/services/src/main/webapp/WEB-INF/web.xml M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/ReportInit.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/SearchableListModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/reports/ReportsListModel.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/MainTabReportsPresenter.java M packaging/services/ovirt-engine/ovirt-engine.conf.in 6 files changed, 35 insertions(+), 41 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/89/33289/1 diff --git a/backend/manager/modules/services/src/main/webapp/WEB-INF/web.xml b/backend/manager/modules/services/src/main/webapp/WEB-INF/web.xml index 7aad30f..7eaeeb3 100644 --- a/backend/manager/modules/services/src/main/webapp/WEB-INF/web.xml +++ b/backend/manager/modules/services/src/main/webapp/WEB-INF/web.xml @@ -69,6 +69,19 @@ </servlet-mapping> <servlet> + <servlet-name>reports-rightclick-redirect</servlet-name> + <servlet-class>org.ovirt.engine.core.utils.servlet.RedirectServlet</servlet-class> + <init-param> + <param-name>url</param-name> + <param-value>%{ENGINE_REPORTS_RIGHTCLICK_URL}</param-value> + </init-param> + </servlet> + <servlet-mapping> + <servlet-name>reports-rightclick-redirect</servlet-name> + <url-pattern>/reports-rightclick-redirect</url-pattern> + </servlet-mapping> + + <servlet> <servlet-name>reports-interface-proxy</servlet-name> <servlet-class>org.ovirt.engine.core.services.ProxyServlet</servlet-class> <init-param> diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/ReportInit.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/ReportInit.java index b4b8d8a..8900783 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/ReportInit.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/ReportInit.java @@ -27,6 +27,7 @@ private static final int MAX_RETRY_COUNTS = 20; private static final int RETRY_INTERVAL = 30000; public static final String REDIRECT_SERVICE = "services/reports-redirect"; //$NON-NLS-1$ + public static final String RIGHT_CLICK_REDIRECT_SERVICE = "services/reports-rightclick-redirect"; //$NON-NLS-1$ public static final String STATUS_SERVICE = "services/reports-interface-proxy?command=status"; //$NON-NLS-1$ public static final String XML_SERVICE = "services/reports-interface-proxy?command=webadmin-ui-xml"; //$NON-NLS-1$ private int retryCount; @@ -37,6 +38,7 @@ private boolean initEventRaised; private Event reportsInitEvent; private String reportBaseUrl; + private String reportRightClickUrl; private String ssoToken; private boolean isCommunityEdition; @@ -58,6 +60,7 @@ // As this class has it's state, it needs to be inited again initState(); setReportBaseUrl(buildUrl(REDIRECT_SERVICE)); + setReportRightClickUrl(buildUrl(RIGHT_CLICK_REDIRECT_SERVICE)); parseReportsXML(); } @@ -68,6 +71,7 @@ scheduledStatusCheckInProgress = false; initEventRaised = false; reportBaseUrl = ""; //$NON-NLS-1$ + reportRightClickUrl = ""; //$NON-NLS-1$ isCommunityEdition = false; resourceMap = new HashMap<String, Resource>(); dashboardMap = new HashMap<String, Dashboard>(); @@ -194,6 +198,14 @@ return reportBaseUrl; } + public void setReportRightClickUrl(String reportRightClickUrl) { + this.reportRightClickUrl = reportRightClickUrl; + } + + public String getReportRightClickUrl() { + return reportRightClickUrl; + } + public void setSsoToken(final String token) { this.ssoToken = token; checkIfInitFinished(); diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/SearchableListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/SearchableListModel.java index 781ba8b..43a5fca 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/SearchableListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/SearchableListModel.java @@ -517,7 +517,7 @@ protected ReportModel createReportModel() { ReportCommand reportCommand = (ReportCommand) getLastExecutedCommand(); - ReportModel reportModel = new ReportModel(ReportInit.getInstance().getReportBaseUrl(), + ReportModel reportModel = new ReportModel(ReportInit.getInstance().getReportRightClickUrl(), ReportInit.getInstance().getSsoToken()); reportModel.setReportUnit(reportCommand.getUriValue()); diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/reports/ReportsListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/reports/ReportsListModel.java index 7e7bf22..ef82755 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/reports/ReportsListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/reports/ReportsListModel.java @@ -26,6 +26,7 @@ HtmlParameters htmlParams = new HtmlParameters(); private String lastResourceId = ""; //$NON-NLS-1$ private final String reportUrl; + private String uri; public ReportsListModel(String baseUrl, String ssoToken) { reportUrl = baseUrl; @@ -70,6 +71,7 @@ } public void setUri(String uri) { + this.uri = uri; if (ReportInit.getInstance().isCommunityEdition()) { htmlParams.setParameter("reportUnit", uri); //$NON-NLS-1$ } else { @@ -77,6 +79,10 @@ } } + public String getUri() { + return uri; + } + private void clearTreeSensitiveParams() { removeParam("P_DataCenter_ID"); //$NON-NLS-1$ removeParam(lastResourceId); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/MainTabReportsPresenter.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/MainTabReportsPresenter.java index 34de248..220b374 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/MainTabReportsPresenter.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/MainTabReportsPresenter.java @@ -3,18 +3,12 @@ import java.util.List; import java.util.Map; -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.place.PlaceRequestFactory; import org.ovirt.engine.ui.common.uicommon.model.MainModelProvider; import org.ovirt.engine.ui.common.widget.Align; import org.ovirt.engine.ui.common.widget.tab.ModelBoundTabData; import org.ovirt.engine.ui.common.widget.table.ActionTable; import org.ovirt.engine.ui.uicommonweb.ErrorPopupManager; -import org.ovirt.engine.ui.uicommonweb.ReportInit; import org.ovirt.engine.ui.uicommonweb.models.reports.ReportsListModel; import org.ovirt.engine.ui.uicompat.Event; import org.ovirt.engine.ui.uicompat.EventArgs; @@ -38,8 +32,6 @@ public class MainTabReportsPresenter extends AbstractMainTabPresenter<Void, ReportsListModel, MainTabReportsPresenter.ViewDef, MainTabReportsPresenter.ProxyDef> { private static boolean reportsWebappDeployed = false; - private final ErrorPopupManager errorPopupManager; - private final ApplicationConstants applicationConstants; @ProxyCodeSplit @NameToken(ApplicationPlaces.reportsMainTabPlace) @@ -63,35 +55,7 @@ ErrorPopupManager errorPopupManager, ApplicationConstants applicationConstants, PlaceManager placeManager, MainModelProvider<Void, ReportsListModel> modelProvider) { super(eventBus, view, proxy, placeManager, modelProvider); - this.errorPopupManager = errorPopupManager; - this.applicationConstants = applicationConstants; getModel().getReportsAvailabilityEvent().addListener(new ReportsModelRefreshEvent()); - } - - private void checkUpdateReportsPanel(final String url, - final Map<String, List<String>> params) { - RequestBuilder requestBuilder = ReportInit.constructServiceRequestBuilder(ReportInit.STATUS_SERVICE); - try { - requestBuilder.setTimeoutMillis(1000); - requestBuilder.sendRequest(null, new RequestCallback() { - @Override - public void onError(Request request, Throwable exception) { - errorPopupManager.show(applicationConstants.reportsWebAppNotDeployedMsg()); - } - - @Override - public void onResponseReceived(Request request, Response response) { - if (response.getStatusCode() == Response.SC_OK) { - reportsWebappDeployed = true; - getView().updateReportsPanel(url, params); - } else { - errorPopupManager.show(applicationConstants.reportsWebAppNotDeployedMsg()); - } - } - }); - } catch (RequestException e) { - errorPopupManager.show(applicationConstants.reportsWebAppErrorMsg()); - } } @Override @@ -103,6 +67,7 @@ @Override protected void onReveal() { super.onReveal(); + reportsWebappDeployed = true; getModel().updateReportsAvailability(); } @@ -110,7 +75,6 @@ protected void onReset() { super.onReset(); if (!hasReportsModelRefreshEvent()) { - reportsWebappDeployed = false; getModel().getReportsAvailabilityEvent().addListener(new ReportsModelRefreshEvent()); } setSubTabPanelVisible(false); @@ -129,10 +93,8 @@ class ReportsModelRefreshEvent implements IEventListener<EventArgs> { @Override public void eventRaised(Event<EventArgs> ev, Object sender, EventArgs args) { - if (reportsWebappDeployed) { + if (reportsWebappDeployed && getModel().getUri() != null) { getView().updateReportsPanel(getModel().getUrl(), getModel().getParams()); - } else { - checkUpdateReportsPanel(getModel().getUrl(), getModel().getParams()); } } } diff --git a/packaging/services/ovirt-engine/ovirt-engine.conf.in b/packaging/services/ovirt-engine/ovirt-engine.conf.in index b8f396c..bfb10fd 100644 --- a/packaging/services/ovirt-engine/ovirt-engine.conf.in +++ b/packaging/services/ovirt-engine/ovirt-engine.conf.in @@ -220,6 +220,7 @@ ENGINE_REPORTS_VERIFY_HOST=true ENGINE_REPORTS_VERIFY_CHAIN=true ENGINE_REPORTS_READ_TIMEOUT= +ENGINE_REPORTS_RIGHTCLICK_URL= ENGINE_EXTENSION_PATH="${ENGINE_USR}/extensions.d:${ENGINE_ETC}/extensions.d" -- To view, visit http://gerrit.ovirt.org/33289 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Id5e91aa80dcd4e4d4f175d0193e92d19e65281e6 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Ravi Nori <rn...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches