new source LBS (LBServer) added to sequence code string
authorMiloš Mulač <mulac@civ.zcu.cz>
Thu, 30 Nov 2006 09:46:31 +0000 (09:46 +0000)
committerMiloš Mulač <mulac@civ.zcu.cz>
Thu, 30 Nov 2006 09:46:31 +0000 (09:46 +0000)
- slightly tested
- no backwards compatibility yet

13 files changed:
org.glite.lb.client-interface/interface/context.h
org.glite.lb.client/examples/gen_begin
org.glite.lb.common/interface/context-int.h
org.glite.lb.common/src/context.c
org.glite.lb.server/src/jobstat.c
org.glite.lb.server/src/jobstat_supp.c
org.glite.lb.server/src/process_event.c
org.glite.lb.server/src/ws_typemap.h
org.glite.lb.server/src/ws_typeref.c.T
org.glite.lb.server/test/oneJob.qry
org.glite.lb.utils/Makefile
org.glite.lb.ws-interface/src/LBTypes.xml.T
org.glite.lb/project/events.T

index 9c78a55..34d2d5a 100644 (file)
@@ -77,6 +77,7 @@ typedef enum _edg_wll_Source {
        EDG_WLL_SOURCE_LOG_MONITOR,
        EDG_WLL_SOURCE_LRMS,
        EDG_WLL_SOURCE_APPLICATION,
+       EDG_WLL_SOURCE_LB_SERVER,
        EDG_WLL_SOURCE__LAST            /* marker, for internal use only */
 } edg_wll_Source;
 
index bcc5083..4a0d935 100755 (executable)
@@ -51,7 +51,7 @@ then
        test -z "$EDG_JOBID" && exit 4
        echo EDG_JOBID=$EDG_JOBID
 else
-       test -z "$EDG_WL_SEQUENCE" && EDG_WL_SEQUENCE="UI=000003:NS=0000000000:WM=000000:BH=0000000000:JSS=000000:LM=000000:LRMS=000000:APP=000000"
+       test -z "$EDG_WL_SEQUENCE" && EDG_WL_SEQUENCE="UI=000003:NS=0000000000:WM=000000:BH=0000000000:JSS=000000:LM=000000:LRMS=000000:APP=000000:LBS=000000"
 fi
 
 send_log_ev()
index 6935154..1c2fa43 100644 (file)
@@ -17,7 +17,7 @@ typedef struct _edg_wll_SeqCode {
        unsigned int    c[EDG_WLL_SOURCE__LAST];
 } edg_wll_SeqCode;
 
-#define EDG_WLL_SEQ_NULL "UI=000000:NS=0000000000:WM=000000:BH=0000000000:JSS=000000:LM=000000:LRMS=000000:APP=000000"
+#define EDG_WLL_SEQ_NULL "UI=000000:NS=0000000000:WM=000000:BH=0000000000:JSS=000000:LM=000000:LRMS=000000:APP=000000:LBS=000000"
 
 
 /* non-gsi one-element analogy of connPool for L&B Proxy server */
index 3e0ea8a..29a8f78 100644 (file)
@@ -261,6 +261,7 @@ static const char* const srcNames[] = {
        "LogMonitor",
        "LRMS",
        "Application",
+       "LBServer",
 };
 
 edg_wll_Source edg_wll_StringToSource(const char *name)
@@ -312,7 +313,7 @@ char *edg_wll_GetSequenceCode(const edg_wll_Context ctx)
 
        c = &ctx->p_seqcode.c[0];
        asprintf(&ret, "UI=%06d:NS=%010d:WM=%06d:BH=%010d:JSS=%06d"
-                               ":LM=%06d:LRMS=%06d:APP=%06d",
+                               ":LM=%06d:LRMS=%06d:APP=%06d:LBS=%06d",
                        c[EDG_WLL_SOURCE_USER_INTERFACE],
                        c[EDG_WLL_SOURCE_NETWORK_SERVER],
                        c[EDG_WLL_SOURCE_WORKLOAD_MANAGER],
@@ -320,7 +321,8 @@ char *edg_wll_GetSequenceCode(const edg_wll_Context ctx)
                        c[EDG_WLL_SOURCE_JOB_SUBMISSION],
                        c[EDG_WLL_SOURCE_LOG_MONITOR],
                        c[EDG_WLL_SOURCE_LRMS],
-                       c[EDG_WLL_SOURCE_APPLICATION]);
+                       c[EDG_WLL_SOURCE_APPLICATION],
+                       c[EDG_WLL_SOURCE_LB_SERVER]);
        return ret;
 }
 
