File pegasus-2.9.0-initscript.patch of Package tog-pegasus

diff -up pegasus/rpm/tog-pegasus.rc_old pegasus/rpm/tog-pegasus.rc
--- pegasus/rpm/tog-pegasus.rc_old	2008-12-02 10:00:03.000000000 +0100
+++ pegasus/rpm/tog-pegasus.rc	2009-09-23 14:52:10.000000000 +0200
@@ -1,98 +1,153 @@
-#//%LICENSE////////////////////////////////////////////////////////////////
-#//
-#// Licensed to The Open Group (TOG) under one or more contributor license
-#// agreements.  Refer to the OpenPegasusNOTICE.txt file distributed with
-#// this work for additional information regarding copyright ownership.
-#// Each contributor licenses this file to you under the OpenPegasus Open
-#// Source License; you may not use this file except in compliance with the
-#// License.
-#//
-#// Permission is hereby granted, free of charge, to any person obtaining a
-#// copy of this software and associated documentation files (the "Software"),
-#// to deal in the Software without restriction, including without limitation
-#// the rights to use, copy, modify, merge, publish, distribute, sublicense,
-#// and/or sell copies of the Software, and to permit persons to whom the
-#// Software is furnished to do so, subject to the following conditions:
-#//
-#// The above copyright notice and this permission notice shall be included
-#// in all copies or substantial portions of the Software.
-#//
-#// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-#// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-#// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-#// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-#// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-#// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-#// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#//
-#//////////////////////////////////////////////////////////////////////////
-#! /bin/sh
-#//
-#//%/////////////////////////////////////////////////////////////////////////////
+#!/bin/bash
+#
+# chkconfig:    - 98 1
+# description:  The Open Group Pegasus cimserver initscript
+# processname:  cimserver
+# pidfile:      /var/run/tog-pegasus/cimserver.pid
+#
 
 ### BEGIN INIT INFO
-# Provides: tog-pegasus
+# Provides: lsb-pegasus
 # Required-Start: $syslog $network
 # Should-Start: $time
 # Required-Stop: $syslog
 # Default-Start:  3 5
 # Default-Stop: 0 1 2 6
-# Description:	  init script for Pegasus CIM server
+# Description: init script for Pegasus CIMServer
 ### END INIT INFO
 
-CIMSERVER_BIN=/opt/tog-pegasus/sbin/cimserver
+CIMSERVER_BIN=/usr/sbin/cimserver
 prog=cimserver
+LOCKFILE=/var/lock/subsys/tog-pegasus
+. /etc/rc.d/init.d/functions
 
-test -x $CIMSERVER_BIN || exit 5
+[ -e /etc/sysconfig/tog-pegasus ] && . /etc/sysconfig/tog-pegasus;
+
+PEGASUS_SSL_CONF_FILE=${PEGASUS_SSL_CONF_FILE:=/etc/Pegasus/ssl.cnf}
+PEGASUS_SSL_CERT_FILE=${PEGASUS_SSL_CERT_FILE:=/etc/Pegasus/server.pem}
+PEGASUS_SSL_KEY_FILE=${PEGASUS_SSL_KEY_FILE:=/etc/Pegasus/file.pem}
+PEGASUS_SSL_TRUSTSTORE=${PEGASUS_SSL_TRUSTSTORE:=/etc/Pegasus/client.pem}
 
-. /lib/lsb/init-functions
 RETVAL=0
 
 case "$1" in
      start)
