From a8029f0d47a911150dee098a341e9b8fab5782ef Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ji=C5=99=C3=AD=20Filipovi=C4=8D?= Date: Wed, 10 Mar 2010 17:12:58 +0000 Subject: [PATCH] Cream job ID. --- org.glite.lb.client/src/StatusAttrNames.pl | 1 + org.glite.lb.server/src/jobstat_supp.c | 2 ++ org.glite.lb.server/src/lb_html.c | 1 + .../src/process_event_cream.c | 23 ++++++++++++++++++++-- org.glite.lb.types/events.T | 5 +++++ org.glite.lb.types/status.T | 1 + 6 files changed, 31 insertions(+), 2 deletions(-) diff --git a/org.glite.lb.client/src/StatusAttrNames.pl b/org.glite.lb.client/src/StatusAttrNames.pl index 7acd78a..654507b 100644 --- a/org.glite.lb.client/src/StatusAttrNames.pl +++ b/org.glite.lb.client/src/StatusAttrNames.pl @@ -93,4 +93,5 @@ ISB_TRANSFER OSB_TRANSFER CREAM_FAILURE_REASON + CREAM_ID /; diff --git a/org.glite.lb.server/src/jobstat_supp.c b/org.glite.lb.server/src/jobstat_supp.c index 3bf9dab..a5bca19 100644 --- a/org.glite.lb.server/src/jobstat_supp.c +++ b/org.glite.lb.server/src/jobstat_supp.c @@ -537,6 +537,7 @@ static char *enc_JobStat(char *old, edg_wll_JobStat* stat) if (ret) ret = enc_string(ret, stat->condor_reason); if (ret) ret = enc_string(ret, stat->condor_error_desc); if (ret) ret = enc_int(ret, stat->cream_state); + if (ret) ret = enc_string(ret, stat->cream_id); if (ret) ret = enc_string(ret, stat->cream_owner); if (ret) ret = enc_string(ret, stat->cream_endpoint); if (ret) ret = enc_string(ret, stat->cream_jdl); @@ -641,6 +642,7 @@ static edg_wll_JobStat* dec_JobStat(char *in, char **rest) if (tmp_in != NULL) stat->condor_reason = dec_string(tmp_in, &tmp_in); if (tmp_in != NULL) stat->condor_error_desc = dec_string(tmp_in, &tmp_in); if (tmp_in != NULL) stat->cream_state = dec_int(tmp_in, &tmp_in); + if (tmp_in != NULL) stat->cream_id = dec_string(tmp_in, &tmp_in); if (tmp_in != NULL) stat->cream_owner = dec_string(tmp_in, &tmp_in); if (tmp_in != NULL) stat->cream_endpoint = dec_string(tmp_in, &tmp_in); if (tmp_in != NULL) stat->cream_jdl = dec_string(tmp_in, &tmp_in); diff --git a/org.glite.lb.server/src/lb_html.c b/org.glite.lb.server/src/lb_html.c index 8738360..46f7a04 100644 --- a/org.glite.lb.server/src/lb_html.c +++ b/org.glite.lb.server/src/lb_html.c @@ -261,6 +261,7 @@ int edg_wll_CreamJobStatusToHTML(edg_wll_Context ctx UNUSED_VAR, edg_wll_JobStat chid = edg_wlc_JobIdUnparse(stat.jobId); + TR("CREAM ID", "%s", stat.cream_id); TR("Status", "%s", (lbstat = edg_wll_StatToString(stat.state))); free(lbstat); TR("CREAM Status", "%s", (creamstat = edg_wll_CreamStatToString(stat.cream_state))); diff --git a/org.glite.lb.state-machine/src/process_event_cream.c b/org.glite.lb.state-machine/src/process_event_cream.c index e65fd76..6938985 100644 --- a/org.glite.lb.state-machine/src/process_event_cream.c +++ b/org.glite.lb.state-machine/src/process_event_cream.c @@ -73,6 +73,13 @@ int processEvent_Cream(intJobStat *js, edg_wll_Event *e, int ev_seq, int strict, break; case EDG_WLL_EVENT_CREAMPURGE: // no state transition + break; + case EDG_WLL_EVENT_CREAMACCEPTED: + if (USABLE(res)){ + free(js->pub.cream_id); + js->pub.cream_id = strdup(e->CREAMAccepted.local_jobid); + } + break; case EDG_WLL_EVENT_CREAMSTORE: if (USABLE(res)) { switch (e->CREAMStore.command) { @@ -107,14 +114,14 @@ int processEvent_Cream(intJobStat *js, edg_wll_Event *e, int ev_seq, int strict, case EDG_WLL_EVENT_CREAMCALL: if (e->any.source == EDG_WLL_SOURCE_CREAM_EXECUTOR && e->CREAMCall.callee == EDG_WLL_SOURCE_LRMS && - e->CREAMCall.command == EDG_WLL_CREAM_CMD_START && + e->CREAMCall.command == EDG_WLL_CREAMCALL_CMDSTART && e->CREAMCall.result == EDG_WLL_CREAMCALL_OK) { if (USABLE(res)) { // BLAH -> LRMS js->pub.state = EDG_WLL_JOB_SCHEDULED; js->pub.cream_state = EDG_WLL_STAT_IDLE; - if (e->CREAMStore.reason){ + if (e->CREAMCall.reason){ free(js->pub.cream_reason); js->pub.cream_reason = strdup(e->CREAMStore.reason); } @@ -124,6 +131,18 @@ int processEvent_Cream(intJobStat *js, edg_wll_Event *e, int ev_seq, int strict, rep(js->pub.cream_reason, e->CREAMCall.reason); } } + if (e->CREAMCall.command == EDG_WLL_CREAMCALL_CMDCANCEL && + e->CREAMCall.result == EDG_WLL_CREAMCALL_OK) + { + if (USABLE(res)){ + js->pub.cream_cancelling = 1; + } + if (e->CREAMCall.reason) + { + free(js->pub.cream_reason); + js->pub.cream_reason = strdup(e->CREAMCall.reason); + } + } break; case EDG_WLL_EVENT_CREAMCANCEL: if (USABLE(res)) { diff --git a/org.glite.lb.types/events.T b/org.glite.lb.types/events.T index feef0de..5371865 100644 --- a/org.glite.lb.types/events.T +++ b/org.glite.lb.types/events.T @@ -355,6 +355,11 @@ @type CREAMPurge Purge request (by user) +@type CREAMAccepted Accepting job (successful counterpart to Transfer). + string local_jobid New job id as assigned by the receiving component. + _optional_ + + @type CREAMStore int command Command to store _code_ CMDSTART Start registered job diff --git a/org.glite.lb.types/status.T b/org.glite.lb.types/status.T index 05fc1a1..9cb5290 100644 --- a/org.glite.lb.types/status.T +++ b/org.glite.lb.types/status.T @@ -148,6 +148,7 @@ int cream_state _code_ DONE-FAILED _code_ ABORTED +string cream_id string cream_owner string cream_endpoint string cream_jdl -- 1.8.2.3