Final cleanup LB/JP interaction:
authorFrantišek Dvořák <valtri@civ.zcu.cz>
Tue, 4 Apr 2006 07:35:40 +0000 (07:35 +0000)
committerFrantišek Dvořák <valtri@civ.zcu.cz>
Tue, 4 Apr 2006 07:35:40 +0000 (07:35 +0000)
  - JOBSDIR required
  - added JOBSDIR_KEEP for future using
  - purging on localhost on configured port (so removed bkserver config)
  - removing used dumps and job files as default
  - glite-lb-export.sh to /sbin
  - removed LB/JP part from LB deployment patch

org.glite.lb/deployment/README
org.glite.lb/deployment/deploy_lb.diff

index ad8d2ee..770e2b5 100644 (file)
@@ -1,3 +1,2 @@
-deploy_lb - against glite-deployment-lb_R_2_1_2 (with not commited changes to
-            LB/JP and deployment build workarounds)
+deploy_lb - against glite-deployment-lb_R_2_1_2 (with build workarounds)
 deploy_jp - against HEAD
index ee94a70..cca3ac8 100644 (file)
@@ -1,3 +1,5 @@
+Patch to LB deployment modul (with build workarounds, for using).
+
 Index: org.glite.deployment.lb/config/scripts/glite-lb-config.py
 ===================================================================
 RCS file: /cvs/jra1mw/org.glite.deployment.lb/config/scripts/glite-lb-config.py,v
@@ -310,359 +312,3 @@ diff -u -r1.3.4.1 properties.xml
 +<property name="build.package.name" value="glite-rgma-servicetool-config" />
 +<property name="build.package.prefix" value="glite-rgma-servicetool" />
  </project>
