From 12ff1c9d10540a7d78ab2dffd3e3f7e19fa5fbfa Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ale=C5=A1=20K=C5=99enek?= Date: Thu, 10 Jan 2008 14:32:17 +0000 Subject: [PATCH] Add finalDoneStatus to lb plugin --- org.glite.lb.server/interface/job-attrs.xsd | 1 + org.glite.lb.server/src/lb_plugin.c | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/org.glite.lb.server/interface/job-attrs.xsd b/org.glite.lb.server/interface/job-attrs.xsd index a2a68bb..5a5ee76 100644 --- a/org.glite.lb.server/interface/job-attrs.xsd +++ b/org.glite.lb.server/interface/job-attrs.xsd @@ -99,6 +99,7 @@ + diff --git a/org.glite.lb.server/src/lb_plugin.c b/org.glite.lb.server/src/lb_plugin.c index de08f03..05cfd9c 100644 --- a/org.glite.lb.server/src/lb_plugin.c +++ b/org.glite.lb.server/src/lb_plugin.c @@ -294,7 +294,7 @@ static int lb_close(void *fpctx,void *handle) { } static int get_classad_attr(const char* attr, glite_jp_context_t ctx, lb_handle *h, glite_jp_attrval_t **av){ - printf("attr = %s\n", attr); +/* printf("attr = %s\n", attr); */ glite_jp_error_t err; glite_jp_clear_error(ctx); memset(&err,0,sizeof err); @@ -496,6 +496,23 @@ static int lb_query(void *fpctx,void *handle, const char *attr,glite_jp_attrval_ av[0].timestamp = h->status.lastUpdateTime.tv_sec; } av[0].size = -1; + } else if (strcmp(attr, GLITE_JP_LB_finalDoneStatus) == 0) { + + /* XXX: should be a string */ + if (h->finalStatus && h->finalStatus->state == EDG_WLL_JOB_DONE) { + av = calloc(2, sizeof(glite_jp_attrval_t)); + av[0].name = strdup(attr); + + asprintf(&av[0].value,"%d",h->status.done_code); + av[0].timestamp = h->finalStatus->timestamp.tv_sec; + } + else { + *attrval = NULL; + err.code = EINVAL; + err.desc = strdup("Final status is not Done"); + return glite_jp_stack_error(ctx,&err); + } + } else if (strcmp(attr, GLITE_JP_LB_finalStatusDate) == 0) { struct tm *t = NULL; if ( (h->finalStatus) && -- 1.8.2.3