Handle jp-importer deamon too when enabled export to JP.
authorFrantišek Dvořák <valtri@civ.zcu.cz>
Wed, 13 Aug 2008 18:38:16 +0000 (18:38 +0000)
committerFrantišek Dvořák <valtri@civ.zcu.cz>
Wed, 13 Aug 2008 18:38:16 +0000 (18:38 +0000)
org.glite.lb.server/config/startup

index 8d748e0..d1479bf 100755 (executable)
@@ -14,6 +14,8 @@ GLITE_LOCATION_VAR=${GLITE_LOCATION_VAR:-/var/glite}
 [ -n "$GLITE_LB_SERVER_PIDFILE" ] && pidfile=$GLITE_LB_SERVER_PIDFILE ||
        pidfile=$GLITE_LOCATION_VAR/glite-lb-bkserverd.pid
 [ -z "$GLITE_LB_NOTIF_SOCK" ] && GLITE_LB_NOTIF_SOCK="/tmp/glite-lb-notif.sock"
+[ -n "$GLITE_JP_IMPORTER_PIDFILE" ] && jp_importer_pidfile=$GLITE_JP_IMPORTER_PIDFILE ||
+       jp_importer_pidfile=$GLITE_LOCATION_VAR/glite-jp-importer.pid
 
 unset creds port
 
@@ -44,9 +46,29 @@ start()
        [ -d "$GLITE_LB_EXPORT_PURGEDIR" ] || mkdir -p "$GLITE_LB_EXPORT_PURGEDIR" && chown $GLITE_USER:$GLITE_GROUP -R "$GLITE_LB_EXPORT_PURGEDIR"
 
        if [ x"$GLITE_LB_EXPORT_ENABLED" = x"true" ]; then
+               if [ ! -x $GLITE_LOCATION/bin/glite-jp-importer ]; then
+                       echo "glite-jp-importer needed for export to Job Provenace, install glite-jp-client package too."
+                       exit 1
+               fi
+
+               # registrations
                [ -z "$GLITE_LB_EXPORT_JPREG_MAILDIR" ] && GLITE_LB_EXPORT_JPREG_MAILDIR=$GLITE_LOCATION_VAR/jpreg
+               jpreg_maildir="--reg-mdir $GLITE_LB_EXPORT_JPREG_MAILDIR"
+               lbreg_maildir="--jpreg-dir $GLITE_LB_EXPORT_JPREG_MAILDIR"
                [ -d "$GLITE_LB_EXPORT_JPREG_MAILDIR" ] || mkdir -p "$GLITE_LB_EXPORT_JPREG_MAILDIR" && chown $GLITE_USER:$GLITE_GROUP -R "$GLITE_LB_EXPORT_JPREG_MAILDIR"
-               maildir="--jpreg-dir $GLITE_LB_EXPORT_JPREG_MAILDIR"
+
+               # dumps
+               [ -z "$GLITE_LB_EXPORT_JPDUMP_MAILDIR" ] && GLITE_LB_EXPORT_JPDUMP_MAILDIR=$GLITE_LOCATION_VAR/jpdump
+               jpdump_maildir="--dump-mdir $GLITE_LB_EXPORT_JPDUMP_MAILDIR"
+               [ -d "$GLITE_LB_EXPORT_JPDUMP_MAILDIR" ] || mkdir -p "$GLITE_LB_EXPORT_JPDUMP_MAILDIR" && chown $GLITE_USER:$GLITE_GROUP -R "$GLITE_LB_EXPORT_JPDUMP_MAILDIR"
+
+               # sandboxes
+               [ -z "$GLITE_LB_EXPORT_SANDBOX_MAILDIR" ] && GLITE_LB_EXPORT_SANDBOX_MAILDIR=$GLITE_LOCATION_VAR/sandbox
+               sandbox_maildir="--sandbox-mdir $GLITE_LB_EXPORT_SANDBOX_MAILDIR"
+               [ -d "$GLITE_LB_EXPORT_SANDBOX_MAILDIR" ] || mkdir -p "$GLITE_LB_EXPORT_SANDBOX_MAILDIR" && chown $GLITE_USER:$GLITE_GROUP -R "$GLITE_LB_EXPORT_SANDBOX_MAILDIR"
+
+               # target Job Provenance
+               [ -n "$GLITE_LB_EXPORT_JPPS" ] && jpps="--jpps $GLITE_LB_EXPORT_JPPS"
        fi
 
        if test -r "$GLITE_LOCATION/etc/LB-super-users"; then
