Updated Branches:
  refs/heads/master 90b87585e -> 980f7931f

- support SLES and openSUSE as configuration and build targets


Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/980f7931
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/980f7931
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/980f7931

Branch: refs/heads/master
Commit: 980f7931f7840094428652e935c6cf617be15ca4
Parents: 90b8758
Author: Robert Schweikert <[email protected]>
Authored: Tue Apr 24 13:24:37 2012 -0400
Committer: David Nalley <[email protected]>
Committed: Sun May 27 19:31:27 2012 -0400

----------------------------------------------------------------------
 .../opensuse/sles/SYSCONFDIR/init.d/cloud-agent.in |  141 +++++++++
 agent/distro/sles/SYSCONFDIR/init.d/cloud-agent.in |  141 +++++++++
 .../opensuse/SYSCONFDIR/init.d/cloud-management.in |  234 +++++++++++++++
 .../SYSCONFDIR/sysconfig/cloud-management.in       |    6 +
 .../sles/SYSCONFDIR/init.d/cloud-management.in     |  234 +++++++++++++++
 .../sles/SYSCONFDIR/sysconfig/cloud-management.in  |    6 +
 .../SYSCONFDIR/init.d/cloud-ipallocator.in         |  101 +++++++
 .../sles/SYSCONFDIR/init.d/cloud-ipallocator.in    |  101 +++++++
 .../opensuse/SYSCONFDIR/init.d/cloud-usage.in      |   96 ++++++
 usage/distro/sles/SYSCONFDIR/init.d/cloud-usage.in |   96 ++++++
 wscript_configure                                  |   29 ++-
 11 files changed, 1184 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/980f7931/agent/distro/opensuse/sles/SYSCONFDIR/init.d/cloud-agent.in
