Ravi Nori has uploaded a new change for review.

Change subject: core : Display custom error page if reports is not installed
......................................................................

core : Display custom error page if reports is not installed

When reports is not installed the link from
/ovirt-engine/ page takes you to 404 page when
user clicks on reports link.

A custom error page is displayed that shows
the message that reports is not installed

Change-Id: Idaed902328695e2d448ac49c414ddfbde8d3fd25
Bug-Url: https://bugzilla.redhat.com/1143998
Signed-off-by: Ravi Nori <rn...@redhat.com>
---
M backend/manager/modules/services/src/main/webapp/WEB-INF/web.xml
M 
backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/servlet/RedirectServlet.java
M backend/manager/modules/welcome/src/main/resources/messages.properties
M backend/manager/modules/welcome/src/main/webapp/WEB-INF/web.xml
M packaging/services/ovirt-engine/ovirt-engine.conf.in
5 files changed, 40 insertions(+), 9 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/39/33639/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 eacb753..656532f 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
@@ -62,6 +62,10 @@
           <param-name>url</param-name>
           <param-value>%{ENGINE_REPORTS_BASE_URL}</param-value>
       </init-param>
+      <init-param>
+          <param-name>url404</param-name>
+          <param-value>%{ENGINE_REPORTS_NOT_INSTALLED_URL}</param-value>
+      </init-param>
   </servlet>
   <servlet-mapping>
       <servlet-name>reports-redirect</servlet-name>
diff --git 
a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/servlet/RedirectServlet.java
 
b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/servlet/RedirectServlet.java
index 51285b1..faa5ccd 100644
--- 
a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/servlet/RedirectServlet.java
+++ 
b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/servlet/RedirectServlet.java
@@ -27,8 +27,11 @@
     private static final long serialVersionUID = -1794616863361241804L;
 
     private static final String URL = "url";
+    private static final String URL404 = "url404";
 
     private String url;
+    private String url404;
+    private static final String url404Default = 
EngineLocalConfig.getInstance().getEngineURI() + "/404.html";
 
     @Override
     public void init(ServletConfig config) throws ServletException {
@@ -36,19 +39,29 @@
 
         // we use %{x} convention to avoid conflict with jboss properties
         url = 
EngineLocalConfig.getInstance().expandString(config.getInitParameter(URL).replaceAll("%\\{",
 "\\${"));
+        String url404ConfigValue = config.getInitParameter(URL404);
+        if (StringUtils.isNotEmpty(url404ConfigValue)) {
+            url404 = 
EngineLocalConfig.getInstance().expandString(url404ConfigValue.replaceAll("%\\{",
 "\\${"));
+        } else {
+            url404 = url404Default;
+        }
     }
 
     @Override
     protected void doGet(HttpServletRequest request, HttpServletResponse 
response) throws ServletException, IOException {
         String redirectUrl = url;
-        String queryString = request.getQueryString();
-        if (StringUtils.isNotEmpty(queryString)) {
-            if (redirectUrl.indexOf("?") == -1) {
-                redirectUrl += "?";
-            } else {
-                redirectUrl += "&";
+        if (StringUtils.isNotEmpty(redirectUrl)) {
+            String queryString = request.getQueryString();
+            if (StringUtils.isNotEmpty(queryString)) {
+                if (redirectUrl.indexOf("?") == -1) {
+                    redirectUrl += "?";
+                } else {
+                    redirectUrl += "&";
+                }
+                redirectUrl += queryString;
             }
-            redirectUrl += queryString;
+        } else {
+            redirectUrl = url404;
         }
         response.sendRedirect(redirectUrl);
     }
diff --git 
a/backend/manager/modules/welcome/src/main/resources/messages.properties 
b/backend/manager/modules/welcome/src/main/resources/messages.properties
index ab2a054..35d4da1 100644
--- a/backend/manager/modules/welcome/src/main/resources/messages.properties
+++ b/backend/manager/modules/welcome/src/main/resources/messages.properties
@@ -4,3 +4,6 @@
 #405 error page
 methodnotallowed.method_not_allowed=405 - Method not allowed
 methodnotallowed.link=Click here to continue.
+#reports not installed error page
+reportsnotinstalled.reports_not_installed=Reports not installed
+reportsnotinstalled.link=Click here to continue.
diff --git a/backend/manager/modules/welcome/src/main/webapp/WEB-INF/web.xml 
b/backend/manager/modules/welcome/src/main/webapp/WEB-INF/web.xml
index ea806a8..f6180d3 100644
--- a/backend/manager/modules/welcome/src/main/webapp/WEB-INF/web.xml
+++ b/backend/manager/modules/welcome/src/main/webapp/WEB-INF/web.xml
@@ -61,7 +61,18 @@
     <url-pattern>/405.html</url-pattern>
   </servlet-mapping>
 
-  <!-- Welcome page -->
+  <!-- ReportsNotInstalled Servlet -->
+  <servlet>
+      <servlet-name>ReportsNotInstalledServlet</servlet-name>
+      <jsp-file>/WEB-INF/ReportsNotInstalled.jsp</jsp-file>
+  </servlet>
+
+  <servlet-mapping>
+      <servlet-name>ReportsNotInstalledServlet</servlet-name>
+      <url-pattern>/ReportsNotInstalled.html</url-pattern>
+  </servlet-mapping>
+
+    <!-- Welcome page -->
   <servlet>
     <servlet-name>WelcomeServlet</servlet-name>
     <servlet-class>org.ovirt.engine.core.WelcomeServlet</servlet-class>
diff --git a/packaging/services/ovirt-engine/ovirt-engine.conf.in 
b/packaging/services/ovirt-engine/ovirt-engine.conf.in
index c7411d7..caf1606 100644
--- a/packaging/services/ovirt-engine/ovirt-engine.conf.in
+++ b/packaging/services/ovirt-engine/ovirt-engine.conf.in
@@ -219,6 +219,6 @@
 ENGINE_REPORTS_VERIFY_CHAIN=true
 ENGINE_REPORTS_READ_TIMEOUT=
 ENGINE_REPORTS_RIGHTCLICK_URL=
-
+ENGINE_REPORTS_NOT_INSTALLED_URL=/ovirt-engine/ReportsNotInstalled.html
 
 ENGINE_EXTENSION_PATH="${ENGINE_USR}/extensions.d:${ENGINE_ETC}/extensions.d"


-- 
To view, visit http://gerrit.ovirt.org/33639
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Idaed902328695e2d448ac49c414ddfbde8d3fd25
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.5
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