@@ -68,11 +90,11 @@ start()
                fi
        fi
 
-       echo -n Starting glite-lb-bkserver ...
+       echo -n Starting glite-lb-bkserverd ...
        su - $GLITE_USER -c "$GLITE_LOCATION/bin/glite-lb-bkserverd \
                --notif-il-sock=$GLITE_LB_NOTIF_SOCK \
                --notif-il-fprefix=$GLITE_LB_NOTIF_FPREFIX \
-               $super $creds -i $pidfile $port $wport $dumpdir $purgedir $maildir \
+               $super $creds -i $pidfile $port $wport $dumpdir $purgedir $lbreg_maildir\
                $GLITE_LB_SERVER_OTHER_OPTIONS" \
        && echo " done" || echo " FAILED"
 
@@ -84,17 +106,24 @@ start()
        else
                echo Warning: glite-lb-notif-interlogd not installed, LB notifications will not work
        fi
+
+       if test x"$GLITE_LB_EXPORT_ENABLED" = x"true" ; then
+               su - $GLITE_USER -c "$GLITE_LOCATION/bin/glite-jp-importer \
+                       -i $jp_importer_pidfile $jpreg_maildir $jpdump_maildir $sandbox_maildir \
+                       $jpps $creds $GLITE_JP_IMPORTER_ARGS" \
+               && echo " done" || echo " FAILED"
+       fi
 }
 
-stop()
+stop_daemon()
 {
-       echo -n Stopping glite-lb-notif-interlogd ...
-       killall glite-lb-notif-interlogd
-       echo done
-       if [ -f $pidfile ]; then
-               pid=`cat $pidfile`
+       name="$1"
+       pidfile="$2"
+
+       if [ -f "$pidfile" ]; then
+               pid=`cat "$pidfile"`
                kill $pid
-               echo -n Stopping glite-lb-bkserverd \($pid\) ...
+               echo -n Stopping $name \($pid\) ...
                try=0
                while ps p $pid >/dev/null 2>&1; do 
                        sleep 1;
@@ -107,11 +136,44 @@ stop()
                echo " done"
                rm -f $pidfile
        else
-               echo $pidfile does not exist - glite-lb-bkserverd not running? >&2
+               echo $pidfile does not exist - $name not running? >&2
                return 1
        fi
 }
 
+status_daemon()
+{
+       name="$1"
+       pidfile="$2"
+
+       if [ -f "$pidfile" ]; then
+               pid=`cat "$pidfile"`
+               if ps p $pid >/dev/null 2>&1; then
+                       echo $name running as $pid 
+               else
+                       echo $name not running
+                       return 1
+               fi
+       else
+               echo $name not running
+               return 1
+       fi
+
+       return 0
+}
+
+stop()
+{
+       echo -n Stopping glite-lb-notif-interlogd ...
+       killall glite-lb-notif-interlogd
+       echo done
+
+       stop_daemon "glite-lb-bkserverd" $pidfile
+       if test x"$GLITE_LB_EXPORT_ENABLED" = x"true"; then
+               stop_daemon "glite-jp-importer" $jp_importer_pidfile
+       fi
+}
+
 status()
 {
        retval=0
@@ -124,17 +186,9 @@ status()
                retval=1
        fi
 
-       if [ -f $pidfile ]; then
-               pid=`cat $pidfile`
-               if ps p $pid >/dev/null 2>&1; then
-                       echo glite-lb-bkserverd running as $pid 
-               else
-                       echo glite-lb-bkserverd not running
-                       retval=1
-               fi
-       else
-               echo glite-lb-bkserverd not running
-               retval=1
+       status_daemon "glite-lb-bkserverd" "$pidfile" || retval=1
+       if test x"$GLITE_LB_EXPORT_ENABLED" = x"true"; then
+               status_daemon "glite-jp-importer" "$jp_importer_pidfile" || retval=1
        fi
 
        return $retval