From: František Dvořák Date: Tue, 4 Apr 2006 07:35:40 +0000 (+0000) Subject: Final cleanup LB/JP interaction: X-Git-Tag: glite-lb_R_1_3_1~2 X-Git-Url: http://scientific.zcu.cz/git/?a=commitdiff_plain;h=736a7f9ee5a107a3f7ce5d389427fc90bb437958;p=jra1mw.git Final cleanup LB/JP interaction: - 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 --- diff --git a/org.glite.lb/deployment/README b/org.glite.lb/deployment/README index ad8d2ee..770e2b5 100644 --- a/org.glite.lb/deployment/README +++ b/org.glite.lb/deployment/README @@ -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 diff --git a/org.glite.lb/deployment/deploy_lb.diff b/org.glite.lb/deployment/deploy_lb.diff index ee94a70..cca3ac8 100644 --- a/org.glite.lb/deployment/deploy_lb.diff +++ b/org.glite.lb/deployment/deploy_lb.diff @@ -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 + + -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 - #include - #include -+#include - - #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