-	echo -n $"Starting up CIM server: "
-	$CIMSERVER_BIN
-	RETVAL=$?
-	[ "$RETVAL" -eq 0 ] && log_success_msg $"$prog start" || log_failure_msg $"$prog start"
-	echo
-	;;
+        if [[ $EUID -ne 0 ]]; then
+            echo "tog-pegasus $1: $CIMSERVER_BIN executed under nonprivileged user"
+            exit 4
+        fi
+        pid=`pidofproc $CIMSERVER_BIN`
+        RETVAL=$?
+        if [ "$RETVAL" -eq 0 ]; then
+            echo "tog-pegasus $1: $CIMSERVER_BIN is already running"
+            exit 0
+        fi
+
+        if [ ! -e $CIMSERVER_BIN ]; then
+           echo "tog-pegasus $1: $CIMSERVER_BIN not found"
+           failure
+           exit 5
+        fi
+
+        if [ ! -x $CIMSERVER_BIN ]; then
+           echo "tog-pegasus $1: $CIMSERVER_BIN not executable"
+           failure
+           exit 4
+        fi
+
+        if [ ! -e ${PEGASUS_SSL_CONF_FILE} ] || [ ! -e ${PEGASUS_SSL_CERT_FILE} ] || 
+           [ ! -e ${PEGASUS_SSL_KEY_FILE} ]  || [ ! -e ${PEGASUS_SSL_TRUSTSTORE} ]; then
+           if [ -x /usr/share/Pegasus/scripts/genOpenPegasusSSLCerts ]; then
+               echo -n "tog-pegasus: Generating cimserver SSL certificates..."
+               /usr/share/Pegasus/scripts/genOpenPegasusSSLCerts
+               if [ $? -eq 0 ]; then
+                   success
+               else
+                   failure
+               fi
+               echo
+           fi
+        fi
+        echo -n $"Starting up CIM server: "
+        $CIMSERVER_BIN ${CIMSERVER_OPTIONS}
+        RETVAL=$?
+        if [ "$RETVAL" -eq 0 ]; then
+            rm -f /var/run/tog-pegasus.pid;
+            ln -s /var/run/tog-pegasus/"$prog".pid /var/run/tog-pegasus.pid;
+            touch $LOCKFILE
+            success
+        else
+            failure
+        fi
+        echo
+        ;;
 
      stop)
-	echo -n $"Shutting down CIM server: "
-	killproc cimserver
-	RETVAL=$?
-	[ "$RETVAL" -eq 0 ] && log_success_msg $"$prog stop" || log_failure_msg $"$prog stop"
-	echo
-	;;
+        if [[ $EUID -ne 0 ]]; then
+            echo "tog-pegasus $1: $CIMSERVER_BIN executed under nonprivileged user"
+            exit 4
+        fi
+        echo -n $"Shutting down CIM server: "
+        killproc cimserver
+        RETVAL=$?
+        if [ "$RETVAL" -eq 0 ]; then
+            rm -f $LOCKFILE
+            rm -f /var/run/tog-pegasus/*
+            rm -f /var/run/tog-pegasus.pid
+            success
+        else
+            failure
+        fi
+        echo
+        ;;
+
      status)
-	pid=`pidofproc $CIMSERVER_BIN`
-	RETVAL=$?
-	if [ "$RETVAL" -eq 0 ]; then
-		echo "CIM server is running"
-	else
-		echo "CIM server is not running"
-	fi
-	;;
+        pid=`pidofproc $CIMSERVER_BIN`
+        RETVAL=$?
+        if [ "$RETVAL" -eq 0 ]; then
+            echo -n $"CIM server ($pid) is running"
+            exit 0
+        else
+            if [ -e /var/run/tog-pegasus.pid ]; then
+                echo $"CIM server is not running, but pid file exists"
+                exit 1
+            elif [ -e $LOCKFILE ]; then
+                echo $"CIM server is not running, but lock file exists"
+                exit 2
+            else
+                echo $"CIM server is not running"
+                exit 3
+            fi
+        fi
+        echo
+        ;;
+
      condrestart)
-	pid=`pidofproc $CIMSERVER_BIN`
-	RETVAL=$?
-	if [ "$RETVAL" -eq 0 ]; then
-	    $0 stop && $0 start;
-	    RETVAL=$?;
-	fi;
+        pid=`pidofproc $CIMSERVER_BIN`
+        RETVAL=$?
+        if [ "$RETVAL" -eq 0 ]; then
+            $0 stop && $0 start
+            RETVAL=$?
+        fi;
         ;;
+
      try-restart)
-	$0 stop && $0 start
-	;;
+        $0 stop && $0 start
+        RETVAL=$?
+        ;;
+
      restart|force-reload)
-	$0 stop
-	$0 start
-	;;
+        $0 stop
+        $0 start
+        RETVAL=$?
+        ;;
+
      reload)
-	;;
+        ;;
      *)
-	echo "Usage: $0 {start|stop|status|restart|reload|force-reload|try-restart}"
-	exit 1
+        echo $"Usage: $0 {start|stop|status|restart|reload|force-reload|try-restart}"
+        [ "$1" = "usage" ] && exit 0
+        exit 2
 esac
 
 exit $RETVAL
openSUSE Build Service is sponsored by