Alon Bar-Lev has uploaded a new change for review. Change subject: packaging: serve root customizable location resources ......................................................................
packaging: serve root customizable location resources resources are hard coded within root's web.xml, while in development mode and in different distributions locations may be altered. this change resolves resource name contained variables at ${xxx} notation using LocalConfig. Change-Id: I94f845d36bb075c238e50606187bc22316713cdd Signed-off-by: Alon Bar-Lev <alo...@redhat.com> --- M Makefile M backend/manager/conf/engine.conf.defaults.in M backend/manager/modules/root/src/main/java/org/ovirt/engine/core/FileServlet.java M backend/manager/modules/root/src/main/java/org/ovirt/engine/core/pki/PKIResourceServlet.java M backend/manager/modules/root/src/main/webapp/WEB-INF/web.xml M backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/LocalConfig.java M packaging/fedora/spec/ovirt-engine.spec.in 7 files changed, 48 insertions(+), 22 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/54/14354/1 diff --git a/Makefile b/Makefile index 908ed36..5b46c03 100644 --- a/Makefile +++ b/Makefile @@ -52,11 +52,13 @@ SYSCONF_DIR=$(PREFIX)/etc DATAROOT_DIR=$(PREFIX)/share MAN_DIR=$(DATAROOT_DIR)/man +DOC_DIR=$(DATEROOT_DIR)/doc DATA_DIR=$(DATAROOT_DIR)/$(ENGINE_NAME) MAVENPOM_DIR=$(DATAROOT_DIR)/maven-poms JAVA_DIR=$(DATAROOT_DIR)/java PKG_SYSCONF_DIR=$(SYSCONF_DIR)/$(ENGINE_NAME) PKG_PKI_DIR=$(SYSCONF_DIR)/pki/$(ENGINE_NAME) +PKG_DOC_DIR=$(DOC_DIR)/$(ENGINE_NAME) PKG_EAR_DIR=$(DATA_DIR)/engine.ear PKG_JBOSS_MODULES=$(DATA_DIR)/modules PKG_CACHE_DIR=$(LOCALSTATE_DIR)/cache/$(ENGINE_NAME) @@ -64,6 +66,7 @@ PKG_TMP_DIR=$(LOCALSTATE_DIR)/tmp/$(ENGINE_NAME) PKG_USER=ovirt PKG_GROUP=ovirt +SPICE_DIR=/usr/share/spice RPMBUILD=rpmbuild PYTHON=python PYTHON_DIR:=$(shell $(PYTHON) -c "from distutils.sysconfig import get_python_lib as f;print(f())") @@ -116,6 +119,7 @@ -e "s|@ENGINE_LOG@|$(PKG_LOG_DIR)|g" \ -e "s|@ENGINE_TMP@|$(PKG_TMP_DIR)|g" \ -e "s|@ENGINE_USR@|$(DATA_DIR)|g" \ + -e "s|@ENGINE_DOC@|$(PKG_DOC_DIR)|g" \ -e "s|@ENGINE_VAR@|$(ENGINE_STATE)|g" \ -e "s|@ENGINE_CACHE@|$(PKG_CACHE_DIR)|g" \ -e "s|@ENGINE_PID@|$(PID_DIR)/$(ENGINE_NAME).pid|g" \ @@ -123,6 +127,7 @@ -e "s|@RPM_RELEASE@|$(RPM_RELEASE)|g" \ -e "s|@PACKAGE_NAME@|$(PACKAGE_NAME)|g" \ -e "s|@PACKAGE_VERSION@|$(PACKAGE_VERSION)|g" \ + -e "s|@SPICE_DIR@|$(SPICE_DIR)|g" \ $< > $@ # List of files that will be generated from templates: diff --git a/backend/manager/conf/engine.conf.defaults.in b/backend/manager/conf/engine.conf.defaults.in index 1016321..bab73ea 100644 --- a/backend/manager/conf/engine.conf.defaults.in +++ b/backend/manager/conf/engine.conf.defaults.in @@ -30,8 +30,10 @@ ENGINE_LOG="@ENGINE_LOG@" ENGINE_TMP="@ENGINE_TMP@" ENGINE_USR="@ENGINE_USR@" +ENGINE_DOC="@ENGINE_DOC@" ENGINE_VAR="@ENGINE_VAR@" ENGINE_CACHE="@ENGINE_CACHE@" +SPICE_DIR="@SPICE_DIR@" # # Intervals for stoping the engine: diff --git a/backend/manager/modules/root/src/main/java/org/ovirt/engine/core/FileServlet.java b/backend/manager/modules/root/src/main/java/org/ovirt/engine/core/FileServlet.java index cfceac4..b8a22b2 100644 --- a/backend/manager/modules/root/src/main/java/org/ovirt/engine/core/FileServlet.java +++ b/backend/manager/modules/root/src/main/java/org/ovirt/engine/core/FileServlet.java @@ -10,6 +10,7 @@ import javax.servlet.http.HttpServletResponse; import org.apache.log4j.Logger; +import org.ovirt.engine.core.utils.LocalConfig; import org.ovirt.engine.core.utils.ServletUtils; /** @@ -84,7 +85,7 @@ } // Create the base file object: - base = new File(name); + base = new File(LocalConfig.getInstance().expandString(name)); } @Override diff --git a/backend/manager/modules/root/src/main/java/org/ovirt/engine/core/pki/PKIResourceServlet.java b/backend/manager/modules/root/src/main/java/org/ovirt/engine/core/pki/PKIResourceServlet.java index 674d2c7..d8fa669 100644 --- a/backend/manager/modules/root/src/main/java/org/ovirt/engine/core/pki/PKIResourceServlet.java +++ b/backend/manager/modules/root/src/main/java/org/ovirt/engine/core/pki/PKIResourceServlet.java @@ -14,6 +14,7 @@ import org.apache.commons.codec.binary.Base64; import org.apache.log4j.Logger; +import org.ovirt.engine.core.utils.LocalConfig; import org.ovirt.engine.core.utils.crypt.OpenSSHUtils; /** @@ -65,6 +66,8 @@ ) ); } + + this.resourceLocation = LocalConfig.getInstance().expandString(this.resourceLocation); } catch(Exception e) { log.error("Cannot initialize", e); 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 9fb47c2..877acfb 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 @@ -12,7 +12,7 @@ <servlet-class>org.ovirt.engine.core.pki.PKIResourceServlet</servlet-class> <init-param> <param-name>resource-location</param-name> - <param-value>/etc/pki/ovirt-engine/ca.pem</param-value> + <param-value>${ENGINE_PKI_CA}</param-value> </init-param> <init-param> <param-name>output-format</param-name> @@ -30,7 +30,7 @@ <servlet-class>org.ovirt.engine.core.pki.PKIResourceServlet</servlet-class> <init-param> <param-name>resource-location</param-name> - <param-value>/etc/pki/ovirt-engine/certs/engine.cer</param-value> + <param-value>${ENGINE_PKI_ENGINE_CERT}</param-value> </init-param> <init-param> <param-name>output-alias</param-name> @@ -63,7 +63,7 @@ <servlet-class>org.ovirt.engine.core.DocsServlet</servlet-class> <init-param> <param-name>file</param-name> - <param-value>/usr/share/doc/ovirt-engine/manual</param-value> + <param-value>${ENGINE_DOC}/manual</param-value> </init-param> </servlet> <servlet-mapping> @@ -81,7 +81,7 @@ </init-param> <init-param> <param-name>file</param-name> - <param-value>/usr/share/spice/SpiceX.cab</param-value> + <param-value>${SPICE_DIR}/SpiceX.cab</param-value> </init-param> </servlet> <servlet-mapping> @@ -99,7 +99,7 @@ </init-param> <init-param> <param-name>file</param-name> - <param-value>/usr/share/spice/SpiceVersion.txt</param-value> + <param-value>${SPICE_DIR}/SpiceVersion.txt</param-value> </init-param> </servlet> <servlet-mapping> @@ -117,7 +117,7 @@ </init-param> <init-param> <param-name>file</param-name> - <param-value>/usr/share/spice/SpiceX_x64.cab</param-value> + <param-value>${SPICE_DIR}/SpiceX_x64.cab</param-value> </init-param> </servlet> <servlet-mapping> @@ -135,7 +135,7 @@ </init-param> <init-param> <param-name>file</param-name> - <param-value>/usr/share/spice/SpiceVersion_x64.txt</param-value> + <param-value>${SPICE_DIR}/SpiceVersion_x64.txt</param-value> </init-param> </servlet> <servlet-mapping> @@ -153,7 +153,7 @@ </init-param> <init-param> <param-name>file</param-name> - <param-value>/etc/ovirt-engine/usbfilter.txt</param-value> + <param-value>${ENGINE_ETC}/usbfilter.txt</param-value> </init-param> </servlet> <servlet-mapping> diff --git a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/LocalConfig.java b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/LocalConfig.java index c79011c..121a428 100644 --- a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/LocalConfig.java +++ b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/LocalConfig.java @@ -175,6 +175,29 @@ } /** + * Expand string using current variables. + * + * @return Expanded string. + * @param value String. + */ + public String expandString(String value) { + for (;;) { + Matcher refMatch = REF_EXPR.matcher(value); + if (!refMatch.find()) { + break; + } + String refKey = refMatch.group(1); + String refValue = values.get(refKey); + if (refValue == null) { + break; + } + value = value.substring(0, refMatch.start()) + refValue + value.substring(refMatch.end()); + } + + return value; + } + + /** * Load the contents of a line from a properties file, expanding * references to variables. * @@ -206,19 +229,8 @@ value = value.substring(1, value.length() - 1); } - // Expand references to other parameters: - for (;;) { - Matcher refMatch = REF_EXPR.matcher(value); - if (!refMatch.find()) { - break; - } - String refKey = refMatch.group(1); - String refValue = values.get(refKey); - if (refValue == null) { - break; - } - value = value.substring(0, refMatch.start()) + refValue + value.substring(refMatch.end()); - } + // Expand nested variables + value = expandString(value); // Update the values: values.put(key, value); diff --git a/packaging/fedora/spec/ovirt-engine.spec.in b/packaging/fedora/spec/ovirt-engine.spec.in index aabbd8c..2d9ac179 100644 --- a/packaging/fedora/spec/ovirt-engine.spec.in +++ b/packaging/fedora/spec/ovirt-engine.spec.in @@ -38,6 +38,7 @@ %global engine_name ovirt-engine %global engine_etc %{_sysconfdir}/%{engine_name} %global engine_data %{_datadir}/%{engine_name} +%global engine_doc %{_docdir}/%{engine_name} %global engine_ear %{engine_data}/engine.ear %global engine_java %{_javadir}/%{engine_name} %global engine_pki %{_sysconfdir}/pki/%{engine_name} @@ -103,11 +104,13 @@ PID_DIR=%{_localstatedir}/run \\\ DATAROOT_DIR=%{_datadir} \\\ MAN_DIR=%{_mandir} \\\ + DOC_DIR=%{_docdir} \\\ PYTHON=%{__python} \\\ PYTHON_DIR=%{python_sitelib} \\\ JAVA_DIR=%{_javadir} \\\ MAVENPOM_DIR=%{_mavenpomdir} \\\ PKG_SYSCONF_DIR=%{engine_etc} \\\ + PKG_DOC_DIR=%{engine_doc} \\\ PKG_EAR_DIR=%{engine_ear} \\\ PKG_PKI_DIR=%{engine_pki} \\\ PKG_JBOSS_MODULES=%{engine_jboss_modules} \\\ -- To view, visit http://gerrit.ovirt.org/14354 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I94f845d36bb075c238e50606187bc22316713cdd 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