From 754fa7862b5c1320c76258440fb4204684d6199f Mon Sep 17 00:00:00 2001 From: =?utf8?q?Franti=C5=A1ek=20Dvo=C5=99=C3=A1k?= Date: Tue, 14 Mar 2006 10:31:10 +0000 Subject: [PATCH] LB export script (will be called via wrapper from cron). Configure export/mail dirs for bkserver. Various fixes from some obscure branch. --- org.glite.lb.client/Makefile | 1 + org.glite.lb.client/examples/export.sh | 39 ++++++++++++++++++++++++++++++ org.glite.lb.client/examples/gen_begin | 7 +++++- org.glite.lb.client/src/lb_dump_exporter.c | 4 ++- 4 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 org.glite.lb.client/examples/export.sh diff --git a/org.glite.lb.client/Makefile b/org.glite.lb.client/Makefile index e9aaf59..334bbff 100644 --- a/org.glite.lb.client/Makefile +++ b/org.glite.lb.client/Makefile @@ -298,6 +298,7 @@ install: for p in ${EXAMPLES} lbmon-db ${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 644 ${MAN_GZ} ${PREFIX}/share/man/man1 clean: diff --git a/org.glite.lb.client/examples/export.sh b/org.glite.lb.client/examples/export.sh new file mode 100644 index 0000000..a4a8dc6 --- /dev/null +++ b/org.glite.lb.client/examples/export.sh @@ -0,0 +1,39 @@ +#! /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`/..} + +# 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 + +$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 diff --git a/org.glite.lb.client/examples/gen_begin b/org.glite.lb.client/examples/gen_begin index ae9f981..bcc5083 100755 --- a/org.glite.lb.client/examples/gen_begin +++ b/org.glite.lb.client/examples/gen_begin @@ -8,7 +8,12 @@ if [ `echo $(basename $0) | grep 'glite-lb-' | wc -l` = "1" ]; then PREFIX=glite-lb- fi LOGFD=${LOGFD:-2} -LOGEV=${LOGEV:-`dirname $0`/${PREFIX}logevent}${SUFFIX} +if [ -d `dirname $0`/../bin ]; then + BINDIR=`dirname $0`/../bin +else + BINDIR=`dirname $0` +fi +LOGEV=${LOGEV:-${BINDIR}/${PREFIX}logevent}${SUFFIX} JOB_REG=${JOB_REG:-`dirname $0`/${PREFIX}job_reg}${SUFFIX} EDG_JOBID= LBPROXY= diff --git a/org.glite.lb.client/src/lb_dump_exporter.c b/org.glite.lb.client/src/lb_dump_exporter.c index ce74d36..2eb1850 100644 --- a/org.glite.lb.client/src/lb_dump_exporter.c +++ b/org.glite.lb.client/src/lb_dump_exporter.c @@ -134,6 +134,8 @@ int main(int argc, char **argv) } if ( !ln ) break; + if (*ln == 0) continue; + if ( edg_wll_ParseEvent(ctx, ln, &ev) != 0 ) { cleanup(1); } @@ -158,7 +160,7 @@ int main(int argc, char **argv) cleanup(1); } snprintf(fname, PATH_MAX, "%s/%s.%ld", store_pref, unique, (long) time(NULL)); - if ( (fd = open(fname, O_CREAT|O_EXCL|O_RDWR, 00600)) < 0 ) { + if ( (fd = open(fname, O_CREAT|O_EXCL|O_RDWR, 00640)) < 0 ) { if ( errno == EEXIST ) { sleep(2); continue; } perror(fname); cleanup(1); -- 1.8.2.3