From a55357a5d41af1edb3486c85718bd3c6c2a7cf3e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Milo=C5=A1=20Mula=C4=8D?= Date: Mon, 30 Oct 2006 15:53:08 +0000 Subject: [PATCH] send collectionState event only if jobtype is collection --- org.glite.lb.server/src/jobstat.c | 54 +++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/org.glite.lb.server/src/jobstat.c b/org.glite.lb.server/src/jobstat.c index 42b0747..7858e29 100644 --- a/org.glite.lb.server/src/jobstat.c +++ b/org.glite.lb.server/src/jobstat.c @@ -737,33 +737,33 @@ static edg_wll_ErrorCode update_parent_status(edg_wll_Context ctx, edg_wll_JobSt if (load_parent_intJobStat(ctx, cis, &pis)) goto err; pis->pub.children_hist[cis->pub.state+1]++; - /* not RUNNING yet? */ - if (pis->pub.state < EDG_WLL_JOB_RUNNING) { - //XXX cook artificial event for parent job - // and call db_store (see handle_request() - // for usage!! ) - edg_wll_Event *event = - edg_wll_InitEvent(EDG_WLL_EVENT_COLLECTIONSTATE); - - // XXX: fill in event->any part of event... - event->any.user = strdup(pis->pub.owner); // XXX: use this identity? - event->any.seqcode = strdup(ce->any.seqcode); // XXX: nonsense, just something.. - edg_wlc_JobIdDup(pis->pub.jobId, &(event->any.jobId)); - gettimeofday(&event->any.timestamp,0); - if (ctx->p_host) event->any.host = strdup(ctx->p_host); - event->any.level = ctx->p_level; - event->any.source = EDG_WLL_SOURCE_USER_INTERFACE; // XXX: is it meaningfull? - - - event->collectionState.state = EDG_WLL_JOB_RUNNING; - event->collectionState.histogram = hist_to_string(pis->pub.children_hist); - edg_wlc_JobIdDup(cis->pub.jobId, &(event->collectionState.child)); - event->collectionState.child_event = edg_wll_EventToString(ce->any.type); - - trans_db_store(ctx, NULL, event); - - edg_wll_FreeEvent(event); - free(event); + if (pis->pub.jobtype == EDG_WLL_STAT_COLLECTION) { + /* not RUNNING yet? */ + if (pis->pub.state < EDG_WLL_JOB_RUNNING) { + // XXX: move this section to separate function to be reusable + edg_wll_Event *event = + edg_wll_InitEvent(EDG_WLL_EVENT_COLLECTIONSTATE); + + // XXX: fill in event->any part of event... + event->any.user = strdup(pis->pub.owner); // XXX: use this identity? + event->any.seqcode = strdup(ce->any.seqcode); // XXX: nonsense, just something.. + edg_wlc_JobIdDup(pis->pub.jobId, &(event->any.jobId)); + gettimeofday(&event->any.timestamp,0); + if (ctx->p_host) event->any.host = strdup(ctx->p_host); + event->any.level = ctx->p_level; + event->any.source = EDG_WLL_SOURCE_USER_INTERFACE; // XXX: is it meaningfull? + + + event->collectionState.state = EDG_WLL_JOB_RUNNING; + event->collectionState.histogram = hist_to_string(pis->pub.children_hist); + edg_wlc_JobIdDup(cis->pub.jobId, &(event->collectionState.child)); + event->collectionState.child_event = edg_wll_EventToString(ce->any.type); + + trans_db_store(ctx, NULL, event); + + edg_wll_FreeEvent(event); + free(event); + } } break; case EDG_WLL_JOB_DONE: -- 1.8.2.3