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