Alon Bar-Lev has uploaded a new change for review.

Change subject: packaging: introduce generic file serving
......................................................................

packaging: introduce generic file serving

current implementation adds a reference for each file within root
web.xml, this is inflexible to manage and add new files as needed.

new implementation defines maps /ovirt-engine-files URI into
/usr/share/ovirt-engine/files, every file within that directory will be
exposed to application.

packaging can add misc files or symlinks to expose files based on
specific location or capabilities.

I am really tempted to use the same mechanism for the novnc and
spice-html5, as we can symlink these at packaging as well instead of
having it in configuration, removing from proxy and web.xml.

Change-Id: I1cd8b39ff2647bc006e09d50c9fc7088fcef7434
Signed-off-by: Alon Bar-Lev <alo...@redhat.com>
---
M Makefile
M backend/manager/modules/root/src/main/webapp/WEB-INF/web.xml
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Configurator.java
M ovirt-engine.spec.in
M packaging/conf/ovirt-engine-proxy.conf.v2.in
M packaging/services/ovirt-engine/ovirt-engine.conf.in
6 files changed, 21 insertions(+), 96 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/53/19553/1

diff --git a/Makefile b/Makefile
index e8c936f..12c2475 100644
--- a/Makefile
+++ b/Makefile
@@ -61,7 +61,6 @@
 PKG_LOG_DIR=$(LOCALSTATE_DIR)/log/$(ENGINE_NAME)
 PKG_TMP_DIR=$(LOCALSTATE_DIR)/tmp/$(ENGINE_NAME)
 PKG_STATE_DIR=$(LOCALSTATE_DIR)/lib/$(ENGINE_NAME)
-SPICE_DIR=/usr/share/spice
 JBOSS_HOME=/usr/share/jboss-as
 PYTHON_DIR=$(PYTHON_SYS_DIR)
 DEV_PYTHON_DIR=
@@ -147,7 +146,6 @@
        -e "s|@PACKAGE_NAME@|$(PACKAGE_NAME)|g" \
        -e "s|@PACKAGE_VERSION@|$(PACKAGE_VERSION)|g" \
        -e "s|@DISPLAY_VERSION@|$(DISPLAY_VERSION)|g" \
-       -e "s|@SPICE_DIR@|$(SPICE_DIR)|g" \
        -e "s|@JBOSS_HOME@|$(JBOSS_HOME)|g" \
        $< > $@
 
@@ -339,7 +337,7 @@
        $(MAKE) copy-recursive SOURCEDIR=packaging/sys-etc 
TARGETDIR="$(DESTDIR)$(SYSCONF_DIR)" EXCLUDE_GEN="$(GENERATED)"
        $(MAKE) copy-recursive SOURCEDIR=packaging/etc 
TARGETDIR="$(DESTDIR)$(PKG_SYSCONF_DIR)" EXCLUDE_GEN="$(GENERATED)"
        $(MAKE) copy-recursive SOURCEDIR=packaging/pki 
TARGETDIR="$(DESTDIR)$(PKG_PKI_DIR)" EXCLUDE_GEN="$(GENERATED)"
-       for d in bin branding conf firewalld services setup; do \
+       for d in bin branding conf files firewalld services setup; do \
                $(MAKE) copy-recursive SOURCEDIR="packaging/$${d}" 
TARGETDIR="$(DESTDIR)$(DATA_DIR)/$${d}" EXCLUDE_GEN="$(GENERATED)"; \
        done
        $(MAKE) copy-recursive SOURCEDIR=packaging/man 
TARGETDIR="$(DESTDIR)$(MAN_DIR)" EXCLUDE_GEN="$(GENERATED)"
@@ -373,6 +371,9 @@
        install -d -m 755 "$(DESTDIR)$(PKG_SYSCONF_DIR)/branding"
        install -d -m 750 "$(DESTDIR)$(PKG_STATE_DIR)/backups"
 
+       install -d -m 0755 "$(DESTDIR)$(DATA_DIR)/files/spice"
+       ln -s "$(PKG_SYSCONF_DIR)/usbfilter.txt" 
"$(DESTDIR)$(DATA_DIR)/files/spice/usbfilter.txt"
+
        install -d -m 755 "$(DESTDIR)$(PKG_SYSCONF_DIR)/branding"
        -rm -f "$(DESTDIR)$(PKG_SYSCONF_DIR)/branding/00-ovirt.brand"
        ln -s "$(DATA_DIR)/branding/ovirt.brand" 
