From f78a95e42175cd4ca8611ff74f455cc9ec94540c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Franti=C5=A1ek=20Dvo=C5=99=C3=A1k?= Date: Thu, 22 May 2008 15:08:05 +0000 Subject: [PATCH] Merge from the 31 branch. --- org.glite.lb.client/Makefile | 11 +++++++++++ org.glite.lb.client/examples/purge_test | 4 +++- org.glite.lb.client/project/ChangeLog | 14 ++++++++++++++ org.glite.lb.client/project/version.properties | 2 +- org.glite.lb.client/src/Event.cpp.T | 18 ++++++++++++++---- org.glite.lb.client/src/JobStatus.cpp.T | 15 ++++++++++++--- org.glite.lb.client/src/export.sh | 23 +++++++++++++++-------- org.glite.lb.client/src/notification.c | 24 ++++++++++++++++++++---- 8 files changed, 90 insertions(+), 21 deletions(-) diff --git a/org.glite.lb.client/Makefile b/org.glite.lb.client/Makefile index 522a961..2de8600 100644 --- a/org.glite.lb.client/Makefile +++ b/org.glite.lb.client/Makefile @@ -298,6 +298,16 @@ olddoc: generate doxygen C.dox doxygen CPP.dox +Event.cpp: EventAttrNames.pl + +JobStatus.cpp: StatusAttrNames.pl + +EventAttrNames.pl StatusAttrNames.pl: + rm -f $@ + ln -s ${stagedir}/share/${lbprefix}/at3/$@ $@ + +dist: distsrc distbin + install: mkdir -p ${PREFIX}/bin mkdir -p ${PREFIX}/sbin @@ -346,6 +356,7 @@ clean: rm -rvf *.o *.lo .libs lib* *.c *.cpp *.h *.dox producer_test notify C/ CPP/ rm -rvf ${LIB} ${THRLIB} ${TOOLS} logevent ${PLUSLIB} ${THRPLUSLIB} ${MAN_GZ} ${MAN8_GZ} rm -rvf ${EXAMPLES} ${EXAMPLES_CL} ${EXAMPLES_CL_THR} ${sh_PROGS} + rm -f EventAttrNames.pl StatusAttrNames.pl rm -vf ${globalprefix} ${lbprefix} rm -rvf log.xml project/ rpmbuild/ RPMS/ tgz/ diff --git a/org.glite.lb.client/examples/purge_test b/org.glite.lb.client/examples/purge_test index c9f05c1..0018cdf 100644 --- a/org.glite.lb.client/examples/purge_test +++ b/org.glite.lb.client/examples/purge_test @@ -8,7 +8,7 @@ $inst = "/opt/glite" unless $inst; $sbin = "$inst/sbin"; $bin = "$inst/bin"; $test = "$inst/examples"; -$purge = "$sbin/glite-lb-purge"; +$purge = "$bin/glite-lb-purge"; $status = "$test/glite-lb-job_status"; $log = "$test/glite-lb-job_log"; $prefix = "/tmp/purge_test_$$"; @@ -147,6 +147,7 @@ $dump = ; chomp $dump; $dump =~ s/Server dump: //; close DUMP; die "!! no dump file reported\n" unless $dump; +#print "DEBUG: dump file: '$dump'\n"; @list = glob "${prefix}_old*"; system "cat @list | sort >${prefix}_old_all"; system "cat $dump | sed -e s/^.*DATE/DATE/ | sort >${prefix}_old_dump"; @@ -165,6 +166,7 @@ $dump = ; chomp $dump; $dump =~ s/Server dump: //; close DUMP; die "!! no dump file reported\n" unless $dump; +#print "DEBUG: dump file: '$dump'\n"; @list = glob "${prefix}_new*"; system "cat @list | sort >${prefix}_new_all"; system "cat $dump | sed -e s/^.*DATE/DATE/ | sort >${prefix}_new_dump"; diff --git a/org.glite.lb.client/project/ChangeLog b/org.glite.lb.client/project/ChangeLog index 8691429..b07c67e 100644 --- a/org.glite.lb.client/project/ChangeLog +++ b/org.glite.lb.client/project/ChangeLog @@ -13,3 +13,17 @@ GLITE_LB_DUMP_EXPORTER_OTHER_OPTIONS - pass errors from credential loading to upper layers properly +3.1.2-2 (lb-1.7.4-1) +- rebuild wrt. downgraded security 3.1.57-1 + +3.1.3-1 (lb-1.7.5-1) +- align attr_names[] (used in getAttrName methods) in Event and JobStatus + to definitions in *.h from lb.client-interface + +3.1.4-1 +- do the previous quick fix thoroughly -- don't smash name_with_underscores + and nameWithUppercaseLetters + +3.2.0-1 (lb-1.8.0-1) +- added ui_host to jobstat +- store purge files (to be uploaded to JP) in GLITE_LOCATION_VAR rahter then GLITE_TMP diff --git a/org.glite.lb.client/project/version.properties b/org.glite.lb.client/project/version.properties index c591a16..1cb83fc 100644 --- a/org.glite.lb.client/project/version.properties +++ b/org.glite.lb.client/project/version.properties @@ -1,3 +1,3 @@ # $Header$ -module.version=3.1.2 +module.version=3.2.0 module.age=1 diff --git a/org.glite.lb.client/src/Event.cpp.T b/org.glite.lb.client/src/Event.cpp.T index 03bd29b..1ff517d 100644 --- a/org.glite.lb.client/src/Event.cpp.T +++ b/org.glite.lb.client/src/Event.cpp.T @@ -23,6 +23,9 @@ EWL_BEGIN_NAMESPACE; #define CLASS_PREFIX "glite::lb::Event::" @@@{ + +require 'EventAttrNames.pl'; + sub typeswitch { my $ftype = shift; my $resc = shift; @@ -296,7 +299,7 @@ Event::getValJobId(Attr attr) const static std::string const names[Event::TYPE_MAX] = { - "undefined", + "undefined", @@@{ for (sort { $event->{order}->{$a} <=> $event->{order}->{$b} } $event->getTypes) @@ -317,12 +320,19 @@ Event::name(void) const } -/* FIXME: this will not work with the current frozen assignment of constants in Event.h */ static std::string const attr_names[Event::ATTR_MAX] = { @@@{ - for (sort {$a cmp $b} getAllFields $event) { - gen "\t\"$_\",\n"; + my %s; + + for (getAllFields $event) { + my $id = $_; + $id =~ s/([a-z])([A-Z])/$1_$2/g; + $s{uc($id)} = $_; + $s{uc($_)} = $_; + } + for (@main::EventAttrNames) { + gen "\t\"$s{$_}\",\n"; } @@@} }; diff --git a/org.glite.lb.client/src/JobStatus.cpp.T b/org.glite.lb.client/src/JobStatus.cpp.T index 104cc44..4ba683c 100644 --- a/org.glite.lb.client/src/JobStatus.cpp.T +++ b/org.glite.lb.client/src/JobStatus.cpp.T @@ -16,6 +16,9 @@ EWL_BEGIN_NAMESPACE; #define CLASS_PREFIX "glite::lb::JobStatus::" @@@{ + +require 'StatusAttrNames.pl'; + sub typeswitch { my ($ftype,$ctype,$resc) = @_; local $_; @@ -408,10 +411,16 @@ JobStatus::getValJobStatusList(Attr attr) const static std::string const attr_names[JobStatus::ATTR_MAX] = { @@@{ - require '../src/StatusAttrNames.pl'; + my %s; + + for (getAllFields $status) { + my $id = $_; + $id =~ s/([a-z])([A-Z])/$1_$2/g; + $s{uc($id)} = $_; + $s{uc($_)} = $_; + } for (@main::StatusAttrNames) { - my $fn = lc $_; - gen "\t\"$fn\",\n"; + gen "\t\"$s{$_}\",\n"; } @@@} }; diff --git a/org.glite.lb.client/src/export.sh b/org.glite.lb.client/src/export.sh index 58503df..43221d2 100644 --- a/org.glite.lb.client/src/export.sh +++ b/org.glite.lb.client/src/export.sh @@ -30,21 +30,21 @@ fi # dump directory of bkserver -GLITE_LB_EXPORT_PURGEDIR=${GLITE_LB_EXPORT_PURGEDIR:-/tmp/purge} -GLITE_LB_EXPORT_DUMPDIR=${GLITE_LB_EXPORT_DUMPDIR:-/tmp/dump} +GLITE_LB_EXPORT_PURGEDIR=${GLITE_LB_EXPORT_PURGEDIR:-$GLITE_LOCATION_VAR/purge} +GLITE_LB_EXPORT_DUMPDIR=${GLITE_LB_EXPORT_DUMPDIR:-$GLITE_LOCATION_VAR/dump} GLITE_LB_EXPORT_PURGEDIR_KEEP=${GLITE_LB_EXPORT_PURGEDIR_KEEP:-""} 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} +GLITE_LB_EXPORT_JPDUMP_MAILDIR=${GLITE_LB_EXPORT_JPDUMP_MAILDIR:-$GLITE_LOCATION_VAR/jpdump} # directory with exported data (file per job) -GLITE_LB_EXPORT_JOBSDIR=${GLITE_LB_EXPORT_JOBSDIR:-/tmp/lbexport} +GLITE_LB_EXPORT_JOBSDIR=${GLITE_LB_EXPORT_JOBSDIR:-$GLITE_LOCATION_VAR/lbexport} # purge args (timeouts) GLITE_LB_EXPORT_PURGE_ARGS=${GLITE_LB_EXPORT_PURGE_ARGS:---cleared 2d --aborted 2w --cancelled 2w --other 60d} # 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} GLITE_LB_PURGE_ENABLED=${GLITE_LB_PURGE_ENABLED:-true} -GLITE_LB_EXPORT_ENABLED=${GLITE_LB_EXPORT_ENABLED:-true} +GLITE_LB_EXPORT_ENABLED=${GLITE_LB_EXPORT_ENABLED:-false} [ -d $GLITE_LB_EXPORT_JPDUMP_MAILDIR ] || mkdir -p $GLITE_LB_EXPORT_JPDUMP_MAILDIR [ -d $GLITE_LB_EXPORT_DUMPDIR ] || mkdir -p $GLITE_LB_EXPORT_DUMPDIR @@ -53,15 +53,21 @@ GLITE_LB_EXPORT_ENABLED=${GLITE_LB_EXPORT_ENABLED:-true} [ -d $GLITE_LB_EXPORT_PURGEDIR_KEEP ] || mkdir -p $GLITE_LB_EXPORT_PURGEDIR_KEEP [ -d $GLITE_LB_EXPORT_JOBSDIR ] || mkdir -p $GLITE_LB_EXPORT_JOBSDIR +if [ x"$GLITE_LB_EXPORT_ENABLED" = x"true" -o -d "$GLITE_LB_EXPORT_PURGEDIR_KEEP" ] +then + GLITE_LB_EXPORT_PURGE_ARGS="$GLITE_LB_EXPORT_PURGE_ARGS -s" +fi + if [ x"$GLITE_LB_PURGE_ENABLED" = x"true" ]; then - X509_USER_CERT="$X509_USER_CERT" X509_USER_KEY="$X509_USER_KEY" $PREFIX/bin/glite-lb-purge $GLITE_LB_EXPORT_PURGE_ARGS -l -m $GLITE_LB_EXPORT_BKSERVER -s $GLITE_LB_PURGE_OTHER_OPTIONS + X509_USER_CERT="$X509_USER_CERT" X509_USER_KEY="$X509_USER_KEY" $PREFIX/bin/glite-lb-purge $GLITE_LB_EXPORT_PURGE_ARGS -l -m $GLITE_LB_EXPORT_BKSERVER $GLITE_LB_PURGE_OTHER_OPTIONS fi -if [ x"$GLITE_LB_EXPORT_ENABLED" = x"true" ]; then list=`ls $GLITE_LB_EXPORT_PURGEDIR/* 2>/dev/null` for file in $list; do if [ -s $file ]; then - $PREFIX/bin/glite-lb-dump_exporter -d $file -s $GLITE_LB_EXPORT_JOBSDIR -m $GLITE_LB_EXPORT_JPDUMP_MAILDIR $GLITE_LB_DUMP_EXPORTER_OTHER_OPTIONS + if [ x"$GLITE_LB_EXPORT_ENABLED" = x"true" ]; then + $PREFIX/bin/glite-lb-dump_exporter -d $file -s $GLITE_LB_EXPORT_JOBSDIR -m $GLITE_LB_EXPORT_JPDUMP_MAILDIR $GLITE_LB_DUMP_EXPORTER_OTHER_OPTIONS + fi if [ -n "$GLITE_LB_EXPORT_PURGEDIR_KEEP" ]; then mv $file $GLITE_LB_EXPORT_PURGEDIR_KEEP else @@ -72,6 +78,7 @@ if [ x"$GLITE_LB_EXPORT_ENABLED" = x"true" ]; then fi done +if [ x"$GLITE_LB_EXPORT_ENABLED" = x"true" ]; then if [ -n "$GLITE_LB_EXPORT_DUMPDIR_KEEP" ]; then ls $GLITE_LB_EXPORT_DUMPDIR | xargs -i'{}' cp $GLITE_LB_EXPORT_DUMPDIR/'{}' $GLITE_LB_EXPORT_DUMPDIR_KEEP; else diff --git a/org.glite.lb.client/src/notification.c b/org.glite.lb.client/src/notification.c index 1017e9e..2c6a489 100644 --- a/org.glite.lb.client/src/notification.c +++ b/org.glite.lb.client/src/notification.c @@ -799,11 +799,27 @@ select: ret = edg_wll_gss_accept(ctx->connPoolNotif[0].gsiCred, recv_sock, &tv, &ctx->connPoolNotif[0].gss,&gss_code); - if (ret) { - edg_wll_SetError(ctx, errno, "GSS authentication failed."); - goto err; + + switch (ret) { + case EDG_WLL_GSS_OK: + break; + case EDG_WLL_GSS_ERROR_ERRNO: + edg_wll_SetError(ctx,errno,"failed to receive notification"); + goto err; + case EDG_WLL_GSS_ERROR_GSS: + edg_wll_SetErrorGss(ctx, "failed to authenticate sender", &gss_code); + goto err; + case EDG_WLL_GSS_ERROR_EOF: + edg_wll_SetError(ctx,ECONNREFUSED,"sender closed the connection"); + goto err; + case EDG_WLL_GSS_ERROR_TIMEOUT: + edg_wll_SetError(ctx,ETIMEDOUT,"accepting notification"); + goto err; + default: + edg_wll_SetError(ctx, ENOTCONN, "failed to accept notification"); + goto err; } - + /* check time */ gettimeofday(&check_time,0); if (decrement_timeout(&tv, start_time, check_time)) { -- 1.8.2.3