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

Reply via email to