"$(DESTDIR)$(PKG_SYSCONF_DIR)/branding/00-ovirt.brand"
diff --git a/backend/manager/modules/root/src/main/webapp/WEB-INF/web.xml 
b/backend/manager/modules/root/src/main/webapp/WEB-INF/web.xml
index 8c92a34..10837ad 100644
--- a/backend/manager/modules/root/src/main/webapp/WEB-INF/web.xml
+++ b/backend/manager/modules/root/src/main/webapp/WEB-INF/web.xml
@@ -71,6 +71,20 @@
     <url-pattern>/docs/*</url-pattern>
   </servlet-mapping>
 
+  <!-- Documentation: -->
+  <servlet>
+    <servlet-name>files</servlet-name>
+    <servlet-class>org.ovirt.engine.core.FileServlet</servlet-class>
+    <init-param>
+      <param-name>file</param-name>
+      <param-value>%{ENGINE_USR}/files</param-value>
+    </init-param>
+  </servlet>
+  <servlet-mapping>
+    <servlet-name>files</servlet-name>
+    <url-pattern>/ovirt-engine-files/*</url-pattern>
+  </servlet-mapping>
+
   <!-- noVNC: -->
   <servlet>
     <servlet-name>novnc</servlet-name>
@@ -97,96 +111,6 @@
   <servlet-mapping>
     <servlet-name>spicehtml5</servlet-name>
     <url-pattern>/ovirt-engine-spicehtml5/*</url-pattern>
-  </servlet-mapping>
-
-  <!-- SpiceX.cab -->
-  <servlet>
-    <servlet-name>SpiceX.cab</servlet-name>
-    <servlet-class>org.ovirt.engine.core.FileServlet</servlet-class>
-    <init-param>
-      <param-name>type</param-name>
-      <param-value>application/octet-stream</param-value>
-    </init-param>
-    <init-param>
-      <param-name>file</param-name>
-      <param-value>%{SPICE_DIR}/SpiceX.cab</param-value>
-    </init-param>
-  </servlet>
-  <servlet-mapping>
-    <servlet-name>SpiceX.cab</servlet-name>
-    <url-pattern>/spice/SpiceX.cab</url-pattern>
-  </servlet-mapping>
-
-  <!-- SpiceVersion.txt -->
-  <servlet>
-    <servlet-name>SpiceVersion.txt</servlet-name>
-    <servlet-class>org.ovirt.engine.core.FileServlet</servlet-class>
-    <init-param>
-      <param-name>type</param-name>
-      <param-value>text/plain</param-value>
-    </init-param>
-    <init-param>
-      <param-name>file</param-name>
-      <param-value>%{SPICE_DIR}/SpiceVersion.txt</param-value>
-    </init-param>
-  </servlet>
-  <servlet-mapping>
-    <servlet-name>SpiceVersion.txt</servlet-name>
-    <url-pattern>/spice/SpiceVersion.txt</url-pattern>
-  </servlet-mapping>
-
-  <!-- SpiceX_x64.cab -->
-  <servlet>
-    <servlet-name>SpiceX_x64.cab</servlet-name>
-    <servlet-class>org.ovirt.engine.core.FileServlet</servlet-class>
-    <init-param>
-      <param-name>type</param-name>
-      <param-value>application/octet-stream</param-value>
-    </init-param>
-    <init-param>
-      <param-name>file</param-name>
-      <param-value>%{SPICE_DIR}/SpiceX_x64.cab</param-value>
-    </init-param>
-  </servlet>
-  <servlet-mapping>
-    <servlet-name>SpiceX_x64.cab</servlet-name>
-    <url-pattern>/spice/SpiceX_x64.cab</url-pattern>
-  </servlet-mapping>
-
-  <!-- SpiceVersion_x64.txt -->
-  <servlet>
-    <servlet-name>SpiceVersion_x64.txt</servlet-name>
-    <servlet-class>org.ovirt.engine.core.FileServlet</servlet-class>
-    <init-param>
-      <param-name>type</param-name>
-      <param-value>text/plain</param-value>
-    </init-param>
-    <init-param>
-      <param-name>file</param-name>
-      <param-value>%{SPICE_DIR}/SpiceVersion_x64.txt</param-value>
-    </init-param>
-  </servlet>
-  <servlet-mapping>
-    <servlet-name>SpiceVersion_x64.txt</servlet-name>
-    <url-pattern>/spice/SpiceVersion_x64.txt</url-pattern>
-  </servlet-mapping>
-
-  <!-- USB filter: -->
-  <servlet>
-    <servlet-name>usbfilter.txt</servlet-name>
-    <servlet-class>org.ovirt.engine.core.FileServlet</servlet-class>
-    <init-param>
-      <param-name>type</param-name>
-      <param-value>text/plain</param-value>
-    </init-param>
-    <init-param>
-      <param-name>file</param-name>
-      <param-value>%{ENGINE_ETC}/usbfilter.txt</param-value>
-    </init-param>
-  </servlet>
-  <servlet-mapping>
-    <servlet-name>usbfilter.txt</servlet-name>
-    <url-pattern>/spice/usbfilter.txt</url-pattern>
   </servlet-mapping>
 
   <!-- Servlet for automatic registration of hypervisors: -->
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Configurator.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Configurator.java
index b93627a..ee96a57 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Configurator.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Configurator.java
@@ -195,7 +195,7 @@
      * Returns the base URL for retrieving Spice-related resources.
      */
     public static String getSpiceBaseURL() {
-        return FrontendUrlUtils.getRootURL() + "spice/"; //$NON-NLS-1$
+        return FrontendUrlUtils.getRootURL() + "ovirt-engine-files/spice/"; 
//$NON-NLS-1$
     }
 
     protected void setUsbFilter(String usbFilter) {
diff --git a/ovirt-engine.spec.in b/ovirt-engine.spec.in
index db07f3c..1e74b7e 100644
--- a/ovirt-engine.spec.in
+++ b/ovirt-engine.spec.in
@@ -715,6 +715,7 @@
 %dir %{engine_ear}
 %dir %{engine_etc}/osinfo.conf.d
 %{engine_data}/conf/osinfo-defaults.properties
+%{engine_data}/files/
 %{engine_ear}/META-INF
 %{engine_ear}/bll.jar
 %{engine_ear}/lib
diff --git a/packaging/conf/ovirt-engine-proxy.conf.v2.in 
b/packaging/conf/ovirt-engine-proxy.conf.v2.in
index 076725d..a4e976f 100644
--- a/packaging/conf/ovirt-engine-proxy.conf.v2.in
+++ b/packaging/conf/ovirt-engine-proxy.conf.v2.in
@@ -41,7 +41,7 @@
         ProxyPass ajp://127.0.0.1:@JBOSS_AJP_PORT@/
     </Location>
 
-    <LocationMatch 
^/(UserPortal($|/)|RHEVManagerWeb($|/)|OvirtEngineWeb($|/)|webadmin($|/)|docs($|/)|ovirt-engine-novnc/|ovirt-engine-novnc-main.html$|ovirt-engine-theme/|ovirt-engine-theme-resource/|ovirt-engine-spicehtml5/|ovirt-engine-spicehtml5-main.html$|spice/|ca.crt$|engine.ssh.key.txt$|rhevm.ssh.key.txt$|ovirt-engine-attachment/)>
+    <LocationMatch 
^/(UserPortal($|/)|RHEVManagerWeb($|/)|OvirtEngineWeb($|/)|webadmin($|/)|docs($|/)|ovirt-engine-novnc/|ovirt-engine-novnc-main.html$|ovirt-engine-theme/|ovirt-engine-theme-resource/|ovirt-engine-spicehtml5/|ovirt-engine-spicehtml5-main.html$|ca.crt$|engine.ssh.key.txt$|rhevm.ssh.key.txt$|ovirt-engine-files/|ovirt-engine-attachment/)>
         ProxyPassMatch ajp://127.0.0.1:@JBOSS_AJP_PORT@
         <IfModule deflate_module>
             AddOutputFilterByType DEFLATE text/javascript text/css text/html 
text/xml text/json application/xml application/json application/x-yaml
diff --git a/packaging/services/ovirt-engine/ovirt-engine.conf.in 
b/packaging/services/ovirt-engine/ovirt-engine.conf.in
index 30a760c..049d3ec 100644
--- a/packaging/services/ovirt-engine/ovirt-engine.conf.in
+++ b/packaging/services/ovirt-engine/ovirt-engine.conf.in
@@ -33,7 +33,6 @@
 ENGINE_DOC="@ENGINE_DOC@"
 ENGINE_VAR="@ENGINE_VAR@"
 ENGINE_CACHE="@ENGINE_CACHE@"
-SPICE_DIR="@SPICE_DIR@"
 ENGINE_NOVNC_DIR="/usr/share/novnc"
 ENGINE_SPICE_HTML5_DIR="/usr/share/spice-html5"
 ENGINE_MANUAL="${ENGINE_DOC}/manual"


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I1cd8b39ff2647bc006e09d50c9fc7088fcef7434
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Alon Bar-Lev <alo...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to