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

Reply via email to