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;
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()
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 */
"LogMonitor",
"LRMS",
"Application",
+ "LBServer",
};
edg_wll_Source edg_wll_StringToSource(const char *name)
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],
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;
}
}
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],
&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");
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;
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],
&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);
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],
&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);
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],
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;
}
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],
&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],
&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);
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;
#define LogMonitor lbt__eventSource__LogMonitor
#define LRMS lbt__eventSource__LRMS
#define Application lbt__eventSource__Application
+#define LBServer lbt__eventSource__LBServer
#endif
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;
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;
}
}
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;
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;
}
}
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
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} \
<val name="LogMonitor"/>
<val name="LRMS"/>
<val name="Application"/>
+ <val name="LBServer"/>
</enum>
<struct name="stateEnterTimesItem">
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.