-Index: org.glite.jp.client/config/startup
-===================================================================
-RCS file: /cvs/jra1mw/org.glite.jp.client/config/startup,v
-retrieving revision 1.2
-diff -u -r1.2 startup
---- org.glite.jp.client/config/startup 31 Mar 2006 09:02:19 -0000      1.2
-+++ org.glite.jp.client/config/startup 3 Apr 2006 18:59:49 -0000
-@@ -41,10 +41,14 @@
-       jpdump_maildir="--dump-mdir $GLITE_LB_EXPORT_JPDUMP_MAILDIR "
-       [ -d "$GLITE_LB_EXPORT_JPDUMP_MAILDIR" ] || mkdir "$GLITE_LB_EXPORT_JPDUMP_MAILDIR" && chown $GLITE_USER:$GLITE_GROUP "$GLITE_LB_EXPORT_JPDUMP_MAILDIR"
-       [ -n "$GLITE_LB_EXPORT_JPPS" ] && jpps="--jpps $GLITE_LB_EXPORT_JPPS "
-+      if [ -n "$GLITE_LB_EXPORT_JOBSDIR_KEEP" ]; then
-+              keep_jobs="--store ${GLITE_LB_EXPORT_JOBSDIR_KEEP} "
-+              [ -d $GLITE_LB_EXPORT_JOBSDIR_KEEP ] || mkdir -p $GLITE_LB_EXPORT_JOBSDIR_KEEP
-+      fi
-       echo -n Starting glite-jp-importer ...
-       su - $GLITE_USER -c "$GLITE_LOCATION/bin/glite-jp-importer \
--              -i $pidfile $jpreg_maildir $jpdump_maildir $jpps $creds" \
-+              -i $pidfile $jpreg_maildir $jpdump_maildir $jpps $keep_jobs $creds" \
-       && echo " done" || echo " FAILED"
- }
-Index: org.glite.jp.client/examples/glite-jp-importer.sh
-===================================================================
-RCS file: /cvs/jra1mw/org.glite.jp.client/examples/glite-jp-importer.sh,v
-retrieving revision 1.3
-diff -u -r1.3 glite-jp-importer.sh
---- org.glite.jp.client/examples/glite-jp-importer.sh  16 Mar 2006 15:08:50 -0000      1.3
-+++ org.glite.jp.client/examples/glite-jp-importer.sh  3 Apr 2006 18:59:49 -0000
-@@ -21,11 +21,9 @@
-   echo "Please specify the Job Provanance Primary Storage server."
-   exit 1
- fi
--# bookkeeping server
--if [ -z "$GLITE_LB_EXPORT_BKSERVER" ]; then
--  echo "Please specify the Book Keeping server."
--  exit 1
--fi
-+# book keeping server
-+GLITE_LB_SERVER_PORT=${GLITE_LB_SERVER_PORT:-9000}
-+GLITE_LB_EXPORT_BKSERVER=${GLITE_LB_EXPORT_BKSERVER:-localhost:$GLITE_LB_SERVER_PORT}
- # certificates
- if [ -z "$X509_USER_CERT" -o -z "$X509_USER_KEY" ]; then
-   echo "Please set X509_USER_CERT and X509_USER_KEY."
-@@ -41,25 +39,30 @@
-   GLITE_LB_EXPORT_JPREG_MAILDIR=/tmp/jpreg
-   echo "GLITE_LB_EXPORT_JPREG_MAILDIR not specified (-J arguent of the bkserver), used $GLITE_LB_EXPORT_JPREG_MAILDIR"
- fi
-+# pidfile
-+[ -n "$GLITE_JP_IMPORTER_PIDFILE" ] && pidfile="-i $GLITE_JP_IMPORTER_PIDFILE "
- CERT_ARGS="-c $X509_USER_CERT -k $X509_USER_KEY"
- GLITE_LB_EXPORT_JPDUMP_MAILDIR=${GLITE_LB_EXPORT_JPDUMP_MAILDIR:-/tmp/jpdump}
--GLITE_LB_EXPORT_DUMPDIR_OLD=${GLITE_LB_EXPORT_DUMPDIR_OLD:-$GLITE_LB_EXPORT_DUMPDIR.old}
--GLITE_LB_EXPORT_EXPORTDIR=${GLITE_LB_EXPORT_EXPORTDIR:-/tmp/lbexport}
-+GLITE_LB_EXPORT_JOBSDIR=${GLITE_LB_EXPORT_JOBSDIR:-/tmp/lbexport}
- PREFIX=${PREFIX:-`dirname $0`/..}
- LOGDIR=$GLITE_LOCATION_VAR
--GLITE_LB_EXPORT_PURGE_ARGS=${GLITE_LB_EXPORT_PURGE_ARGS:--a 1h -c 1h -n 1h -o 1d}
-+GLITE_LB_EXPORT_PURGE_ARGS=${GLITE_LB_EXPORT_PURGE_ARGS:---aborted 1d --cleared 1d --cancelled 1d --other 7d}
- [ -d $GLITE_LB_EXPORT_JPDUMP_MAILDIR ] || mkdir -p $GLITE_LB_EXPORT_JPDUMP_MAILDIR
- [ -d $GLITE_LB_EXPORT_DUMPDIR ] || mkdir -p $GLITE_LB_EXPORT_DUMPDIR
--[ -d $GLITE_LB_EXPORT_DUMPDIR_OLD ] || mkdir -p $GLITE_LB_EXPORT_DUMPDIR_OLD
--[ -d $GLITE_LB_EXPORT_EXPORTDIR ] || mkdir -p $GLITE_LB_EXPORT_EXPORTDIR
-+[ -n "$GLITE_LB_EXPORT_DUMPDIR_KEEP" -a ! -d $GLITE_LB_EXPORT_DUMPDIR_KEEP ] && mkdir -p $GLITE_LB_EXPORT_DUMPDIR_KEEP
-+[ -d $GLITE_LB_EXPORT_JOBSDIR ] || mkdir -p $GLITE_LB_EXPORT_JOBSDIR
-+if [ -n "$GLITE_LB_EXPORT_JOBSDIR_KEEP" ]; then
-+  keep_jobs="--store ${GLITE_LB_EXPORT_JOBSDIR_KEEP} "
-+  [ -d $GLITE_LB_EXPORT_JOBSDIR_KEEP ] || mkdir -p $GLITE_LB_EXPORT_JOBSDIR_KEEP
-+fi
- [ -d $LOGDIR ] || mkdir -p $LOGDIR
- echo "Using cert args $CERT_ARGS"
--$PREFIX/bin/glite-jp-importer -r $GLITE_LB_EXPORT_JPREG_MAILDIR -d $GLITE_LB_EXPORT_JPDUMP_MAILDIR $CERT_ARGS -g -p $GLITE_LB_EXPORT_JPPS > $LOGDIR/jp-importer.log 2>&1 &
-+$PREFIX/bin/glite-jp-importer --reg-mdir $GLITE_LB_EXPORT_JPREG_MAILDIR --dump-mdir $GLITE_LB_EXPORT_JPDUMP_MAILDIR $CERT_ARGS -g --jpps $GLITE_LB_EXPORT_JPPS $pidfile$keep_jobs> $LOGDIR/jp-importer.log 2>&1 &
- JP_PID=$!
- trap "kill $JP_PID; exit 0" SIGINT
-@@ -68,8 +71,12 @@
-   for file in $GLITE_LB_EXPORT_DUMPDIR/*; do
-     if [ -s $file ]; then
--      $PREFIX/sbin/glite-lb-lb_dump_exporter -d $file -s $GLITE_LB_EXPORT_EXPORTDIR -m $GLITE_LB_EXPORT_JPDUMP_MAILDIR
--      mv $file $GLITE_LB_EXPORT_DUMPDIR_OLD
-+      $PREFIX/sbin/glite-lb-lb_dump_exporter -d $file -s $GLITE_LB_EXPORT_JOBSDIR -m $GLITE_LB_EXPORT_JPDUMP_MAILDIR
-+      if [ -n "$GLITE_LB_EXPORT_DUMPDIR_KEEP" ]; then
-+        mv $file $GLITE_LB_EXPORT_DUMPDIR_KEEP
-+      else
-+        rm $file
-+      fi
-     else
-       rm $file
-     fi
-Index: org.glite.jp.client/src/jpimporter.c
-===================================================================
-RCS file: /cvs/jra1mw/org.glite.jp.client/src/jpimporter.c,v
-retrieving revision 1.8
-diff -u -r1.8 jpimporter.c
---- org.glite.jp.client/src/jpimporter.c       16 Jan 2006 17:20:26 -0000      1.8
-+++ org.glite.jp.client/src/jpimporter.c       3 Apr 2006 18:59:49 -0000
-@@ -12,6 +12,7 @@
- #include <errno.h>
- #include <syslog.h>
- #include <fcntl.h>
-+#include <libgen.h>
- #include "glite/lb/lb_maildir.h"
- #include "glite/security/glite_gsplugin.h"
-@@ -66,6 +67,7 @@
- static char                      *jpps = GLITE_JPPS;
- static char                           reg_mdir[PATH_MAX] = GLITE_REG_IMPORTER_MDIR;
- static char                           dump_mdir[PATH_MAX] = GLITE_DUMP_IMPORTER_MDIR;
-+static char                           *store = NULL;
- static struct soap       *soap;
- static time_t                 cert_mtime;
-@@ -87,6 +89,7 @@
-       { "dump-mdir",   1, NULL,    'd'},
-       { "pidfile",     1, NULL,    'i'},
-       { "poll",        1, NULL,    't'},
-+      { "store",       1, NULL,    's'},
-       { NULL,          0, NULL,     0}
- };
-@@ -105,6 +108,7 @@
-               "\t-d, --dump-mdir    path to the 'LB maildir' subtree for LB dumps\n"
-               "\t-i, --pidfile      file to store master pid\n"
-               "\t-t, --poll         maildir polling interval (in seconds)\n",
-+              "\t-s, --store        keep uploaded jobs in this directory\n",
-               me);
- }
-@@ -157,6 +161,7 @@
-               case 'C': cadir = optarg; break;
-               case 'p': jpps = optarg; break;
-               case 't': poll = atoi(optarg); break;
-+              case 's': store = optarg; break;
-               case 'r': strcpy(reg_mdir, optarg); break;
-               case 'd': strcpy(dump_mdir, optarg); break;
-               case 'i': strcpy(pidfile, optarg); break;
-@@ -187,6 +192,12 @@
-               
-       edg_wll_MaildirInit(reg_mdir);
-       edg_wll_MaildirInit(dump_mdir);
-+      if (store && *store) {
-+              if (mkdir(store, 0750) != 0 && errno != EEXIST) {
-+                      fprintf(stderr, "Can't create directory %s: %s\n", store, strerror(errno));
-+                      store = NULL;
-+              }
-+      }
-       if ( !debug ) {
-               if ( daemon(1,0) == -1 ) { perror("deamon()"); exit(1); }
-@@ -401,7 +412,9 @@
-       static int              readnew = 1;
-       char               *msg = NULL,
-                                  *fname = NULL,
--                                 *aux;
-+                                 *aux,
-+                                 *bname;
-+      char                        fspec[PATH_MAX];
-       int                             ret;
-       int                             fhnd;
-       msg_pattern_t   tab[] = {
-@@ -469,6 +482,20 @@
-               ret = soap_call___jpsrv__CommitUpload(soap, tab[_jpps].val?:jpps, "", &cu_in, &empty);
-               if ( (ret = check_soap_fault(soap, ret)) ) break;
-               dprintf(("[%s] Dump upload succesfull\n", name));
-+              if (store && *store) {
-+                      bname = strdup(tab[_file].val);
-+                      snprintf(fspec, sizeof fspec, "%s/%s", store, basename(bname));
-+                      free(bname);
-+                      if (rename(tab[_file].val, fspec) != 0) 
-+                              fprintf(stderr, "moving %s to %s failed: %s\n", tab[_file].val, fspec, strerror(errno));
-+                      else
-+                              dprintf(("[%s] moving %s to %s OK\n", name, tab[_file].val, fspec));
-+              } else {
-+                      if (unlink(tab[_file].val) != 0)
-+                              fprintf(stderr, "removing %s failed: %s\n", tab[_file].val, strerror(errno));
-+                      else
-+                              dprintf(("[%s] %s removed\n", name, tab[_file].val));
-+              }
-       } while (0);
-       edg_wll_MaildirTransEnd(dump_mdir, fname, ret? LBMD_TRANS_FAILED_RETRY: LBMD_TRANS_OK);
-Index: org.glite.lb.server/config/startup
-===================================================================
-RCS file: /cvs/jra1mw/org.glite.lb.server/config/startup,v
-retrieving revision 1.13
-diff -u -r1.13 startup
---- org.glite.lb.server/config/startup 15 Mar 2006 18:12:21 -0000      1.13
-+++ org.glite.lb.server/config/startup 3 Apr 2006 18:59:49 -0000
-@@ -44,7 +44,7 @@
-       [ -z "$creds" ] && echo $0: WARNING: No credentials specified. Using default lookup which is dangerous. >&2
--      [ -n "$GLITE_LB_SERVER_PORT" ] && port="-p $GLITE_LB_SERVER_PORT"
-+      [ -n "$GLITE_LB_SERVER_PORT" ] && port="-p $GLITE_LB_SERVER_PORT -w $((GLITE_LB_SERVER_PORT+3))"
-       echo -n Starting glite-lb-bkserver ...
-       su - $GLITE_USER -c "$GLITE_LOCATION/bin/glite-lb-bkserverd \
-Index: org.glite.lb.client/Makefile
-===================================================================
-RCS file: /cvs/jra1mw/org.glite.lb.client/Makefile,v
-retrieving revision 1.55
-diff -u -r1.55 Makefile
---- org.glite.lb.client/Makefile       23 Mar 2006 16:38:44 -0000      1.55
-+++ org.glite.lb.client/Makefile       3 Apr 2006 19:04:06 -0000
-@@ -292,7 +292,7 @@
-       for p in ${EXAMPLES} ${EXAMPLES_CL} ${sh_PROGS} ; do \
-               ${INSTALL} -m 755 "$$p" "${PREFIX}/examples/glite-lb-$$p"; \
-       done
--      ${INSTALL} -m 755 ${top_srcdir}/examples/export.sh "${PREFIX}/examples/glite-lb-export.sh"
-+      ${INSTALL} -m 755 ${top_srcdir}/src/export.sh "${PREFIX}/sbin/glite-lb-export.sh"
-       ${INSTALL} -m 644 ${MAN_GZ} ${PREFIX}/share/man/man1
- clean:
-Index: org.glite.lb.client/examples/export.sh
-===================================================================
-RCS file: org.glite.lb.client/examples/export.sh
-diff -N org.glite.lb.client/examples/export.sh
---- org.glite.lb.client/examples/export.sh     30 Mar 2006 15:23:51 -0000      1.3
-+++ /dev/null  1 Jan 1970 00:00:00 -0000
-@@ -1,58 +0,0 @@
--#! /bin/bash
--
--#
--# script for exporing jobs from bkserver which should be periodically run
--# together with running jp-importer
--#
--# it uses configuration from enviroment ==> may require a configuration wrapper
--#
--
--#autodetect the prefix
--PREFIX=${GLITE_LOCATION:-`dirname $0`/..}
--
--if [ -n "$GLITE_HOST_CERT" -a -n "$GLITE_HOST_KEY" ] ;then
--      creds="-c '$GLITE_HOST_CERT' -k '$GLITE_HOST_KEY'"
--      X509_USER_CERT="$GLITE_HOST_CERT"
--      X509_USER_KEY="$GLITE_HOST_KEY"
--fi
--if test -z "$creds"; then
--      if su - $GLITE_USER -c "test -r /etc/grid-security/hostkey.pem -a -r /etc/grid-security/hostcert.pem"; then
--              echo "$0: WARNING: /etc/grid-security/hostkey.pem readable by $GLITE_USER"
--              creds="-c /etc/grid-security/hostcert.pem -k /etc/grid-security/hostkey.pem"
--              X509_USER_CERT=/etc/grid-security/hostcert.pem
--              X509_USER_KEY=/etc/grid-security/hostkey.pem
--      fi
--fi
--
--
--[ -z "$creds" ] && echo $0: WARNING: No credentials specified. Using default lookup which is dangerous. >&2
--
--
--
--# dump directory of bkserver
--GLITE_LB_EXPORT_DUMPDIR=${GLITE_LB_EXPORT_DUMPDIR:-/tmp/dump}
--GLITE_LB_EXPORT_DUMPDIR_OLD=${GLITE_LB_EXPORT_DUMPDIR_OLD:-$GLITE_LB_EXPORT_DUMPDIR.old}
--# maildir dump directory for jp importer
--GLITE_LB_EXPORT_JPDUMP_MAILDIR=${GLITE_LB_EXPORT_JPDUMP_MAILDIR:-/tmp/jpdump}
--# directory with exported data (file per job)
--GLITE_LB_EXPORT_EXPORTDIR=${GLITE_LB_EXPORT_EXPORTDIR:-/tmp/lbexport}
--# purge args (timeouts)
--GLITE_LB_EXPORT_PURGE_ARGS=${GLITE_LB_EXPORT_PURGE_ARGS:--a 1h -c 1h -n 1h -o 1d}
--# Book Keeping Server
--GLITE_LB_EXPORT_BKSERVER=${GLITE_LB_EXPORT_BKSERVER:-localhost:9000}
--
--[ -d $GLITE_LB_EXPORT_JPDUMP_MAILDIR ] || mkdir -p $GLITE_LB_EXPORT_JPDUMP_MAILDIR
--[ -d $GLITE_LB_EXPORT_DUMPDIR ] || mkdir -p $GLITE_LB_EXPORT_DUMPDIR
--[ -d $GLITE_LB_EXPORT_DUMPDIR_OLD ] || mkdir -p $GLITE_LB_EXPORT_DUMPDIR_OLD
--[ -d $GLITE_LB_EXPORT_EXPORTDIR ] || mkdir -p $GLITE_LB_EXPORT_EXPORTDIR
--
--X509_USER_CERT="$X509_USER_CERT" X509_USER_KEY="$X509_USER_KEY" $PREFIX/sbin/glite-lb-purge $GLITE_LB_EXPORT_PURGE_ARGS -l -m $GLITE_LB_EXPORT_BKSERVER
--
--for file in $GLITE_LB_EXPORT_DUMPDIR/*; do
--  if [ -s $file ]; then
--    $PREFIX/sbin/glite-lb-lb_dump_exporter -d $file -s $GLITE_LB_EXPORT_EXPORTDIR -m $GLITE_LB_EXPORT_JPDUMP_MAILDIR
--    mv $file $GLITE_LB_EXPORT_DUMPDIR_OLD
--  else
--    rm $file
--  fi
--done
-Index: org.glite.lb.client/src/export.sh
-===================================================================
-RCS file: org.glite.lb.client/src/export.sh
-diff -N org.glite.lb.client/src/export.sh
---- /dev/null  1 Jan 1970 00:00:00 -0000
-+++ org.glite.lb.client/src/export.sh  3 Apr 2006 19:04:06 -0000
-@@ -0,0 +1,63 @@
-+#! /bin/bash
-+
-+#
-+# script for exporing jobs from bkserver which should be periodically run
-+# together with running jp-importer
-+#
-+# it uses configuration from enviroment ==> may require a configuration wrapper
-+#
-+
-+#autodetect the prefix
-+PREFIX=${GLITE_LOCATION:-`dirname $0`/..}
-+
-+if [ -n "$GLITE_HOST_CERT" -a -n "$GLITE_HOST_KEY" ] ;then
-+      creds="-c '$GLITE_HOST_CERT' -k '$GLITE_HOST_KEY'"
-+      X509_USER_CERT="$GLITE_HOST_CERT"
-+      X509_USER_KEY="$GLITE_HOST_KEY"
-+fi
-+if test -z "$creds"; then
-+      if su - $GLITE_USER -c "test -r /etc/grid-security/hostkey.pem -a -r /etc/grid-security/hostcert.pem"; then
-+              echo "$0: WARNING: /etc/grid-security/hostkey.pem readable by $GLITE_USER"
-+              creds="-c /etc/grid-security/hostcert.pem -k /etc/grid-security/hostkey.pem"
-+              X509_USER_CERT=/etc/grid-security/hostcert.pem
-+              X509_USER_KEY=/etc/grid-security/hostkey.pem
-+      fi
-+fi
-+
-+
-+[ -z "$creds" ] && echo $0: WARNING: No credentials specified. Using default lookup which is dangerous. >&2
-+
-+
-+
-+# dump directory of bkserver
-+GLITE_LB_EXPORT_DUMPDIR=${GLITE_LB_EXPORT_DUMPDIR:-/tmp/dump}
-+GLITE_LB_EXPORT_DUMPDIR_KEEP=${GLITE_LB_EXPORT_DUMPDIR_KEEP:-""}
-+# maildir dump directory for jp importer
-+GLITE_LB_EXPORT_JPDUMP_MAILDIR=${GLITE_LB_EXPORT_JPDUMP_MAILDIR:-/tmp/jpdump}
-+# directory with exported data (file per job)
-+GLITE_LB_EXPORT_JOBSDIR=${GLITE_LB_EXPORT_JOBSDIR:-/tmp/lbexport}
-+# purge args (timeouts)
-+GLITE_LB_EXPORT_PURGE_ARGS=${GLITE_LB_EXPORT_PURGE_ARGS:--a 1h -c 1h -n 1h -o 1d}
-+# Book Keeping Server
-+GLITE_LB_SERVER_PORT=${GLITE_LB_SERVER_PORT:-9000}
-+GLITE_LB_EXPORT_BKSERVER=${GLITE_LB_EXPORT_BKSERVER:-localhost:$GLITE_LB_SERVER_PORT}
-+
-+[ -d $GLITE_LB_EXPORT_JPDUMP_MAILDIR ] || mkdir -p $GLITE_LB_EXPORT_JPDUMP_MAILDIR
-+[ -d $GLITE_LB_EXPORT_DUMPDIR ] || mkdir -p $GLITE_LB_EXPORT_DUMPDIR
-+[ -d $GLITE_LB_EXPORT_DUMPDIR_KEEP ] || mkdir -p $GLITE_LB_EXPORT_DUMPDIR_KEEP
-+[ -d $GLITE_LB_EXPORT_JOBSDIR ] || mkdir -p $GLITE_LB_EXPORT_JOBSDIR
-+
-+X509_USER_CERT="$X509_USER_CERT" X509_USER_KEY="$X509_USER_KEY" $PREFIX/sbin/glite-lb-purge $GLITE_LB_EXPORT_PURGE_ARGS -l -m $GLITE_LB_EXPORT_BKSERVER
-+
-+for file in $GLITE_LB_EXPORT_DUMPDIR/*; do
-+  if [ -s $file ]; then
-+    $PREFIX/sbin/glite-lb-lb_dump_exporter -d $file -s $GLITE_LB_EXPORT_JOBSDIR -m $GLITE_LB_EXPORT_JPDUMP_MAILDIR
-+    if [ -n "$GLITE_LB_EXPORT_DUMPDIR_KEEP" ]; then
-+      mv $file $GLITE_LB_EXPORT_DUMPDIR_KEEP
-+    else
-+      rm $file
-+    fi
-+  else
-+    rm $file
-+  fi
-+done