----------------------------------------------------------------------
diff --git a/agent/distro/opensuse/sles/SYSCONFDIR/init.d/cloud-agent.in 
b/agent/distro/opensuse/sles/SYSCONFDIR/init.d/cloud-agent.in
new file mode 100644
index 0000000..73f0087
--- /dev/null
+++ b/agent/distro/opensuse/sles/SYSCONFDIR/init.d/cloud-agent.in
@@ -0,0 +1,141 @@
+#!/bin/bash
+### BEGIN INIT INFO
+# Provides:          cloud agent
+# Required-Start:    $network
+# Required-Stop:     $network
+# Default-Start:     3 4 5
+# Default-Stop:      0 1 2 6
+# X-Interactive:     true
+# Short-Description: Start/stop apache2 web server
+### END INIT INFO
+
+
+# WARNING: if this script is changed, then all other initscripts MUST BE 
changed to match it as well
+
+. /lib/lsb/init-functions
+. /etc/rc.status
+
+whatami=cloud-agent
+
+# set environment variables
+
+SHORTNAME="$whatami"
+PIDFILE=@PIDDIR@/"$whatami".pid
+LOCKFILE=@LOCKDIR@/"$SHORTNAME"
+LOGFILE=@AGENTLOG@
+PROGNAME="Cloud Agent"
+
+unset OPTIONS
+[ -r @SYSCONFDIR@/default/"$SHORTNAME" ] && source 
@SYSCONFDIR@/default/"$SHORTNAME"
+DAEMONIZE=@BINDIR@/@PACKAGE@-daemonize
+PROG=@LIBEXECDIR@/agent-runner
+
+wait_for_network() {
+    i=1
+    while [ $i -lt 10 ]
+    do
+        if ip addr show cloudbr0 |grep -w inet > /dev/null 2>&1; then
+            break
+        else
+            sleep 1
+            let i=$i+1
+            continue
+        fi
+    done
+}
+
+start() {
+        log_daemon_msg $"Starting $PROGNAME" "$SHORTNAME"
+       if [ -s "$PIDFILE" ] && kill -0 $(cat "$PIDFILE") >/dev/null 2>&1; then
+             log_progress_msg "apparently already running"
+             log_end_msg 0
+             exit 0
+       fi
+       if hostname --fqdn >/dev/null 2>&1 ; then
+               true
+       else
+               log_failure_msg "The host name does not resolve properly to an 
IP address.  Cannot start $PROGNAME"
+               log_end_msg 1
+               exit 1
+       fi
+
+    #FIXME: wait for network
+    wait_for_network
+
+       if start-stop-daemon --start --quiet \
+               --pidfile "$PIDFILE" \
+               --exec "$DAEMONIZE" -- -n "$SHORTNAME" -p "$PIDFILE" -l 
"$LOGFILE" "$PROG" $OPTIONS
+               RETVAL=$?
+           then
+               rc=0
+               sleep 1
+               if ! kill -0 $(cat "$PIDFILE") >/dev/null 2>&1; then
+                   log_failure_msg "$PROG failed to start"
+                   rc=1
+               fi
+       else
+               rc=1
+       fi
+
+       if [ $rc -eq 0 ]; then
+               log_end_msg 0
+       else
+               log_end_msg 1
+               rm -f "$PIDFILE"
+       fi
+}
+
+stop() {
+    SHUTDOWN_WAIT="30"
+    count="0"
+
+    echo -n $"Stopping $PROGNAME" "$SHORTNAME"
+    start-stop-daemon --stop --quiet --oknodo --pidfile "$PIDFILE"
+
+    until [ "$count" -gt "$SHUTDOWN_WAIT" ]
+    do
+        agentPid=`ps aux|grep [j]ava|grep cloud-agent`
+        if [ "$?" -gt "0" ];then
+            break
+        fi
+        sleep 1
+        let count="${count}+1"
+    done
+
+    agentPid=`ps aux|grep [j]ava|grep cloud-agent`
+    if [ "$?" -eq "0" ]; then
+         agentPid=`ps aux|grep [j]ava|awk '{print $2}'`
+         if [ "$agentPid" != "" ]; then
+              kill -9 $agentPid
+         fi
+    fi
+
+       log_end_msg $?
+       rm -f "$PIDFILE"
+}
+
+
+# See how we were called.
+case "$1" in
+  start)
+       start
+       ;;
+  stop)
+       stop
+       ;;
+  status)
+        status_of_proc -p "$PIDFILE" "$PROG" "$SHORTNAME"
+       RETVAL=$?
+       ;;
+  restart)
+       stop
+       sleep 3
+       start
+       ;;
+  *)
+       echo $"Usage: $whatami {start|stop|restart|status|help}"
+       RETVAL=3
+esac
+
+exit $RETVAL
+

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/980f7931/agent/distro/sles/SYSCONFDIR/init.d/cloud-agent.in
----------------------------------------------------------------------
diff --git a/agent/distro/sles/SYSCONFDIR/init.d/cloud-agent.in 
b/agent/distro/sles/SYSCONFDIR/init.d/cloud-agent.in
new file mode 100644
index 0000000..73f0087
--- /dev/null
+++ b/agent/distro/sles/SYSCONFDIR/init.d/cloud-agent.in
@@ -0,0 +1,141 @@
+#!/bin/bash
+### BEGIN INIT INFO
+# Provides:          cloud agent
+# Required-Start:    $network
+# Required-Stop:     $network
+# Default-Start:     3 4 5
+# Default-Stop:      0 1 2 6
+# X-Interactive:     true
+# Short-Description: Start/stop apache2 web server
+### END INIT INFO
+
+
+# WARNING: if this script is changed, then all other initscripts MUST BE 
changed to match it as well
+
+. /lib/lsb/init-functions
+. /etc/rc.status
+
+whatami=cloud-agent
+
+# set environment variables
+
+SHORTNAME="$whatami"
+PIDFILE=@PIDDIR@/"$whatami".pid
+LOCKFILE=@LOCKDIR@/"$SHORTNAME"
+LOGFILE=@AGENTLOG@
+PROGNAME="Cloud Agent"
+
+unset OPTIONS
+[ -r @SYSCONFDIR@/default/"$SHORTNAME" ] && source 
@SYSCONFDIR@/default/"$SHORTNAME"
+DAEMONIZE=@BINDIR@/@PACKAGE@-daemonize
+PROG=@LIBEXECDIR@/agent-runner
+
+wait_for_network() {
+    i=1
+    while [ $i -lt 10 ]
+    do
+        if ip addr show cloudbr0 |grep -w inet > /dev/null 2>&1; then
+            break
+        else
+            sleep 1
+            let i=$i+1
+            continue
+        fi
+    done
+}
+
+start() {
+        log_daemon_msg $"Starting $PROGNAME" "$SHORTNAME"
+       if [ -s "$PIDFILE" ] && kill -0 $(cat "$PIDFILE") >/dev/null 2>&1; then
+             log_progress_msg "apparently already running"
+             log_end_msg 0
+             exit 0
+       fi
+       if hostname --fqdn >/dev/null 2>&1 ; then
+               true
+       else
+               log_failure_msg "The host name does not resolve properly to an 
IP address.  Cannot start $PROGNAME"
+               log_end_msg 1
+               exit 1
+       fi
+
+    #FIXME: wait for network
+    wait_for_network
+
+       if start-stop-daemon --start --quiet \
+               --pidfile "$PIDFILE" \
+               --exec "$DAEMONIZE" -- -n "$SHORTNAME" -p "$PIDFILE" -l 
"$LOGFILE" "$PROG" $OPTIONS
+               RETVAL=$?
+           then
+               rc=0
+               sleep 1
+               if ! kill -0 $(cat "$PIDFILE") >/dev/null 2>&1; then
+                   log_failure_msg "$PROG failed to start"
+                   rc=1
+               fi
+       else
+               rc=1
+       fi
+
+       if [ $rc -eq 0 ]; then
+               log_end_msg 0
+       else
+               log_end_msg 1
+               rm -f "$PIDFILE"
+       fi
+}
+
+stop() {
+    SHUTDOWN_WAIT="30"
+    count="0"
+
+    echo -n $"Stopping $PROGNAME" "$SHORTNAME"
+    start-stop-daemon --stop --quiet --oknodo --pidfile "$PIDFILE"
+
+    until [ "$count" -gt "$SHUTDOWN_WAIT" ]
+    do
+        agentPid=`ps aux|grep [j]ava|grep cloud-agent`
+        if [ "$?" -gt "0" ];then
+            break
+        fi
+        sleep 1
+        let count="${count}+1"
+    done
+
+    agentPid=`ps aux|grep [j]ava|grep cloud-agent`
+    if [ "$?" -eq "0" ]; then
+         agentPid=`ps aux|grep [j]ava|awk '{print $2}'`
+         if [ "$agentPid" != "" ]; then
+              kill -9 $agentPid
+         fi
+    fi
+
+       log_end_msg $?
+       rm -f "$PIDFILE"
+}
+
+
+# See how we were called.
+case "$1" in
+  start)
+       start
+       ;;
+  stop)
+       stop
+       ;;
+  status)
+        status_of_proc -p "$PIDFILE" "$PROG" "$SHORTNAME"
+       RETVAL=$?
+       ;;
+  restart)
+       stop
+       sleep 3
+       start
+       ;;
+  *)
+       echo $"Usage: $whatami {start|stop|restart|status|help}"
+       RETVAL=3
+esac
+
+exit $RETVAL
+

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/980f7931/client/distro/opensuse/SYSCONFDIR/init.d/cloud-management.in
----------------------------------------------------------------------
diff --git a/client/distro/opensuse/SYSCONFDIR/init.d/cloud-management.in 
b/client/distro/opensuse/SYSCONFDIR/init.d/cloud-management.in
new file mode 100755
index 0000000..52eb3aa
--- /dev/null
+++ b/client/distro/opensuse/SYSCONFDIR/init.d/cloud-management.in
@@ -0,0 +1,234 @@
+#!/bin/sh
+#
+# /etc/init.d/tomcat6 -- startup script for the Tomcat 6 servlet engine
+
+#Copyright 2012 Citrix Systems, Inc. Licensed under the
+#Apache License, Version 2.0 (the "License"); you may not use this
+#file except in compliance with the License.  Citrix Systems, Inc.
+#reserves all rights not expressly granted by the License.
+#You may obtain a copy of the License at 
http://www.apache.org/licenses/LICENSE-2.0
+#Unless required by applicable law or agreed to in writing, software
+#distributed under the License is distributed on an "AS IS" BASIS,
+#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#See the License for the specific language governing permissions and
+#limitations under the License.
+
+### BEGIN INIT INFO
+# Provides:          tomcat-vmops
+# Required-Start:    $local_fs $remote_fs $network
+# Required-Stop:     $local_fs $remote_fs $network
+# Should-Start:      $named
+# Should-Stop:       $named
+# Default-Start:     2 3 4 5
+# Default-Stop:      0 1 6
+# Short-Description: Start Tomcat (CloudStack).
+# Description:       Start the Tomcat servlet engine that runs the CloudStack 
Management Server.
+### END INIT INFO
+
+PATH=/bin:/usr/bin:/sbin:/usr/sbin
+NAME=cloud-management
+DESC="CloudStack-specific Tomcat servlet engine"
+DAEMON=/usr/bin/jsvc
+CATALINA_HOME=@MSENVIRON@
+DEFAULT=@MSCONF@/tomcat6.conf
+JVM_TMP=/tmp/$NAME-temp
+
+if [ `id -u` -ne 0 ]; then
+       echo "You need root privileges to run this script"
+       exit 1
+fi
+
+# Make sure tomcat is started with system locale
+if [ -r /etc/default/locale ]; then
+       . /etc/default/locale
+       export LANG
+fi
+
+. /lib/lsb/init-functions
+. /etc/rc.status
+
+
+# The following variables can be overwritten in $DEFAULT
+
+# Run Tomcat 6 as this user ID
+TOMCAT6_USER=tomcat6
+
+# The first existing directory is used for JAVA_HOME (if JAVA_HOME is not
+# defined in $DEFAULT)
+JDK_DIRS="/usr/lib/jvm/java-6-openjdk /usr/lib/jvm/java-6-sun 
/usr/lib/jvm/java-1.5.0-sun /usr/lib/j2sdk1.5-sun /usr/lib/j2sdk1.5-ibm"
+
+# Look for the right JVM to use
+for jdir in $JDK_DIRS; do
+    if [ -r "$jdir/bin/java" -a -z "${JAVA_HOME}" ]; then
+       JAVA_HOME="$jdir"
+    fi
+done
+export JAVA_HOME
+
+# Directory for per-instance configuration files and webapps
+CATALINA_BASE=@MSENVIRON@
+
+# Use the Java security manager? (yes/no)
+TOMCAT6_SECURITY=no
+
+# Default Java options
+# Set java.awt.headless=true if JAVA_OPTS is not set so the
+# Xalan XSL transformer can work without X11 display on JDK 1.4+
+# It also looks like the default heap size of 64M is not enough for most cases
+# so the maximum heap size is set to 128M
+if [ -z "$JAVA_OPTS" ]; then
+       JAVA_OPTS="-Djava.awt.headless=true -Xmx128M"
+fi
+
+# End of variables that can be overwritten in $DEFAULT
+
+# overwrite settings from default file
+if [ -f "$DEFAULT" ]; then
+       . "$DEFAULT"
+fi
+
+if [ ! -f "$CATALINA_HOME/bin/bootstrap.jar" ]; then
+       log_failure_msg "$NAME is not installed"
+       exit 1
+fi
+
+[ -f "$DAEMON" ] || exit 0
+
+POLICY_CACHE="$CATALINA_BASE/work/catalina.policy"
+
+JAVA_OPTS="$JAVA_OPTS -Djava.endorsed.dirs=$CATALINA_HOME/endorsed 
-Dcatalina.base=$CATALINA_BASE -Dcatalina.home=$CATALINA_HOME 
-Djava.io.tmpdir=$JVM_TMP"
+
+# Set the JSP compiler if set in the tomcat6.default file
+if [ -n "$JSP_COMPILER" ]; then
+       JAVA_OPTS="$JAVA_OPTS -Dbuild.compiler=$JSP_COMPILER"
+fi
+
+if [ "$TOMCAT6_SECURITY" = "yes" ]; then
+       JAVA_OPTS="$JAVA_OPTS -Djava.security.manager 
-Djava.security.policy=$POLICY_CACHE"
+fi
+
+# Set juli LogManager if logging.properties is provided
+if [ -r "$CATALINA_BASE"/conf/logging.properties ]; then
+  JAVA_OPTS="$JAVA_OPTS 
"-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager" 
"-Djava.util.logging.config.file="$CATALINA_BASE/conf/logging.properties"
+fi
+
+# Define other required variables
+CATALINA_PID="@PIDDIR@/$NAME.pid"
+BOOTSTRAP_CLASS=org.apache.catalina.startup.Bootstrap
+JSVC_CLASSPATH="/usr/share/java/commons-daemon.jar:$CATALINA_HOME/bin/bootstrap.jar"
+JSVC_CLASSPATH=$CLASSPATH:$JSVC_CLASSPATH
+
+# Look for Java Secure Sockets Extension (JSSE) JARs
+if [ -z "${JSSE_HOME}" -a -r "${JAVA_HOME}/jre/lib/jsse.jar" ]; then
+    JSSE_HOME="${JAVA_HOME}/jre/"
+fi
+export JSSE_HOME
+
+case "$1" in
+  start)
+       if [ -z "$JAVA_HOME" ]; then
+               log_failure_msg "no JDK found - please set JAVA_HOME"
+               exit 1
+       fi
+
+       if [ ! -d "$CATALINA_BASE/conf" ]; then
+               log_failure_msg "invalid CATALINA_BASE: $CATALINA_BASE"
+               exit 1
+       fi
+
+       log_daemon_msg "Starting $DESC" "$NAME"
+       if start-stop-daemon --test --start --pidfile "$CATALINA_PID" \
+               --user $TOMCAT6_USER --startas "$JAVA_HOME/bin/java" \
+               >/dev/null; then
+
+               # Regenerate POLICY_CACHE file
+               umask 022
+               echo "// AUTO-GENERATED FILE from /etc/tomcat6/policy.d/" \
+                       > "$POLICY_CACHE"
+               echo ""  >> "$POLICY_CACHE"
+               if ls $CATALINA_BASE/conf/policy.d/*.policy > /dev/null 2>&1 ; 
then
+               cat $CATALINA_BASE/conf/policy.d/*.policy \
+                       >> "$POLICY_CACHE"
+               fi
+
+               # Remove / recreate JVM_TMP directory
+               rm -rf "$JVM_TMP"
+               mkdir "$JVM_TMP" || {
+                       log_failure_msg "could not create JVM temporary 
directory"
+                       exit 1
+               }
+               chown $TOMCAT6_USER "$JVM_TMP"
+               cd "$JVM_TMP"
+
+
+               # fix storage issues on nfs mounts
+               umask 000
+               $DAEMON -user "$TOMCAT6_USER" -cp "$JSVC_CLASSPATH" \
+                   -outfile SYSLOG -errfile SYSLOG \
+                   -pidfile "$CATALINA_PID" $JAVA_OPTS "$BOOTSTRAP_CLASS"
+
+               sleep 5
+               if start-stop-daemon --test --start --pidfile "$CATALINA_PID" \
+                       --user $TOMCAT6_USER --startas "$JAVA_HOME/bin/java" \
+                       >/dev/null; then
+                       log_end_msg 1
+               else
+                       log_end_msg 0
+               fi
+       else
+               log_progress_msg "(already running)"
+               log_end_msg 0
+       fi
+       ;;
+  stop)
+       log_daemon_msg "Stopping $DESC" "$NAME"
+        if start-stop-daemon --test --start --pidfile "$CATALINA_PID" \
+               --user "$TOMCAT6_USER" --startas "$JAVA_HOME/bin/java" \
+               >/dev/null; then
+               log_progress_msg "(not running)"
+       else
+               $DAEMON -cp "$JSVC_CLASSPATH" -pidfile "$CATALINA_PID" \
+                    -stop "$BOOTSTRAP_CLASS"
+       fi
+       rm -rf "$JVM_TMP"
+       log_end_msg 0
+       ;;
+   status)
+        if start-stop-daemon --test --start --pidfile "$CATALINA_PID" \
+               --user $TOMCAT6_USER --startas "$JAVA_HOME/bin/java" \
+               >/dev/null; then
+
+               if [ -f "$CATALINA_PID" ]; then
+                   log_success_msg "$DESC is not running, but pid file exists."
+                       exit 1
+               else
+                   log_success_msg "$DESC is not running."
+                       exit 3
+               fi
+       else
+               log_success_msg "$DESC is running with pid `cat $CATALINA_PID`"
+       fi
+        ;;
+  restart|force-reload)
+        if start-stop-daemon --test --stop --pidfile "$CATALINA_PID" \
+               --user $TOMCAT6_USER --startas "$JAVA_HOME/bin/java" \
+               >/dev/null; then
+               $0 stop
+               sleep 1
+       fi
+       $0 start
+       ;;
+  try-restart)
+        if start-stop-daemon --test --start --pidfile "$CATALINA_PID" \
+               --user $TOMCAT6_USER --startas "$JAVA_HOME/bin/java" \
+               >/dev/null; then
+               $0 start
+       fi
+        ;;
+  *)
+       log_success_msg "Usage: $0 
{start|stop|restart|try-restart|force-reload|status}"
+       exit 1
+       ;;
+esac
+
+exit 0

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/980f7931/client/distro/opensuse/SYSCONFDIR/sysconfig/cloud-management.in
----------------------------------------------------------------------
diff --git a/client/distro/opensuse/SYSCONFDIR/sysconfig/cloud-management.in 
b/client/distro/opensuse/SYSCONFDIR/sysconfig/cloud-management.in
new file mode 100644
index 0000000..2d4b22f
--- /dev/null
+++ b/client/distro/opensuse/SYSCONFDIR/sysconfig/cloud-management.in
@@ -0,0 +1,6 @@
+# This file is loaded in /etc/init.d/vmopsmanagement
+# ATM we only do two things here:
+
+dummy=1 ; export TOMCAT_CFG=@MSCONF@/tomcat6.conf ; . @MSCONF@/tomcat6.conf
+#--------------------------
+

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/980f7931/client/distro/sles/SYSCONFDIR/init.d/cloud-management.in
----------------------------------------------------------------------
diff --git a/client/distro/sles/SYSCONFDIR/init.d/cloud-management.in 
b/client/distro/sles/SYSCONFDIR/init.d/cloud-management.in
new file mode 100755
index 0000000..52eb3aa
--- /dev/null
+++ b/client/distro/sles/SYSCONFDIR/init.d/cloud-management.in
@@ -0,0 +1,234 @@
+#!/bin/sh
+#
+# /etc/init.d/tomcat6 -- startup script for the Tomcat 6 servlet engine
+
+#Copyright 2012 Citrix Systems, Inc. Licensed under the
+#Apache License, Version 2.0 (the "License"); you may not use this
+#file except in compliance with the License.  Citrix Systems, Inc.
+#reserves all rights not expressly granted by the License.
+#You may obtain a copy of the License at 
http://www.apache.org/licenses/LICENSE-2.0
+#Unless required by applicable law or agreed to in writing, software
+#distributed under the License is distributed on an "AS IS" BASIS,
+#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#See the License for the specific language governing permissions and
+#limitations under the License.
+
+### BEGIN INIT INFO
+# Provides:          tomcat-vmops
+# Required-Start:    $local_fs $remote_fs $network
+# Required-Stop:     $local_fs $remote_fs $network
+# Should-Start:      $named
+# Should-Stop:       $named
+# Default-Start:     2 3 4 5
+# Default-Stop:      0 1 6
+# Short-Description: Start Tomcat (CloudStack).
+# Description:       Start the Tomcat servlet engine that runs the CloudStack 
Management Server.
+### END INIT INFO
+
+PATH=/bin:/usr/bin:/sbin:/usr/sbin
+NAME=cloud-management
+DESC="CloudStack-specific Tomcat servlet engine"
+DAEMON=/usr/bin/jsvc
+CATALINA_HOME=@MSENVIRON@
+DEFAULT=@MSCONF@/tomcat6.conf
+JVM_TMP=/tmp/$NAME-temp
+
+if [ `id -u` -ne 0 ]; then
+       echo "You need root privileges to run this script"
+       exit 1
+fi
+
+# Make sure tomcat is started with system locale
+if [ -r /etc/default/locale ]; then
+       . /etc/default/locale
+       export LANG
+fi
+
+. /lib/lsb/init-functions
+. /etc/rc.status
+
+
+# The following variables can be overwritten in $DEFAULT
+
+# Run Tomcat 6 as this user ID
+TOMCAT6_USER=tomcat6
+
+# The first existing directory is used for JAVA_HOME (if JAVA_HOME is not
+# defined in $DEFAULT)
+JDK_DIRS="/usr/lib/jvm/java-6-openjdk /usr/lib/jvm/java-6-sun 
/usr/lib/jvm/java-1.5.0-sun /usr/lib/j2sdk1.5-sun /usr/lib/j2sdk1.5-ibm"
+
+# Look for the right JVM to use
+for jdir in $JDK_DIRS; do
+    if [ -r "$jdir/bin/java" -a -z "${JAVA_HOME}" ]; then
+       JAVA_HOME="$jdir"
+    fi
+done
+export JAVA_HOME
+
+# Directory for per-instance configuration files and webapps
+CATALINA_BASE=@MSENVIRON@
+
+# Use the Java security manager? (yes/no)
+TOMCAT6_SECURITY=no
+
+# Default Java options
+# Set java.awt.headless=true if JAVA_OPTS is not set so the
+# Xalan XSL transformer can work without X11 display on JDK 1.4+
+# It also looks like the default heap size of 64M is not enough for most cases
+# so the maximum heap size is set to 128M
+if [ -z "$JAVA_OPTS" ]; then
+       JAVA_OPTS="-Djava.awt.headless=true -Xmx128M"
+fi
+
+# End of variables that can be overwritten in $DEFAULT
+
+# overwrite settings from default file
+if [ -f "$DEFAULT" ]; then
+       . "$DEFAULT"
+fi
+
+if [ ! -f "$CATALINA_HOME/bin/bootstrap.jar" ]; then
+       log_failure_msg "$NAME is not installed"
+       exit 1
+fi
+
+[ -f "$DAEMON" ] || exit 0
+
+POLICY_CACHE="$CATALINA_BASE/work/catalina.policy"
+
+JAVA_OPTS="$JAVA_OPTS -Djava.endorsed.dirs=$CATALINA_HOME/endorsed 
-Dcatalina.base=$CATALINA_BASE -Dcatalina.home=$CATALINA_HOME 
-Djava.io.tmpdir=$JVM_TMP"
+
+# Set the JSP compiler if set in the tomcat6.default file
+if [ -n "$JSP_COMPILER" ]; then
+       JAVA_OPTS="$JAVA_OPTS -Dbuild.compiler=$JSP_COMPILER"
+fi
+
+if [ "$TOMCAT6_SECURITY" = "yes" ]; then
+       JAVA_OPTS="$JAVA_OPTS -Djava.security.manager 
-Djava.security.policy=$POLICY_CACHE"
+fi
+
+# Set juli LogManager if logging.properties is provided
+if [ -r "$CATALINA_BASE"/conf/logging.properties ]; then
+  JAVA_OPTS="$JAVA_OPTS 
"-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager" 
"-Djava.util.logging.config.file="$CATALINA_BASE/conf/logging.properties"
+fi
+
+# Define other required variables
+CATALINA_PID="@PIDDIR@/$NAME.pid"
+BOOTSTRAP_CLASS=org.apache.catalina.startup.Bootstrap
+JSVC_CLASSPATH="/usr/share/java/commons-daemon.jar:$CATALINA_HOME/bin/bootstrap.jar"
+JSVC_CLASSPATH=$CLASSPATH:$JSVC_CLASSPATH
+
+# Look for Java Secure Sockets Extension (JSSE) JARs
+if [ -z "${JSSE_HOME}" -a -r "${JAVA_HOME}/jre/lib/jsse.jar" ]; then
+    JSSE_HOME="${JAVA_HOME}/jre/"
+fi
+export JSSE_HOME
+
+case "$1" in
+  start)
+       if [ -z "$JAVA_HOME" ]; then
+               log_failure_msg "no JDK found - please set JAVA_HOME"
+               exit 1
+       fi
+
+       if [ ! -d "$CATALINA_BASE/conf" ]; then
+               log_failure_msg "invalid CATALINA_BASE: $CATALINA_BASE"
+               exit 1
+       fi
+
+       log_daemon_msg "Starting $DESC" "$NAME"
+       if start-stop-daemon --test --start --pidfile "$CATALINA_PID" \
+               --user $TOMCAT6_USER --startas "$JAVA_HOME/bin/java" \
+               >/dev/null; then
+
+               # Regenerate POLICY_CACHE file
+               umask 022
+               echo "// AUTO-GENERATED FILE from /etc/tomcat6/policy.d/" \
+                       > "$POLICY_CACHE"
+               echo ""  >> "$POLICY_CACHE"
+               if ls $CATALINA_BASE/conf/policy.d/*.policy > /dev/null 2>&1 ; 
then
+               cat $CATALINA_BASE/conf/policy.d/*.policy \
+                       >> "$POLICY_CACHE"
+               fi
+
+               # Remove / recreate JVM_TMP directory
+               rm -rf "$JVM_TMP"
+               mkdir "$JVM_TMP" || {
+                       log_failure_msg "could not create JVM temporary 
directory"
+                       exit 1
+               }
+               chown $TOMCAT6_USER "$JVM_TMP"
+               cd "$JVM_TMP"
+
+
+               # fix storage issues on nfs mounts
+               umask 000
+               $DAEMON -user "$TOMCAT6_USER" -cp "$JSVC_CLASSPATH" \
+                   -outfile SYSLOG -errfile SYSLOG \
+                   -pidfile "$CATALINA_PID" $JAVA_OPTS "$BOOTSTRAP_CLASS"
+
+               sleep 5
+               if start-stop-daemon --test --start --pidfile "$CATALINA_PID" \
+                       --user $TOMCAT6_USER --startas "$JAVA_HOME/bin/java" \
+                       >/dev/null; then
+                       log_end_msg 1
+               else
+                       log_end_msg 0
+               fi
+       else
+               log_progress_msg "(already running)"
+               log_end_msg 0
+       fi
+       ;;
+  stop)
+       log_daemon_msg "Stopping $DESC" "$NAME"
+        if start-stop-daemon --test --start --pidfile "$CATALINA_PID" \
+               --user "$TOMCAT6_USER" --startas "$JAVA_HOME/bin/java" \
+               >/dev/null; then
+               log_progress_msg "(not running)"
+       else
+               $DAEMON -cp "$JSVC_CLASSPATH" -pidfile "$CATALINA_PID" \
+                    -stop "$BOOTSTRAP_CLASS"
+       fi
+       rm -rf "$JVM_TMP"
+       log_end_msg 0
+       ;;
+   status)
+        if start-stop-daemon --test --start --pidfile "$CATALINA_PID" \
+               --user $TOMCAT6_USER --startas "$JAVA_HOME/bin/java" \
+               >/dev/null; then
+
+               if [ -f "$CATALINA_PID" ]; then
+                   log_success_msg "$DESC is not running, but pid file exists."
+                       exit 1
+               else
+                   log_success_msg "$DESC is not running."
+                       exit 3
+               fi
+       else
+               log_success_msg "$DESC is running with pid `cat $CATALINA_PID`"
+       fi
+        ;;
+  restart|force-reload)
+        if start-stop-daemon --test --stop --pidfile "$CATALINA_PID" \
+               --user $TOMCAT6_USER --startas "$JAVA_HOME/bin/java" \
+               >/dev/null; then
+               $0 stop
+               sleep 1
+       fi
+       $0 start
+       ;;
+  try-restart)
+        if start-stop-daemon --test --start --pidfile "$CATALINA_PID" \
+               --user $TOMCAT6_USER --startas "$JAVA_HOME/bin/java" \
+               >/dev/null; then
+               $0 start
+       fi
+        ;;
+  *)
+       log_success_msg "Usage: $0 
{start|stop|restart|try-restart|force-reload|status}"
+       exit 1
+       ;;
+esac
+
+exit 0

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/980f7931/client/distro/sles/SYSCONFDIR/sysconfig/cloud-management.in
----------------------------------------------------------------------
diff --git a/client/distro/sles/SYSCONFDIR/sysconfig/cloud-management.in 
b/client/distro/sles/SYSCONFDIR/sysconfig/cloud-management.in
new file mode 100644
index 0000000..2d4b22f
--- /dev/null
+++ b/client/distro/sles/SYSCONFDIR/sysconfig/cloud-management.in
@@ -0,0 +1,6 @@
+# This file is loaded in /etc/init.d/vmopsmanagement
+# ATM we only do two things here:
+
+dummy=1 ; export TOMCAT_CFG=@MSCONF@/tomcat6.conf ; . @MSCONF@/tomcat6.conf
+#--------------------------
+

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/980f7931/python/distro/opensuse/SYSCONFDIR/init.d/cloud-ipallocator.in
----------------------------------------------------------------------
diff --git a/python/distro/opensuse/SYSCONFDIR/init.d/cloud-ipallocator.in 
b/python/distro/opensuse/SYSCONFDIR/init.d/cloud-ipallocator.in
new file mode 100755
index 0000000..5980528
--- /dev/null
+++ b/python/distro/opensuse/SYSCONFDIR/init.d/cloud-ipallocator.in
@@ -0,0 +1,101 @@
+#!/bin/bash
+### BEGIN INIT INFO
+# Provides:          cloud ipallocator
+# Required-Start:    $network
+# Required-Stop:     $network
+# Default-Start:     3 4 5
+# Default-Stop:      0 1 2 6
+# description:       Cloud IP address allocation
+### END INIT INFO
+
+# WARNING: if this script is changed, then all other initscripts MUST BE 
changed to match it as well
+
+. /lib/lsb/init-functions
+. /etc/rc.status
+
+whatami=cloud-external-ipallocator
+
+# set environment variables
+
+SHORTNAME="$whatami"
+PIDFILE=@PIDDIR@/"$whatami".pid
+LOCKFILE=@LOCKDIR@/"$SHORTNAME"
+LOGFILE=@AGENTLOG@
+PROGNAME="Cloud Agent"
+
+unset OPTIONS
+[ -r @SYSCONFDIR@/default/"$SHORTNAME" ] && source 
@SYSCONFDIR@/default/"$SHORTNAME"
+DAEMONIZE=@BINDIR@/@PACKAGE@-daemonize
+PROG=@BINDIR@/@[email protected]
+OPTIONS=8083
+
+start() {
+        log_daemon_msg $"Starting $PROGNAME" "$SHORTNAME"
+       if [ -s "$PIDFILE" ] && kill -0 $(cat "$PIDFILE") >/dev/null 2>&1; then
+             log_progress_msg "apparently already running"
+             log_end_msg 0
+             exit 0
+       fi
+       if hostname --fqdn >/dev/null 2>&1 ; then
+               true
+       else
+               log_failure_msg "The host name does not resolve properly to an 
IP address.  Cannot start $PROGNAME"
+               log_end_msg 1
+               exit 1
+       fi
+
+       if start-stop-daemon --start --quiet \
+               --pidfile "$PIDFILE" \
+               --exec "$DAEMONIZE" -- -n "$SHORTNAME" -p "$PIDFILE" -l 
"$LOGFILE" "$PROG" $OPTIONS
+               RETVAL=$?
+           then
+               rc=0
+               sleep 1
+               if ! kill -0 $(cat "$PIDFILE") >/dev/null 2>&1; then
+                   log_failure_msg "$PROG failed to start"
+                   rc=1
+               fi
+       else
+               rc=1
+       fi
+
+       if [ $rc -eq 0 ]; then
+               log_end_msg 0
+       else
+               log_end_msg 1
+               rm -f "$PIDFILE"
+       fi
+}
+
+stop() {
+       echo -n $"Stopping $PROGNAME" "$SHORTNAME"
+       start-stop-daemon --stop --quiet --oknodo --pidfile "$PIDFILE"
+       log_end_msg $?
+       rm -f "$PIDFILE"
+}
+
+
+# See how we were called.
+case "$1" in
+  start)
+       start
+       ;;
+  stop)
+       stop
+       ;;
+  status)
+        status_of_proc -p "$PIDFILE" "$PROG" "$SHORTNAME"
+       RETVAL=$?
+       ;;
+  restart)
+       stop
+       sleep 3
+       start
+       ;;
+  *)
+       echo $"Usage: $whatami {start|stop|restart|status|help}"
+       RETVAL=3
+esac
+
+exit $RETVAL
+

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/980f7931/python/distro/sles/SYSCONFDIR/init.d/cloud-ipallocator.in
----------------------------------------------------------------------
diff --git a/python/distro/sles/SYSCONFDIR/init.d/cloud-ipallocator.in 
b/python/distro/sles/SYSCONFDIR/init.d/cloud-ipallocator.in
new file mode 100755
index 0000000..5980528
--- /dev/null
+++ b/python/distro/sles/SYSCONFDIR/init.d/cloud-ipallocator.in
@@ -0,0 +1,101 @@
+#!/bin/bash
+### BEGIN INIT INFO
+# Provides:          cloud ipallocator
+# Required-Start:    $network
+# Required-Stop:     $network
+# Default-Start:     3 4 5
+# Default-Stop:      0 1 2 6
+# description:       Cloud IP address allocation
+### END INIT INFO
+
+# WARNING: if this script is changed, then all other initscripts MUST BE 
changed to match it as well
+
+. /lib/lsb/init-functions
+. /etc/rc.status
+
+whatami=cloud-external-ipallocator
+
+# set environment variables
+
+SHORTNAME="$whatami"
+PIDFILE=@PIDDIR@/"$whatami".pid
+LOCKFILE=@LOCKDIR@/"$SHORTNAME"
+LOGFILE=@AGENTLOG@
+PROGNAME="Cloud Agent"
+
+unset OPTIONS
+[ -r @SYSCONFDIR@/default/"$SHORTNAME" ] && source 
@SYSCONFDIR@/default/"$SHORTNAME"
+DAEMONIZE=@BINDIR@/@PACKAGE@-daemonize
+PROG=@BINDIR@/@[email protected]
+OPTIONS=8083
+
+start() {
+        log_daemon_msg $"Starting $PROGNAME" "$SHORTNAME"
+       if [ -s "$PIDFILE" ] && kill -0 $(cat "$PIDFILE") >/dev/null 2>&1; then
+             log_progress_msg "apparently already running"
+             log_end_msg 0
+             exit 0
+       fi
+       if hostname --fqdn >/dev/null 2>&1 ; then
+               true
+       else
+               log_failure_msg "The host name does not resolve properly to an 
IP address.  Cannot start $PROGNAME"
+               log_end_msg 1
+               exit 1
+       fi
+
+       if start-stop-daemon --start --quiet \
+               --pidfile "$PIDFILE" \
+               --exec "$DAEMONIZE" -- -n "$SHORTNAME" -p "$PIDFILE" -l 
"$LOGFILE" "$PROG" $OPTIONS
+               RETVAL=$?
+           then
+               rc=0
+               sleep 1
+               if ! kill -0 $(cat "$PIDFILE") >/dev/null 2>&1; then
+                   log_failure_msg "$PROG failed to start"
+                   rc=1
+               fi
+       else
+               rc=1
+       fi
+
+       if [ $rc -eq 0 ]; then
+               log_end_msg 0
+       else
+               log_end_msg 1
+               rm -f "$PIDFILE"
+       fi
+}
+
+stop() {
+       echo -n $"Stopping $PROGNAME" "$SHORTNAME"
+       start-stop-daemon --stop --quiet --oknodo --pidfile "$PIDFILE"
+       log_end_msg $?
+       rm -f "$PIDFILE"
+}
+
+
+# See how we were called.
+case "$1" in
+  start)
+       start
+       ;;
+  stop)
+       stop
+       ;;
+  status)
+        status_of_proc -p "$PIDFILE" "$PROG" "$SHORTNAME"
+       RETVAL=$?
+       ;;
+  restart)
+       stop
+       sleep 3
+       start
+       ;;
+  *)
+       echo $"Usage: $whatami {start|stop|restart|status|help}"
+       RETVAL=3
+esac
+
+exit $RETVAL
+

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/980f7931/usage/distro/opensuse/SYSCONFDIR/init.d/cloud-usage.in
----------------------------------------------------------------------
diff --git a/usage/distro/opensuse/SYSCONFDIR/init.d/cloud-usage.in 
b/usage/distro/opensuse/SYSCONFDIR/init.d/cloud-usage.in
new file mode 100755
index 0000000..e59fc2a
--- /dev/null
+++ b/usage/distro/opensuse/SYSCONFDIR/init.d/cloud-usage.in
@@ -0,0 +1,96 @@
+#!/bin/bash
+
+# chkconfig: 35 99 10
+# description: CloudStack Usage Monitor
+
+# WARNING: if this script is changed, then all other initscripts MUST BE 
changed to match it as well
+
+. /lib/lsb/init-functions
+. /etc/default/rcS
+
+whatami=cloud-usage
+
+# set environment variables
+
+SHORTNAME="$whatami"
+PIDFILE=@PIDDIR@/"$whatami".pid
+LOCKFILE=@LOCKDIR@/"$SHORTNAME"
+LOGFILE=@USAGELOG@
+PROGNAME="CloudStack Usage Monitor"
+USER=@MSUSER@
+
+unset OPTIONS
+[ -r @SYSCONFDIR@/default/"$SHORTNAME" ] && source 
@SYSCONFDIR@/default/"$SHORTNAME"
+DAEMONIZE=@BINDIR@/@PACKAGE@-daemonize
+PROG=@LIBEXECDIR@/usage-runner
+
+start() {
+        log_daemon_msg $"Starting $PROGNAME" "$SHORTNAME"
+       if [ -s "$PIDFILE" ] && kill -0 $(cat "$PIDFILE") >/dev/null 2>&1; then
+             log_progress_msg "apparently already running"
+             log_end_msg 0
+             exit 0
+       fi
+       if hostname --fqdn >/dev/null 2>&1 ; then
+               true
+       else
+               log_failure_msg "The host name does not resolve properly to an 
IP address.  Cannot start $PROGNAME"
+               log_end_msg 1
+               exit 1
+       fi
+
+       if start-stop-daemon --start --quiet \
+               --pidfile "$PIDFILE" \
+               --exec "$DAEMONIZE" -- -n "$SHORTNAME" -p "$PIDFILE" -l 
"$LOGFILE" -u "$USER" "$PROG" $OPTIONS
+               RETVAL=$?
+           then
+               rc=0
+               sleep 1
+               if ! kill -0 $(cat "$PIDFILE") >/dev/null 2>&1; then
+                   log_failure_msg "$PROG failed to start"
+                   rc=1
+               fi
+       else
+               rc=1
+       fi
+
+       if [ $rc -eq 0 ]; then
+               log_end_msg 0
+       else
+               log_end_msg 1
+               rm -f "$PIDFILE"
+       fi
+}
+
+stop() {
+       echo -n $"Stopping $PROGNAME" "$SHORTNAME"
+       start-stop-daemon --stop --quiet --oknodo --pidfile "$PIDFILE"
+       log_end_msg $?
+       rm -f "$PIDFILE"
+}
+
+
+# See how we were called.
+case "$1" in
+  start)
+       start
+       ;;
+  stop)
+       stop
+       ;;
+  status)
+        status_of_proc -p "$PIDFILE" "$PROG" "$SHORTNAME"
+       RETVAL=$?
+       ;;
+  restart)
+       stop
+       sleep 3
+       start
+       ;;
+  *)
+       echo $"Usage: $whatami {start|stop|restart|status|help}"
+       RETVAL=3
+esac
+
+exit $RETVAL
+

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/980f7931/usage/distro/sles/SYSCONFDIR/init.d/cloud-usage.in
----------------------------------------------------------------------
diff --git a/usage/distro/sles/SYSCONFDIR/init.d/cloud-usage.in 
b/usage/distro/sles/SYSCONFDIR/init.d/cloud-usage.in
new file mode 100755
index 0000000..e59fc2a
--- /dev/null
+++ b/usage/distro/sles/SYSCONFDIR/init.d/cloud-usage.in
@@ -0,0 +1,96 @@
+#!/bin/bash
+
+# chkconfig: 35 99 10
+# description: CloudStack Usage Monitor
+
+# WARNING: if this script is changed, then all other initscripts MUST BE 
changed to match it as well
+
+. /lib/lsb/init-functions
+. /etc/default/rcS
+
+whatami=cloud-usage
+
+# set environment variables
+
+SHORTNAME="$whatami"
+PIDFILE=@PIDDIR@/"$whatami".pid
+LOCKFILE=@LOCKDIR@/"$SHORTNAME"
+LOGFILE=@USAGELOG@
+PROGNAME="CloudStack Usage Monitor"
+USER=@MSUSER@
+
+unset OPTIONS
+[ -r @SYSCONFDIR@/default/"$SHORTNAME" ] && source 
@SYSCONFDIR@/default/"$SHORTNAME"
+DAEMONIZE=@BINDIR@/@PACKAGE@-daemonize
+PROG=@LIBEXECDIR@/usage-runner
+
+start() {
+        log_daemon_msg $"Starting $PROGNAME" "$SHORTNAME"
+       if [ -s "$PIDFILE" ] && kill -0 $(cat "$PIDFILE") >/dev/null 2>&1; then
+             log_progress_msg "apparently already running"
+             log_end_msg 0
+             exit 0
+       fi
+       if hostname --fqdn >/dev/null 2>&1 ; then
+               true
+       else
+               log_failure_msg "The host name does not resolve properly to an 
IP address.  Cannot start $PROGNAME"
+               log_end_msg 1
+               exit 1
+       fi
+
+       if start-stop-daemon --start --quiet \
+               --pidfile "$PIDFILE" \
+               --exec "$DAEMONIZE" -- -n "$SHORTNAME" -p "$PIDFILE" -l 
"$LOGFILE" -u "$USER" "$PROG" $OPTIONS
+               RETVAL=$?
+           then
+               rc=0
+               sleep 1
+               if ! kill -0 $(cat "$PIDFILE") >/dev/null 2>&1; then
+                   log_failure_msg "$PROG failed to start"
+                   rc=1
+               fi
+       else
+               rc=1
+       fi
+
+       if [ $rc -eq 0 ]; then
+               log_end_msg 0
+       else
+               log_end_msg 1
+               rm -f "$PIDFILE"
+       fi
+}
+
+stop() {
+       echo -n $"Stopping $PROGNAME" "$SHORTNAME"
+       start-stop-daemon --stop --quiet --oknodo --pidfile "$PIDFILE"
+       log_end_msg $?
+       rm -f "$PIDFILE"
+}
+
+
+# See how we were called.
+case "$1" in
+  start)
+       start
+       ;;
+  stop)
+       stop
+       ;;
+  status)
+        status_of_proc -p "$PIDFILE" "$PROG" "$SHORTNAME"
+       RETVAL=$?
+       ;;
+  restart)
+       stop
+       sleep 3
+       start
+       ;;
+  *)
+       echo $"Usage: $whatami {start|stop|restart|status|help}"
+       RETVAL=3
+esac
+
+exit $RETVAL
+

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/980f7931/wscript_configure
----------------------------------------------------------------------
diff --git a/wscript_configure b/wscript_configure
index 4f6f69a..d437f3a 100644
--- a/wscript_configure
+++ b/wscript_configure
@@ -78,7 +78,19 @@ systemjars = {
        'Mac':
        (
                "servlet-api.jar",
-       ),      
+       ),
+    'openSUSE':
+    (
+        "tomcat6-servlet-2.5-api.jar",
+        "tomcat6-jsp-2.1-api-6.0.24.jar",
+        "tomcat6-el-1.0-api.jar"
+    ),
+    'SLES':
+    (
+        "tomcat6-servlet-2.5-api.jar",
+        "tomcat6-jsp-2.1-api-6.0.24.jar",
+        "tomcat6-el-1.0-api.jar"
+    )
 }
 
 #A JAR dependency may be:
@@ -133,6 +145,21 @@ elif _exists("/etc/redhat-release"):
         conf.env.DISTRO = "RHEL"
     elif version.find("CentOS release") != -1:
         conf.env.DISTRO = "CentOS"
+elif _exists("/etc/SuSE-release"):
+    content = file("/etc/SuSE-release").readlines()
+    supportedVersion = None
+    if content[0].find("SUSE Linux Enterprise Server 11") != -1:
+        spLevel = eval(content[-1].split()[-1])
+        if spLevel >= 2:
+            conf.env.DISTRO = "SLES"
+            supportedVersion = 1
+    elif content[0].find("openSUSE") != -1:
+        version = eval(content[1].split()[-1])
+        if version >= 12.1:
+            conf.env.DISTRO = "openSUSE"
+            supportedVersion = 1
+    if not supportedVersion:
+        conf.env.DISTRO = "unknown"
 else: conf.env.DISTRO = "unknown"
 if conf.env.DISTRO == "unknown": c = "YELLOW"
 else:                              c = "GREEN"

Reply via email to