Cream job ID.
authorJiří Filipovič <fila@ics.muni.cz>
Wed, 10 Mar 2010 17:12:58 +0000 (17:12 +0000)
committerJiří Filipovič <fila@ics.muni.cz>
Wed, 10 Mar 2010 17:12:58 +0000 (17:12 +0000)
org.glite.lb.client/src/StatusAttrNames.pl
org.glite.lb.server/src/jobstat_supp.c
org.glite.lb.server/src/lb_html.c
org.glite.lb.state-machine/src/process_event_cream.c
org.glite.lb.types/events.T
org.glite.lb.types/status.T

index 7acd78a..654507b 100644 (file)
@@ -93,4 +93,5 @@
        ISB_TRANSFER
        OSB_TRANSFER
        CREAM_FAILURE_REASON
+       CREAM_ID
 /;
index 3bf9dab..a5bca19 100644 (file)
@@ -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);
index 8738360..46f7a04 100644 (file)
@@ -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)));
index e65fd76..6938985 100644 (file)
@@ -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)) {
index feef0de..5371865 100644 (file)
 
 @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
index 05fc1a1..9cb5290 100644 (file)
@@ -148,6 +148,7 @@ int cream_state
        _code_  DONE-FAILED
        _code_  ABORTED
 
+string  cream_id
 string cream_owner
 string cream_endpoint
 string cream_jdl