@@ -345,7 +347,7 @@ int edg_wll_SetSequenceCode(edg_wll_Context ctx,
        }
 
        c = &ctx->p_seqcode.c[0];
-       res =  sscanf(seqcode_str, "UI=%d:NS=%d:WM=%d:BH=%d:JSS=%d:LM=%d:LRMS=%d:APP=%d",
+       res =  sscanf(seqcode_str, "UI=%d:NS=%d:WM=%d:BH=%d:JSS=%d:LM=%d:LRMS=%d:APP=%d:LBS=%d",
                        &c[EDG_WLL_SOURCE_USER_INTERFACE],
                        &c[EDG_WLL_SOURCE_NETWORK_SERVER],
                        &c[EDG_WLL_SOURCE_WORKLOAD_MANAGER],
@@ -353,9 +355,10 @@ int edg_wll_SetSequenceCode(edg_wll_Context ctx,
                        &c[EDG_WLL_SOURCE_JOB_SUBMISSION],
                        &c[EDG_WLL_SOURCE_LOG_MONITOR],
                        &c[EDG_WLL_SOURCE_LRMS],
-                       &c[EDG_WLL_SOURCE_APPLICATION]);
+                       &c[EDG_WLL_SOURCE_APPLICATION],
+                       &c[EDG_WLL_SOURCE_LB_SERVER]);
 
-       assert(EDG_WLL_SOURCE__LAST == 9);
+       assert(EDG_WLL_SOURCE__LAST == 10);
        if (res != EDG_WLL_SOURCE__LAST-1)
                return edg_wll_SetError(ctx, EINVAL, "edg_wll_SetSequenceCode(): syntax error in sequence code");
 
index ece24da..4a158ad 100644 (file)
@@ -718,12 +718,16 @@ static int log_collectionState_event(edg_wll_Context ctx, edg_wll_JobStatCode st
                edg_wll_InitEvent(EDG_WLL_EVENT_COLLECTIONSTATE);
 
        event->any.user = strdup(ctx->serverIdentity);  
-       event->any.seqcode = strdup(ce->any.seqcode);   // XXX: nonsense, just something..
+       if (!edg_wll_SetSequenceCode(ctx,pis->last_seqcode,EDG_WLL_SEQ_NORMAL)) {
+               ctx->p_source = EDG_WLL_SOURCE_LB_SERVER;
+                edg_wll_IncSequenceCode(ctx);
+        }
+       event->any.seqcode = edg_wll_GetSequenceCode(ctx);
        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->any.source = EDG_WLL_SOURCE_LB_SERVER; 
                
                                        
        event->collectionState.state = state;
index 504284f..8ac4259 100644 (file)
@@ -714,7 +714,7 @@ int component_seqcode(const char *a, edg_wll_Source index)
        unsigned int    c[EDG_WLL_SOURCE__LAST];
        int             res;
 
-       res =  sscanf(a, "UI=%d:NS=%d:WM=%d:BH=%d:JSS=%d:LM=%d:LRMS=%d:APP=%d",
+       res =  sscanf(a, "UI=%d:NS=%d:WM=%d:BH=%d:JSS=%d:LM=%d:LRMS=%d:APP=%d:LBS=%d",
                        &c[EDG_WLL_SOURCE_USER_INTERFACE],
                        &c[EDG_WLL_SOURCE_NETWORK_SERVER],
                        &c[EDG_WLL_SOURCE_WORKLOAD_MANAGER],
@@ -722,7 +722,8 @@ int component_seqcode(const char *a, edg_wll_Source index)
                        &c[EDG_WLL_SOURCE_JOB_SUBMISSION],
                        &c[EDG_WLL_SOURCE_LOG_MONITOR],
                        &c[EDG_WLL_SOURCE_LRMS],
-                       &c[EDG_WLL_SOURCE_APPLICATION]);
+                       &c[EDG_WLL_SOURCE_APPLICATION],
+                       &c[EDG_WLL_SOURCE_LB_SERVER]);
        if (res != EDG_WLL_SOURCE__LAST-1) {
                syslog(LOG_ERR, "unparsable sequence code %s\n", a);
                fprintf(stderr, "unparsable sequence code %s\n", a);
@@ -738,7 +739,7 @@ char * set_component_seqcode(char *s,edg_wll_Source index,int val)
        int             res;
        char            *ret;
 
-       res =  sscanf(s, "UI=%d:NS=%d:WM=%d:BH=%d:JSS=%d:LM=%d:LRMS=%d:APP=%d",
+       res =  sscanf(s, "UI=%d:NS=%d:WM=%d:BH=%d:JSS=%d:LM=%d:LRMS=%d:APP=%d:LBS=%d",
                        &c[EDG_WLL_SOURCE_USER_INTERFACE],
                        &c[EDG_WLL_SOURCE_NETWORK_SERVER],
                        &c[EDG_WLL_SOURCE_WORKLOAD_MANAGER],
@@ -746,7 +747,8 @@ char * set_component_seqcode(char *s,edg_wll_Source index,int val)
                        &c[EDG_WLL_SOURCE_JOB_SUBMISSION],
                        &c[EDG_WLL_SOURCE_LOG_MONITOR],
                        &c[EDG_WLL_SOURCE_LRMS],
-                       &c[EDG_WLL_SOURCE_APPLICATION]);
+                       &c[EDG_WLL_SOURCE_APPLICATION],
+                       &c[EDG_WLL_SOURCE_LB_SERVER]);
        if (res != EDG_WLL_SOURCE__LAST-1) {
                syslog(LOG_ERR, "unparsable sequence code %s\n", s);
                fprintf(stderr, "unparsable sequence code %s\n", s);
@@ -755,7 +757,7 @@ char * set_component_seqcode(char *s,edg_wll_Source index,int val)
 
        c[index] = val;
        trio_asprintf(&ret,"UI=%06d:NS=%010d:WM=%06d:BH=%010d:JSS=%06d"
-                                ":LM=%06d:LRMS=%06d:APP=%06d",
+                                ":LM=%06d:LRMS=%06d:APP=%06d:LBS=%06d",
                         c[EDG_WLL_SOURCE_USER_INTERFACE],
                         c[EDG_WLL_SOURCE_NETWORK_SERVER],
                         c[EDG_WLL_SOURCE_WORKLOAD_MANAGER],
@@ -763,7 +765,8 @@ char * set_component_seqcode(char *s,edg_wll_Source index,int val)
                         c[EDG_WLL_SOURCE_JOB_SUBMISSION],
                         c[EDG_WLL_SOURCE_LOG_MONITOR],
                         c[EDG_WLL_SOURCE_LRMS],
-                        c[EDG_WLL_SOURCE_APPLICATION]);
+                        c[EDG_WLL_SOURCE_APPLICATION],
+                        c[EDG_WLL_SOURCE_LB_SERVER]);
        return ret;
 }
 
@@ -792,9 +795,9 @@ int edg_wll_compare_seq(const char *a, const char *b)
        unsigned int    d[EDG_WLL_SOURCE__LAST];
        int             res, i;
 
-       assert(EDG_WLL_SOURCE__LAST == 9);
+       assert(EDG_WLL_SOURCE__LAST == 10);
 
-       res =  sscanf(a, "UI=%d:NS=%d:WM=%d:BH=%d:JSS=%d:LM=%d:LRMS=%d:APP=%d",
+       res =  sscanf(a, "UI=%d:NS=%d:WM=%d:BH=%d:JSS=%d:LM=%d:LRMS=%d:APP=%d:LBS=%d",
                        &c[EDG_WLL_SOURCE_USER_INTERFACE],
                        &c[EDG_WLL_SOURCE_NETWORK_SERVER],
                        &c[EDG_WLL_SOURCE_WORKLOAD_MANAGER],
@@ -802,14 +805,15 @@ int edg_wll_compare_seq(const char *a, const char *b)
                        &c[EDG_WLL_SOURCE_JOB_SUBMISSION],
                        &c[EDG_WLL_SOURCE_LOG_MONITOR],
                        &c[EDG_WLL_SOURCE_LRMS],
-                       &c[EDG_WLL_SOURCE_APPLICATION]);
+                       &c[EDG_WLL_SOURCE_APPLICATION],
+                       &c[EDG_WLL_SOURCE_LB_SERVER]);
        if (res != EDG_WLL_SOURCE__LAST-1) {
                syslog(LOG_ERR, "unparsable sequence code %s\n", a);
                fprintf(stderr, "unparsable sequence code %s\n", a);
                return -1;
        }
 
-       res =  sscanf(b, "UI=%d:NS=%d:WM=%d:BH=%d:JSS=%d:LM=%d:LRMS=%d:APP=%d",
+       res =  sscanf(b, "UI=%d:NS=%d:WM=%d:BH=%d:JSS=%d:LM=%d:LRMS=%d:APP=%d:LBS=%d",
                        &d[EDG_WLL_SOURCE_USER_INTERFACE],
                        &d[EDG_WLL_SOURCE_NETWORK_SERVER],
                        &d[EDG_WLL_SOURCE_WORKLOAD_MANAGER],
@@ -817,7 +821,8 @@ int edg_wll_compare_seq(const char *a, const char *b)
                        &d[EDG_WLL_SOURCE_JOB_SUBMISSION],
                        &d[EDG_WLL_SOURCE_LOG_MONITOR],
                        &d[EDG_WLL_SOURCE_LRMS],
-                       &d[EDG_WLL_SOURCE_APPLICATION]);
+                       &d[EDG_WLL_SOURCE_APPLICATION],
+                       &d[EDG_WLL_SOURCE_LB_SERVER]);
        if (res != EDG_WLL_SOURCE__LAST-1) {
                syslog(LOG_ERR, "unparsable sequence code %s\n", b);
                fprintf(stderr, "unparsable sequence code %s\n", b);
index ab94365..4aa33ac 100644 (file)
@@ -812,12 +812,11 @@ int processEvent(intJobStat *js, edg_wll_Event *e, int ev_seq, int strict, char
                        break;
                case EDG_WLL_EVENT_COLLECTIONSTATE:
                        new_state = e->collectionState.state;
-//XXX: will be usefull with some meaningfull seq. code from COLLECTIONSTATE event
-//                     if (USABLE(res, strict)) {
+                       if (USABLE(res, strict)) {
                                 js->pub.state = new_state;
                                if (new_state == EDG_WLL_JOB_DONE)
                                        js->pub.done_code = e->collectionState.done_code;
-//                     }
+                       }
                        break;
                default:
                        goto bad_event;
index c539e58..9c7d1cc 100644 (file)
@@ -55,5 +55,6 @@
 #define LogMonitor     lbt__eventSource__LogMonitor
 #define LRMS           lbt__eventSource__LRMS
 #define Application    lbt__eventSource__Application
+#define LBServer       lbt__eventSource__LBServer
 
 #endif
index 5853f2a..9106493 100644 (file)
@@ -736,7 +736,7 @@ int edg_wll_JobsQueryResToSoap(
 
 static void edg_wll_SoapToSource(enum lbt__eventSource in, edg_wll_Source *out)
 {
-       assert(EDG_WLL_SOURCE_APPLICATION + 1 == EDG_WLL_SOURCE__LAST);
+       assert(EDG_WLL_SOURCE_LB_SERVER + 1 == EDG_WLL_SOURCE__LAST);
 
        switch ( in ) {
         case UserInterface: *out = EDG_WLL_SOURCE_USER_INTERFACE; break;
@@ -747,6 +747,7 @@ static void edg_wll_SoapToSource(enum lbt__eventSource in, edg_wll_Source *out)
         case LogMonitor: *out = EDG_WLL_SOURCE_LOG_MONITOR; break;
         case LRMS: *out = EDG_WLL_SOURCE_LRMS; break;
         case Application: *out = EDG_WLL_SOURCE_APPLICATION; break;
+        case LBServer: *out = EDG_WLL_SOURCE_LB_SERVER; break;
         default: assert(0); break;
         }
 }
@@ -854,7 +855,7 @@ foreach ('_common_', sort { $event->{order}->{$a} <=> $event->{order}->{$b} } ge
 
 static void edg_wll_SourceToSoap(edg_wll_Source in, enum lbt__eventSource *out)
 {
-       assert(EDG_WLL_SOURCE_APPLICATION + 1 == EDG_WLL_SOURCE__LAST);
+       assert(EDG_WLL_SOURCE_LB_SERVER + 1 == EDG_WLL_SOURCE__LAST);
 
        switch ( in ) {
                case EDG_WLL_SOURCE_USER_INTERFACE: *out = UserInterface; break;
@@ -865,6 +866,7 @@ static void edg_wll_SourceToSoap(edg_wll_Source in, enum lbt__eventSource *out)
                case EDG_WLL_SOURCE_LOG_MONITOR: *out = LogMonitor; break;
                case EDG_WLL_SOURCE_LRMS: *out = LRMS; break;
                case EDG_WLL_SOURCE_APPLICATION: *out = Application; break;
+               case EDG_WLL_SOURCE_LB_SERVER: *out = LBServer; break;
                default: assert(0); break;
         }
 }
index d419ce8..74655ff 100644 (file)
@@ -18,7 +18,7 @@ FROM  UserInterface
 FROM_HOST      sending component hostname
 FROM_INSTANCE  sending component instance
 LOCAL_JOBID    new jobId (Condor  Globus ...)
-SEQCODE        UI=000002:NS=0000000001:WM=000000:BH=0000000000:JSS=000000:LM=000000:LRMS=000000:APP=000000
+SEQCODE        UI=000002:NS=0000000001:WM=000000:BH=0000000000:JSS=000000:LM=000000:LRMS=000000:APP=000000:LBS=000000
 SRC_INSTANCE   
 
 select name,value from long_fields where jobid = 'WrCEKje9QTXFiSOZuPMLtw' and event = 1
index 042d445..47906a6 100644 (file)
@@ -46,7 +46,7 @@ SOLINK:=libtool --mode=link ${CC} -module ${LDFLAGS} -rpath ${stagedir}/lib
 LINKXX:=libtool --mode=link ${CXX} ${LDFLAGS} 
 INSTALL:=libtool --mode=install install
 LINKXX:=libtool --mode=link  ${CXX} -rpath ${stagedir}/lib ${LDFLAGS}
-XSLTPROC:=xsltproc
+XSLTPROC:=xsltproc --novalid
 
 GLOBUS_LIBS:= -L${globus_prefix}/lib \
        -lglobus_common_${nothrflavour} \
index 9804182..3e1d87c 100644 (file)
                        <val name="LogMonitor"/>
                        <val name="LRMS"/>
                        <val name="Application"/>
+                       <val name="LBServer"/>
                </enum>
 
                <struct name="stateEnterTimesItem">
index 3dd0211..77b8fdb 100644 (file)
        int     state           New collection state.
        _optional_
        int     done_code       In case of (state == Done) contains done code 
+       _null_  -1
        string  histogram       User readable histogram; useful for debugging.
        jobid   child           JobId of subjob, which triggered the state change.      
        string  child_event     Event which triggered the state change.