[lxc-devel] oracle template: fixes when using fedora host

Dwight Engen dwight.engen at oracle.com
Wed Dec 5 21:25:58 UTC 2012


Let oracle template work when host is fedora or oracle and the lsb_release
command is not present. Verify the arch given is valid. Don't add lxc.network
section again if already present.

Signed-off-by: Dwight Engen <dwight.engen at oracle.com>
---
 templates/lxc-oracle.in |   28 +++++++++++++++++++++++-----
 1 files changed, 23 insertions(+), 5 deletions(-)

diff --git a/templates/lxc-oracle.in b/templates/lxc-oracle.in
index 1720379..39bfc90 100644
--- a/templates/lxc-oracle.in
+++ b/templates/lxc-oracle.in
@@ -270,8 +270,8 @@ EOF
     # see if the network settings were already specified
     lxc_network_type=`grep '^lxc.network.type' $cfg_dir/config | awk -F'[= \t]+' '{ print $2 }'`
     if [ -z "$lxc_network_type" -a			\
-	 $host_distribution = "OracleServer" -o		\
-	 $host_distribution = "Fedora" ]; then
+	 \( $host_distribution = "OracleServer" -o	\
+	    $host_distribution = "Fedora" \) ]; then
 	    echo "lxc.network.type = veth" >>$cfg_dir/config
 	    echo "lxc.network.flags = up" >>$cfg_dir/config
 	    echo "lxc.network.link = virbr0" >>$cfg_dir/config
@@ -439,7 +439,7 @@ container_rootfs_create()
 usage()
 {
     cat <<EOF
-  -a|--arch=<arch>        architecture (ie. i686, x86_64)
+  -a|--arch=<arch>        architecture (ie. i386, x86_64)
   -R|--release=<release>  release to download for the new container
   -u|--url=<url>          replace yum repo url (ie. local yum mirror)
   -t|--templatefs=<path>  copy/clone rootfs at path instead of downloading
@@ -496,6 +496,12 @@ if [ "$arch" = "i686" ]; then
     basearch="i386"
 fi
 
+if [ "$arch" != "i386" -a "$arch" != "x86_64" ]; then
+    echo "Bad architecture given, check lxc-create"
+    usage
+    exit 1
+fi
+
 container_rootfs="$cfg_dir/rootfs"
 
 if [ -n "$template_rootfs" ]; then
@@ -514,8 +520,20 @@ if which lsb_release >/dev/null 2>&1; then
     host_release_major=`echo $host_release_version |awk -F '.' '{print $1}'`
     host_release_minor=`echo $host_release_version |awk -F '.' '{print $2}'`
 else
-    echo "Unable to determine host distribution, ensure lsb_release is installed"
-    exit 1
+    if   [ -f /etc/fedora-release ]; then
+	host_distribution="Fedora"
+	host_release_version=`cat /etc/fedora-release |awk '{print $3}'`
+	host_release_major=$host_release_version
+	host_release_minor=0
+    elif [ -f /etc/oracle-release ]; then
+	host_distribution="OracleServer"
+	host_release_version=`cat /etc/oracle-release |awk '{print $5}'`
+	host_release_major=`echo $host_release_version |awk -F '.' '{print $1}'`
+	host_release_minor=`echo $host_release_version |awk -F '.' '{print $2}'`
+    else
+	echo "Unable to determine host distribution, ensure lsb_release is installed"
+	exit 1
+    fi
 fi
 echo "Host is $host_distribution $host_release_version"
 
-- 
1.7.11.7





More information about the lxc-devel mailing list