From 219cdca886928ebe3d7f33160fb6a8530706b139 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Franti=C5=A1ek=20Dvo=C5=99=C3=A1k?= Date: Wed, 7 Apr 2010 19:15:38 +0000 Subject: [PATCH] Bugfixes - VO haven't not stored with RB, typo in test script. --- org.glite.lb.harvester/examples/test.sh | 2 +- org.glite.lb.harvester/src/harvester.c | 14 +++++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/org.glite.lb.harvester/examples/test.sh b/org.glite.lb.harvester/examples/test.sh index 0916545..b9130f1 100755 --- a/org.glite.lb.harvester/examples/test.sh +++ b/org.glite.lb.harvester/examples/test.sh @@ -122,7 +122,7 @@ init() { logev="$GLITE_LOCATION/bin/glite-lb-logevent -x -S `pwd`/LB/proxy.sockstore.sock -U localhost" purge="$GLITE_LOCATION/bin/glite-lb-purge" [ -x "$purge" ] || purge="$GLITE_LOCATION/sbin/glite-lb-purge" - for dir in "$GLITE_LOCATION/examlpes" "`pwd`/../build" "`pwd`"; do + for dir in "$GLITE_LOCATION/examples" "`pwd`/../build" "`pwd`"; do if [ -x "$dir/glite-lb-harvester-dbg" ]; then rtm="$dir/glite-lb-harvester-dbg" fi diff --git a/org.glite.lb.harvester/src/harvester.c b/org.glite.lb.harvester/src/harvester.c index 4b8537f..da0ec6b 100644 --- a/org.glite.lb.harvester/src/harvester.c +++ b/org.glite.lb.harvester/src/harvester.c @@ -1011,7 +1011,7 @@ typedef struct { // static void db_store_change_perform_sql(thread_t *t, edg_wll_JobStatCode state, db_job_t *rec) { char *state_entered_str = NULL, *rtm_timestamp_str = NULL, *regtime_str = NULL; - char *sql = NULL, *sql2 = NULL, *sql_part = NULL; + char *sql = NULL, *sql2 = NULL, *sql_part = NULL, *tmp = NULL; const char *active = "true", *state_changed = "true"; if (state == EDG_WLL_JOB_PURGED) { @@ -1040,10 +1040,14 @@ static void db_store_change_perform_sql(thread_t *t, edg_wll_JobStatCode state, glite_lbu_TimestampToDB(t->dbctx, rec->rtm_timestamp, &rtm_timestamp_str); glite_lbu_TimeToDB(t->dbctx, rec->registered, ®time_str); - if (rec->vo) trio_asprintf(&sql_part, ", vo='%|Ss' ", rec->vo); - if (rec->rb) trio_asprintf(&sql_part, ", rb='%|Ss' ", rec->rb); - if (!sql_part) sql_part = strdup(" "); - trio_asprintf(&sql, "UPDATE " RTM_DB_TABLE_JOBS " SET ce='%|Ss', queue='%|Ss', ui='%|Ss', state='%|Ss', state_entered=%s, rtm_timestamp=%s, active=%s, state_changed=%s, registered=%s%sWHERE jobid='%|Ss' AND lb='%|Ss'", rec->ce, rec->queue, rec->ui, rec->state, state_entered_str, rtm_timestamp_str, active, state_changed, regtime_str, sql_part, rec->unique_str, rec->lb); + if (rec->vo) trio_asprintf(&sql_part, ", vo='%|Ss'", rec->vo); + if (rec->rb) { + trio_asprintf(&tmp, "%s, rb='%|Ss'", sql_part ? : "", rec->rb); + free(sql_part); + sql_part = tmp; + tmp = NULL; + } + trio_asprintf(&sql, "UPDATE " RTM_DB_TABLE_JOBS " SET ce='%|Ss', queue='%|Ss', ui='%|Ss', state='%|Ss', state_entered=%s, rtm_timestamp=%s, active=%s, state_changed=%s, registered=%s%s WHERE jobid='%|Ss' AND lb='%|Ss'", rec->ce, rec->queue, rec->ui, rec->state, state_entered_str, rtm_timestamp_str, active, state_changed, regtime_str, sql_part ? : "", rec->unique_str, rec->lb); lprintf(t, INS, "update: %s", sql); switch (glite_lbu_ExecSQL(t->dbctx, sql, NULL)) { case -1: -- 1.8.2.3