L&B proxy support in startup scripts (launch additional interlogger for proxy, ...).
authorFrantišek Dvořák <valtri@civ.zcu.cz>
Thu, 27 Aug 2009 14:55:13 +0000 (14:55 +0000)
committerFrantišek Dvořák <valtri@civ.zcu.cz>
Thu, 27 Aug 2009 14:55:13 +0000 (14:55 +0000)
org.glite.lb.doc/src/LBAG-Installation.tex
org.glite.lb.logger/config/startup
org.glite.lb.server/config/startup

index c9a1b1d..de54b5f 100644 (file)
@@ -133,6 +133,7 @@ export data are written for use by lgcmon/R-GMA
 \item \texttt{GLITE\_LB\_RTM\_DN} -- DN using to get notifications from \LB server\\
 (default: \texttt{heppc24.hep.ph.ic.ac.uk} machine certificate)
 \item \texttt{GLITE\_LB\_SUPER\_USERS} -- additional super-users (default: empty)
+\item \texttt{GLITE\_LB\_TYPE} -- type of the \LB service: server, proxy, both (default: server)
 \end{itemize}
 
 In addition to those, YAIM LB module uses following parameters:
index 814f9b8..c48d52a 100755 (executable)
@@ -16,6 +16,12 @@ unset creds port
 
 start()
 {
+       case "$GLITE_LB_TYPE" in
+       proxy)
+               echo 'Not starting logd and interlogger, proxy only instance (GLITE_LB_TYPE=proxy).'
+               return 0
+       esac
+
        if test -z "$GLITE_USER" ;then
                echo 'Error: GLITE_USER is not set'
                echo FAILED
index e920349..c626c2c 100755 (executable)
@@ -19,6 +19,10 @@ GLITE_JP_LOCATION=${GLITE_JP_LOCATION:-$GLITE_LOCATION}
 [ -n "$GLITE_JP_IMPORTER_PIDFILE" ] && jp_importer_pidfile=$GLITE_JP_IMPORTER_PIDFILE ||
        jp_importer_pidfile=$GLITE_LOCATION_VAR/glite-jp-importer.pid
 
+GLITE_LB_TYPE=${GLITE_LB_TYPE:-'server'} # server, proxy, both
+GLITE_LB_PROXY_SOCK=${GLITE_LB_PROXY_SOCK:-'/tmp/glite-lbproxy-ilog.sock'}
+GLITE_LB_PROXY_FPREFIX=${GLITE_LB_PROXY_FPREFIX:-'/tmp/glite-lbproxy-ilog_events'}
+
 unset creds port
 
 start()
@@ -91,12 +95,23 @@ start()
                        GLITE_LB_NOTIF_OTHER_OPTIONS="$GLITE_LB_NOTIF_OTHER_OPTIONS -v -d >> $GLITE_LOCATION_VAR/notif-il.log 2>&1 &"
                fi
        fi
+       case "$GLITE_LB_TYPE" in
+       proxy)
+               proxy="-P --proxy-il-sock $GLITE_LB_PROXY_SOCK --proxy-il-fprefix $GLITE_LB_PROXY_FPREFIX"
+               ;;
+       both)
+               proxy="-B --proxy-il-sock $GLITE_LB_PROXY_SOCK --proxy-il-fprefix $GLITE_LB_PROXY_FPREFIX"
+               ;;
+       *)
+               proxy=''
+               ;;
+       esac
 
        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 $lbreg_maildir\
+               $super $creds -i $pidfile $port $wport $dumpdir $purgedir $lbreg_maildir $proxy\
                $GLITE_LB_SERVER_OTHER_OPTIONS" \
        && echo " done" || echo " FAILED"
 
@@ -117,6 +132,17 @@ start()
                        $jpps $creds $GLITE_JP_IMPORTER_ARGS" \
                && echo " done" || echo " FAILED"
        fi
+
+       if test x"$GLITE_LB_TYPE" = x"proxy" -o x"$GLITE_LB_TYPE" = x"both" ; then
+               if test -x $GLITE_LOCATION/bin/glite-lb-notif-interlogd; then
+                       echo -n Starting glite-lb-interlogd for proxy ...
+                       su - $GLITE_USER -c "$GLITE_LOCATION/bin/glite-lb-interlogd \
+                               -f $GLITE_LB_PROXY_FPREFIX -s $GLITE_LB_PROXY_SOCK \
+                               $creds $GLITE_LB_PREFIX_OTHER_OPTIONS" && echo " done" || echo " FAILED"
+               else
+                       echo Warning: glite-lb-interlogd not installed, logging to LB proxy will not work
+               fi
+       fi
 }
 
 stop_daemon()
@@ -168,21 +194,33 @@ status_daemon()
 
 stop()
 {
+       LC_ALL=C
+
        echo -n Stopping glite-lb-notif-interlogd ...
        killall glite-lb-notif-interlogd
-       echo done
+       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
+
+       pid=`netstat -anp --unix  2>/dev/null | grep "^unix .* LISTEN.* ${GLITE_LB_PROXY_SOCK}$"`
+       if test x"$pid" = x"" ; then
+               echo "glite-lb-interlogd for proxy not running"
+       else
+               pid=`echo $pid | sed -e 's/.*LISTEN[A-Z]*  *[^ ][^ ]*  *\([0-9]*\).*/\1/'`
+               echo -n Stopping glite-lb-interlogd for proxy \($pid\) ...
+               kill "$pid"
+               echo " done"
+       fi
 }
 
 status()
 {
        retval=0
-
        LC_ALL=C
+
        if netstat -an --unix | grep "^unix .* LISTEN.* ${GLITE_LB_NOTIF_SOCK}$" >/dev/null 2>&1 ;then
                echo glite-lb-notif-interlogd running
        else
@@ -190,6 +228,13 @@ status()
                retval=1
        fi
 
+       if netstat -an --unix | grep "^unix .* LISTEN.* ${GLITE_LB_PROXY_SOCK}$" >/dev/null 2>&1 ;then
+               echo glite-lb-interlogd for proxy running
+       else
+               echo glite-lb-interlogd for proxy not running
+               retval=1
+       fi
+
        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