From 73d3266a87436570cfe4a0bdefc88b00e27c2890 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20Posp=C3=AD=C5=A1il?= Date: Thu, 15 Jun 2006 10:31:12 +0000 Subject: [PATCH] merge from glite-lb-server_branch_1_4_0_RC31 --- org.glite.lb.server/Makefile | 2 +- org.glite.lb.server/src/lb_plugin.c | 18 ++++++++++++------ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/org.glite.lb.server/Makefile b/org.glite.lb.server/Makefile index 385e9e6..b2812d8 100644 --- a/org.glite.lb.server/Makefile +++ b/org.glite.lb.server/Makefile @@ -160,7 +160,7 @@ EXT_LIBS:= \ COMMON_LIBS:= -L${stagedir}/lib -lglite_lb_common_${nothrflavour} -lglite_security_gss_${nothrflavour} PLUGIN_LIBS:= -L${stagedir}/lib -lglite_lb_common_${nothrflavour}\ - ${classadslib} ${expatlib} -lexpat\ + ${classadslib} -lstdc++ ${expatlib} -lexpat\ PLUGIN_LOBJS:= lb_plugin.lo jobstat_supp.lo process_event.lo lbs_db_supp.lo diff --git a/org.glite.lb.server/src/lb_plugin.c b/org.glite.lb.server/src/lb_plugin.c index 1dbbdfd..607cb47 100644 --- a/org.glite.lb.server/src/lb_plugin.c +++ b/org.glite.lb.server/src/lb_plugin.c @@ -204,7 +204,7 @@ static int lb_query(void *fpctx,void *handle,const char *attr,glite_jp_attrval_t glite_jp_context_t ctx = (glite_jp_context_t) fpctx; glite_jp_error_t err; glite_jp_attrval_t *av = NULL; - int i, n_tags; + int i, j, n_tags; const char *tag; glite_jp_clear_error(ctx); @@ -430,11 +430,17 @@ static int lb_query(void *fpctx,void *handle,const char *attr,glite_jp_attrval_t } else if (strcmp(attr, GLITE_JP_LB_lastStatusHistory) == 0 || strcmp(attr, GLITE_JP_LB_fullStatusHistory) == 0) { /* complex types */ - *attrval = NULL; - err.code = ENOSYS; -// err.desc = "Not implemented yet."; - trio_asprintf(&err.desc,"Attribute '%s' not implemented yet.",attr); - return glite_jp_stack_error(ctx,&err); + av = calloc(1 + EDG_WLL_NUMBER_OF_STATCODES, sizeof(glite_jp_attrval_t)); + av[0].name = strdup(attr); + av[0].value = check_strdup(h->status.reason); + av[0].timestamp = h->status.stateEnterTime.tv_sec; + av[0].size = -1; + for (i=1; istatus.state) av[i].value = check_strdup(h->status.reason); + av[i].timestamp = h->status.stateEnterTimes[i]; + av[i].size = -1; + } } else if (strncmp(attr, GLITE_JP_LBTAG_NS, sizeof(GLITE_JP_LBTAG_NS)-1) == 0) { tag = strrchr(attr, ':'); if (h->events && tag) { -- 1.8.2.3