From 3dbf993f131c3e5055fd0be35b2ec5c2557480a5 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20Posp=C3=AD=C5=A1il?= Date: Thu, 17 May 2007 17:46:50 +0000 Subject: [PATCH] added Condor stuff, including state machine --- org.glite.lb.client-interface/interface/context.h | 1 + org.glite.lb.client-interface/interface/events.h.T | 1 + org.glite.lb.client/src/Event.cpp.T | 2 + org.glite.lb.common/interface/context-int.h | 4 +- org.glite.lb.common/src/context.c | 9 +++ org.glite.lb.common/src/events.c.T | 2 + org.glite.lb.common/src/events_parse.c.T | 6 ++ org.glite.lb.common/src/trio.c | 2 +- org.glite.lb.common/src/xml_parse.c.T | 2 + org.glite.lb.common/test/parse.cpp.T | 3 + org.glite.lb.server/Makefile | 8 +- org.glite.lb.server/src/get_events.c.T | 1 + org.glite.lb.server/src/jobstat.h | 17 +++++ org.glite.lb.server/src/jobstat_supp.c | 15 ++++ org.glite.lb.server/src/lb_xml_parse.c.T | 1 + org.glite.lb.server/src/lb_xml_parse_V21.c.T | 1 + org.glite.lb.server/src/process_event.c | 5 ++ org.glite.lb.server/src/store.c.T | 1 + org.glite.lb.server/src/ws_typeref.c.T | 2 + org.glite.lb.server/test/test_xml.cpp.T | 1 + org.glite.lb/project/events.T | 88 ++++++++-------------- org.glite.lb/project/status.T | 12 ++- 22 files changed, 119 insertions(+), 65 deletions(-) diff --git a/org.glite.lb.client-interface/interface/context.h b/org.glite.lb.client-interface/interface/context.h index 284b1af..c3c347b 100644 --- a/org.glite.lb.client-interface/interface/context.h +++ b/org.glite.lb.client-interface/interface/context.h @@ -234,6 +234,7 @@ edg_wll_QueryResults edg_wll_StringToQResult(const char *name); #define EDG_WLL_SEQ_NORMAL 1 #define EDG_WLL_SEQ_DUPLICATE 11 #define EDG_WLL_SEQ_PBS 2 +#define EDG_WLL_SEQ_CONDOR 3 /** * initial sequence code for BigHelper diff --git a/org.glite.lb.client-interface/interface/events.h.T b/org.glite.lb.client-interface/interface/events.h.T index 1ba8356..f9f5693 100644 --- a/org.glite.lb.client-interface/interface/events.h.T +++ b/org.glite.lb.client-interface/interface/events.h.T @@ -309,6 +309,7 @@ for my $t (sort { $event->{order}->{$a} <=> $event->{order}->{$b} } $event->getTypes) { my $tl = lcfirst $t; if ($tl =~ m/^pBS/) { $tl = ucfirst $tl; } + if ($tl =~ m/^condor/) { $tl = ucfirst $tl; } gen $indent."edg_wll_${t}Event\t${tl};\n"; } @@@} diff --git a/org.glite.lb.client/src/Event.cpp.T b/org.glite.lb.client/src/Event.cpp.T index 0c8f975..7b4ef43 100644 --- a/org.glite.lb.client/src/Event.cpp.T +++ b/org.glite.lb.client/src/Event.cpp.T @@ -40,6 +40,7 @@ sub typeswitch { if($ctype{$f->{type}}) { my $cstr = $ftype eq '_common_' ? 'any' : lcfirst $ftype; if ($cstr =~ m/^pBS/) { $cstr = ucfirst $cstr; } + if ($cstr =~ m/^condor/) { $cstr = ucfirst $cstr; } my $cname = getName $f 'C'; gen "$indent\tcase Event::".uc($f->{name}).": return(cev->$cstr.$cname);\n"; } elsif (($f->{type} eq "int") && @@ -48,6 +49,7 @@ sub typeswitch { # conversion from int to string (well, enum to string) my $cstr = $ftype eq '_common_' ? 'any' : lcfirst $ftype; if ($cstr =~ m/^pBS/) { $cstr = ucfirst $cstr; } + if ($cstr =~ m/^condor/) { $cstr = ucfirst $cstr; } my $cname = getName $f 'C'; my $fn = $ftype eq '_common_' ? "" : ucfirst $ftype; my $c = $fn . ucfirst $f->{name}; diff --git a/org.glite.lb.common/interface/context-int.h b/org.glite.lb.common/interface/context-int.h index 70f16ad..a777725 100644 --- a/org.glite.lb.common/interface/context-int.h +++ b/org.glite.lb.common/interface/context-int.h @@ -15,8 +15,10 @@ extern "C" { #define EDG_WLL_SEQ_NULL "UI=000000:NS=0000000000:WM=000000:BH=0000000000:JSS=000000:LM=000000:LRMS=000000:APP=000000:LBS=000000" #define EDG_WLL_SEQ_PBS_NULL "TIMESTAMP=00000000000000:POS=0000000000:EV.CODE=000:SRC=?" +#define EDG_WLL_SEQ_CONDOR_NULL EDG_WLL_SEQ_PBS_NULL #define EDG_WLL_SEQ_SIZE 103 /* strlen(EDG_WLL_SEQ_NULL)+1 */ #define EDG_WLL_SEQ_PBS_SIZE 57 /* strlen(EDG_WLL_SEQ_PBS_NULL)+1 */ +#define EDG_WLL_SEQ_CONDOR_SIZE EDG_WLL_SEQ_PBS_SIZE typedef struct _edg_wll_SeqCode { unsigned int type; /* seq code type */ @@ -26,7 +28,7 @@ typedef struct _edg_wll_SeqCode { /* 25-39 POS=%010u: */ /* 40-51 EV.CODE=%03d: */ /* 53-56 SRC=%c */ - + char condor[EDG_WLL_SEQ_CONDOR_SIZE]; } edg_wll_SeqCode; /* non-gsi one-element analogy of connPool for L&B Proxy server */ diff --git a/org.glite.lb.common/src/context.c b/org.glite.lb.common/src/context.c index ed04cb2..8be7d2c 100644 --- a/org.glite.lb.common/src/context.c +++ b/org.glite.lb.common/src/context.c @@ -334,6 +334,9 @@ char *edg_wll_GetSequenceCode(const edg_wll_Context ctx) case EDG_WLL_SEQ_PBS: ret = strdup(ctx->p_seqcode.pbs); break; + case EDG_WLL_SEQ_CONDOR: + ret = strdup(ctx->p_seqcode.condor); + break; default: edg_wll_SetError(ctx,EINVAL,"edg_wll_GetSequenceCode(): sequence code type"); return NULL; @@ -395,6 +398,12 @@ int edg_wll_SetSequenceCode(edg_wll_Context ctx, else strncpy(ctx->p_seqcode.pbs, seqcode_str, sizeof(ctx->p_seqcode.pbs)); break; + case EDG_WLL_SEQ_CONDOR: + if (!seqcode_str) + memset(&ctx->p_seqcode.condor, 0, sizeof ctx->p_seqcode.condor); + else + strncpy(ctx->p_seqcode.condor, seqcode_str, sizeof(ctx->p_seqcode.condor)); + break; default: return edg_wll_SetError(ctx, EINVAL, "edg_wll_SetSequenceCode(): unrecognized value of seq_type parameter"); diff --git a/org.glite.lb.common/src/events.c.T b/org.glite.lb.common/src/events.c.T index d46529c..7d62fd9 100644 --- a/org.glite.lb.common/src/events.c.T +++ b/org.glite.lb.common/src/events.c.T @@ -279,6 +279,7 @@ for my $t (sort { $event->{order}->{$a} <=> $event->{order}->{$b} } my $tu = uc $t; my $tl = lcfirst $t; if ($tl =~ m/^pBS/) { $tl = ucfirst $tl; } + if ($tl =~ m/^condor/) { $tl = ucfirst $tl; } gen $indent."case EDG_WLL_EVENT_$tu : \n"; selectType $event $t; for ($event->getFieldsOrdered) { @@ -332,6 +333,7 @@ for my $t (sort { $event->{order}->{$a} <=> $event->{order}->{$b} } my $tu = uc $t; my $tl = lcfirst $t; if ($tl =~ m/^pBS/) { $tl = ucfirst $tl; } + if ($tl =~ m/^condor/) { $tl = ucfirst $tl; } gen $indent."case EDG_WLL_EVENT_$tu :\n"; selectType $event $t; for ($event->getFieldsOrdered) { diff --git a/org.glite.lb.common/src/events_parse.c.T b/org.glite.lb.common/src/events_parse.c.T index 5274f0b..f656175 100644 --- a/org.glite.lb.common/src/events_parse.c.T +++ b/org.glite.lb.common/src/events_parse.c.T @@ -132,6 +132,7 @@ for my $t (sort { $event->{order}->{$a} <=> $event->{order}->{$b} } my $tu = uc $t; my $tl = lcfirst $t; if ($tl =~ m/^pBS/) { $tl = ucfirst $tl; } + if ($tl =~ m/^condor/) { $tl = ucfirst $tl; } my $misuse = "if (eventcode != EDG_WLL_EVENT_$tu ) MISUSE"; selectType $event $t; for ($event->getFieldsOrdered) { @@ -259,6 +260,7 @@ for my $t (sort { $event->{order}->{$a} <=> $event->{order}->{$b} } my $tu = uc $t; my $tl = lcfirst $t; if ($tl =~ m/^pBS/) { $tl = ucfirst $tl; } + if ($tl =~ m/^condor/) { $tl = ucfirst $tl; } my $free = ""; gen $indent."case EDG_WLL_EVENT_$tu :\n"; gen "\t\{"; @@ -392,6 +394,7 @@ for my $t (sort { $event->{order}->{$a} <=> $event->{order}->{$b} } my $tu = uc $t; my $tl = lcfirst $t; if ($tl =~ m/^pBS/) { $tl = ucfirst $tl; } + if ($tl =~ m/^condor/) { $tl = ucfirst $tl; } gen $indent."case EDG_WLL_EVENT_$tu :\n"; selectType $event $t; for ($event->getFieldsOrdered) { @@ -452,6 +455,7 @@ edg_wll_ErrorCode edg_wll_CompareEvents( my $tu = uc $t; my $tl = lcfirst $t; if ($tl =~ m/^pBS/) { $tl = ucfirst $tl; } + if ($tl =~ m/^condor/) { $tl = ucfirst $tl; } selectType $event $t; gen "\t\tcase EDG_WLL_EVENT\_$tu :\n"; @@ -622,6 +626,7 @@ for (i=0; inum; i++) { my $tu = uc $t; my $tl = lcfirst $t; if ($tl =~ m/^pBS/) { $tl = ucfirst $tl; } + if ($tl =~ m/^condor/) { $tl = ucfirst $tl; } my $misuse = "if (eventcode != EDG_WLL_EVENT_$tu ) MISUSE"; selectType $event $t; for ($event->getFieldsOrdered) { @@ -721,6 +726,7 @@ $indent = " "; my $tu = uc $t; my $tl = lcfirst $t; if ($tl =~ m/^pBS/) { $tl = ucfirst $tl; } + if ($tl =~ m/^condor/) { $tl = ucfirst $tl; } my $free = ""; ## gen $indent."case EDG_WLL_EVENT_$tu :\n"; gen "\t\{"; diff --git a/org.glite.lb.common/src/trio.c b/org.glite.lb.common/src/trio.c index d46736e..700a7e2 100644 --- a/org.glite.lb.common/src/trio.c +++ b/org.glite.lb.common/src/trio.c @@ -672,7 +672,7 @@ typedef struct _userdef_T { * Internal variables */ -static const char null[] = "(nil)"; +static const char null[] = ""; #if defined(USE_LOCALE) static struct lconv *internalLocaleValues = NULL; diff --git a/org.glite.lb.common/src/xml_parse.c.T b/org.glite.lb.common/src/xml_parse.c.T index 3b7cecc..418af9e 100644 --- a/org.glite.lb.common/src/xml_parse.c.T +++ b/org.glite.lb.common/src/xml_parse.c.T @@ -815,6 +815,7 @@ static void endQueryEvents(void *data, const char *el UNUSED_VAR) my $ft = $f->{type}; $fo[0] = $fo[0] eq '_common_' ? 'any' : lcfirst $fo[0]; if ($fo[0] =~ m/^pBS/) { $fo[0] = ucfirst $fo[0]; } + if ($fo[0] =~ m/^condor/) { $fo[0] = ucfirst $fo[0]; } gen "$bi XMLCtx->eventsOutGlobal[XMLCtx->position].$fo[0].$t =\n"; gen "$bi \tedg_wll_from_string_to_$ft(XMLCtx);\n"; } @@ -828,6 +829,7 @@ static void endQueryEvents(void *data, const char *el UNUSED_VAR) my $u = uc $_; $_ = lcfirst $_; if ($_ =~ m/^pBS/) { $_ = ucfirst $_; } + if ($_ =~ m/^condor/) { $_ = ucfirst $_; } gen "$bi case EDG_WLL_EVENT_$u :\n"; gen "$bi \t XMLCtx->eventsOutGlobal[XMLCtx->position].$_.$t =\n"; gen "$bi \t edg_wll_from_string_to_$ft(XMLCtx);\n"; diff --git a/org.glite.lb.common/test/parse.cpp.T b/org.glite.lb.common/test/parse.cpp.T index 5045494..4cd50ac 100644 --- a/org.glite.lb.common/test/parse.cpp.T +++ b/org.glite.lb.common/test/parse.cpp.T @@ -16,6 +16,7 @@ class EventParseTest: public CppUnit::TestFixture for my $e ($event->getTypesOrdered) { my $u = lcfirst $e; if ($u =~ m/^pBS/) { $u = ucfirst $u; } + if ($u =~ m/^condor/) { $u = ucfirst $u; } my $c = getTypeComment $event $e; gen "\tCPPUNIT_TEST($u);\n"; } @@ -30,6 +31,7 @@ public: for my $e ($event->getTypesOrdered) { my $u = lcfirst $e; if ($u =~ m/^pBS/) { $u = ucfirst $u; } + if ($u =~ m/^condor/) { $u = ucfirst $u; } my $c = getTypeComment $event $e; gen "\tvoid $u();\n"; } @@ -87,6 +89,7 @@ void EventParseTest::regJob() for my $e ($event->getTypesOrdered) { my $l = lcfirst $e; if ($l =~ m/^pBS/) { $l = ucfirst $l; } + if ($l =~ m/^condor/) { $l = ucfirst $l; } my $u = uc $e; my $c = getTypeComment $event $e; gen " diff --git a/org.glite.lb.server/Makefile b/org.glite.lb.server/Makefile index 64708c2..19f2269 100644 --- a/org.glite.lb.server/Makefile +++ b/org.glite.lb.server/Makefile @@ -177,10 +177,10 @@ COMMON_LIBS:= -L${stagedir}/lib -lglite_lb_common_${nothrflavour} -lglite_secur PLUGIN_LIBS:= -L${stagedir}/lib -lglite_lb_common_${nothrflavour}\ ${classadslib} -lstdc++ ${expatlib} -lexpat\ -PLUGIN_LOBJS:= lb_plugin.lo jobstat_supp.lo process_event.lo lbs_db_supp.lo process_event_pbs.lo +PLUGIN_LOBJS:= lb_plugin.lo jobstat_supp.lo process_event.lo lbs_db_supp.lo process_event_pbs.lo process_event_condor.lo BKSERVER_BASE_OBJS:= \ - bkserverd.o il_lbproxy.o get_events.o index.o jobstat.o jobstat_supp.o process_event.o process_event_pbs.o \ + bkserverd.o il_lbproxy.o get_events.o index.o jobstat.o jobstat_supp.o process_event.o process_event_pbs.o process_event_condor.o \ seqcode.o write2rgma.o lbs_db.o lbs_db_supp.o lb_html.o lb_http.o lb_proto.o lb_xml_parse.o \ lb_xml_parse_V21.o \ lock.o openserver.o query.o userjobs.o db_store.o request.o store.o \ @@ -212,7 +212,7 @@ else endif INDEX_OBJS:= index.o index_parse.o jobstat_supp.o lbs_db.o lbs_db_supp.o openserver.o \ - jobstat.o process_event.o process_event_pbs.o query.o lock.o get_events.o write2rgma.o index_lex.o \ + jobstat.o process_event.o process_event_pbs.o process_event_condor.o query.o lock.o get_events.o write2rgma.o index_lex.o \ lb_authz.o store.o bkindex.o stats.o\ request.o db_store.o srv_purge.o notif_match.o il_lbproxy.o dump.o lb_xml_parse.o il_notification.o lb_proto.o server_state.o lb_xml_parse_V21.o lb_html.o notification.o seqcode.o userjobs.o load.o @@ -233,7 +233,7 @@ WS_CLIENT_LIBS:= ${GSOAP_LIB} -lglite_lb_common_${nothrflavour} \ HDRS=index.h lb_authz.h lbs_db.h store.h LIB_OBJS_BK:= \ - il_lbproxy.o get_events.o index.o jobstat.o jobstat_supp.o process_event.o process_event_pbs.o \ + il_lbproxy.o get_events.o index.o jobstat.o jobstat_supp.o process_event.o process_event_pbs.o process_event_condor.o \ seqcode.o lbs_db.o lbs_db_supp.o lb_html.o lb_http.o lb_proto.o lb_xml_parse.o \ lb_xml_parse_V21.o \ lock.o openserver.o query.o userjobs.o db_store.o request.o store.o \ diff --git a/org.glite.lb.server/src/get_events.c.T b/org.glite.lb.server/src/get_events.c.T index c58c523..306921b 100644 --- a/org.glite.lb.server/src/get_events.c.T +++ b/org.glite.lb.server/src/get_events.c.T @@ -122,6 +122,7 @@ static void edg_wll_set_event_field( my $uctype = uc $_; my $flctype = lcfirst $_; if ($flctype =~ m/^pBS/) { $flctype = ucfirst $flctype; } + if ($flctype =~ m/^condor/) { $flctype = ucfirst $flctype; } my $frs = $f->{codes} ? "event->$flctype.$name = edg_wll_StringTo$_${fucname}(value);" : fromString $f 'value',"event->$flctype.$name"; diff --git a/org.glite.lb.server/src/jobstat.h b/org.glite.lb.server/src/jobstat.h index 8514751..64e32b1 100644 --- a/org.glite.lb.server/src/jobstat.h +++ b/org.glite.lb.server/src/jobstat.h @@ -67,6 +67,20 @@ typedef enum _edg_wll_PBSEventSource { EDG_WLL_PBS_EVENT_SOURCE__LAST } edg_wll_PBSEventSource; +typedef enum _edg_wll_CondorEventSource { + EDG_WLL_CONDOR_EVENT_SOURCE_UNDEF = 0, + EDG_WLL_CONDOR_EVENT_SOURCE_COLLECTOR, + EDG_WLL_CONDOR_EVENT_SOURCE_MASTER, + EDG_WLL_CONDOR_EVENT_SOURCE_MATCH, + EDG_WLL_CONDOR_EVENT_SOURCE_NEGOTIATOR, + EDG_WLL_CONDOR_EVENT_SOURCE_SCHED, + EDG_WLL_CONDOR_EVENT_SOURCE_SHADOW, + EDG_WLL_CONDOR_EVENT_SOURCE_STARTER, + EDG_WLL_CONDOR_EVENT_SOURCE_START, + EDG_WLL_CONDOR_EVENT_SOURCE_JOBQUEUE, + EDG_WLL_CONDOR_EVENT_SOURCE__LAST +} edg_wll_CondorEventSource; + void destroy_intJobStat(intJobStat *); void destroy_intJobStat_extension(intJobStat *p); @@ -95,11 +109,14 @@ int component_seqcode(const char *a, edg_wll_Source index); char * set_component_seqcode(char *s,edg_wll_Source index,int val); int processEvent(intJobStat *, edg_wll_Event *, int, int, char **); int processEvent_PBS(intJobStat *, edg_wll_Event *, int, int, char **); +int processEvent_Condor(intJobStat *, edg_wll_Event *, int, int, char **); int add_stringlist(char ***, const char *); int edg_wll_compare_seq(const char *, const char *); int edg_wll_compare_pbs_seq(const char *,const char *); +#define edg_wll_compare_condor_seq edg_wll_compare_pbs_seq edg_wll_PBSEventSource get_pbs_event_source(const char *pbs_seq_num); +edg_wll_CondorEventSource get_condor_event_source(const char *pbs_seq_num); void init_intJobStat(intJobStat *p); diff --git a/org.glite.lb.server/src/jobstat_supp.c b/org.glite.lb.server/src/jobstat_supp.c index f8d4615..c6d5bf8 100644 --- a/org.glite.lb.server/src/jobstat_supp.c +++ b/org.glite.lb.server/src/jobstat_supp.c @@ -892,6 +892,21 @@ edg_wll_PBSEventSource get_pbs_event_source(const char *pbs_seq_num) { } } +edg_wll_CondorEventSource get_condor_event_source(const char *condor_seq_num) { + switch (condor_seq_num[EDG_WLL_SEQ_CONDOR_SIZE-1]) { + case 'L': return(EDG_WLL_CONDOR_EVENT_SOURCE_COLLECTOR); + case 'M': return(EDG_WLL_CONDOR_EVENT_SOURCE_MASTER); + case 'm': return(EDG_WLL_CONDOR_EVENT_SOURCE_MATCH); + case 'N': return(EDG_WLL_CONDOR_EVENT_SOURCE_NEGOTIATOR); + case 'C': return(EDG_WLL_CONDOR_EVENT_SOURCE_SCHED); + case 'H': return(EDG_WLL_CONDOR_EVENT_SOURCE_SHADOW); + case 's': return(EDG_WLL_CONDOR_EVENT_SOURCE_STARTER); + case 'S': return(EDG_WLL_CONDOR_EVENT_SOURCE_START); + case 'j': return(EDG_WLL_CONDOR_EVENT_SOURCE_JOBQUEUE); + default: return(EDG_WLL_CONDOR_EVENT_SOURCE_UNDEF); + } +} + int edg_wll_compare_seq(const char *a, const char *b) { unsigned int c[EDG_WLL_SOURCE__LAST]; diff --git a/org.glite.lb.server/src/lb_xml_parse.c.T b/org.glite.lb.server/src/lb_xml_parse.c.T index a165486..764b188 100644 --- a/org.glite.lb.server/src/lb_xml_parse.c.T +++ b/org.glite.lb.server/src/lb_xml_parse.c.T @@ -1493,6 +1493,7 @@ int edg_wll_QueryEventsToXML(edg_wll_Context ctx, edg_wll_Event *eventsOut, char my $n = $f->{null}; $t = lcfirst $t; if ($t =~ m/^pBS/) { $t = ucfirst $t; } + if ($t =~ m/^condor/) { $t = ucfirst $t; } gen "\t\tedg_wll_add_$ft\_to_XMLBody(&pomB, eventsOut[i].$t.$_, \"$_\", $n);\n"; } gen "\t\tbreak;\n"; diff --git a/org.glite.lb.server/src/lb_xml_parse_V21.c.T b/org.glite.lb.server/src/lb_xml_parse_V21.c.T index b1ddbb0..259453a 100644 --- a/org.glite.lb.server/src/lb_xml_parse_V21.c.T +++ b/org.glite.lb.server/src/lb_xml_parse_V21.c.T @@ -873,6 +873,7 @@ int edg_wll_QueryEventsToXMLV21(edg_wll_Context ctx UNUSED_VAR, edg_wll_Event *e my $n = $f->{null}; $t = lcfirst $t; if ($t =~ m/^pBS/) { $t = ucfirst $t; } + if ($t =~ m/^condor/) { $t = ucfirst $t; } gen "\t\tedg_wll_add_$ft\_to_XMLBody(&pomB, eventsOut[i].$t.$_, \"$_\", $n);\n"; } gen "\t\tbreak;\n"; diff --git a/org.glite.lb.server/src/process_event.c b/org.glite.lb.server/src/process_event.c index de0b038..19b4dec 100644 --- a/org.glite.lb.server/src/process_event.c +++ b/org.glite.lb.server/src/process_event.c @@ -40,6 +40,9 @@ int processEvent(intJobStat *js, edg_wll_Event *e, int ev_seq, int strict, char case EDG_WLL_REGJOB_PBS: js->pub.jobtype = EDG_WLL_STAT_PBS; break; + case EDG_WLL_REGJOB_CONDOR: + js->pub.jobtype = EDG_WLL_STAT_CONDOR; + break; default: asprintf(errstring,"unknown job type %d in registration",e->regJob.jobtype); return RET_FAIL; @@ -52,6 +55,8 @@ int processEvent(intJobStat *js, edg_wll_Event *e, int ev_seq, int strict, char return processEvent_glite(js,e,ev_seq,strict,errstring); case EDG_WLL_STAT_PBS: return processEvent_PBS(js,e,ev_seq,strict,errstring); + case EDG_WLL_STAT_CONDOR: + return processEvent_Condor(js,e,ev_seq,strict,errstring); case -1: return RET_UNREG; default: asprintf(errstring,"undefined job type %d",js->pub.jobtype); diff --git a/org.glite.lb.server/src/store.c.T b/org.glite.lb.server/src/store.c.T index a8339c1..28f32c6 100644 --- a/org.glite.lb.server/src/store.c.T +++ b/org.glite.lb.server/src/store.c.T @@ -395,6 +395,7 @@ static int store_flesh(edg_wll_Context ctx,edg_wll_Event *e,char *jobid,int no) my $uctype = uc $type; my $flctype = lcfirst $type; if ($flctype =~ m/^pBS/) { $flctype = ucfirst $flctype; } + if ($flctype =~ m/^condor/) { $flctype = ucfirst $flctype; } gen qq{ ! case EDG_WLL_EVENT_$uctype: }; diff --git a/org.glite.lb.server/src/ws_typeref.c.T b/org.glite.lb.server/src/ws_typeref.c.T index 0fba603..03cb8a0 100644 --- a/org.glite.lb.server/src/ws_typeref.c.T +++ b/org.glite.lb.server/src/ws_typeref.c.T @@ -33,6 +33,7 @@ sub eventFieldAssign { $tn = $f->{type}; $native_en = lcfirst $e; if ($native_en =~ m/^pBS/) { $native_en = ucfirst $native_en; } + if ($native_en =~ m/^condor/) { $native_en = ucfirst $native_en; } $native_fn = $f->{name}; $soap_en = $e; while ($soap_en =~ /([[:alpha:]]*)_([[:alpha:]_]*)/) { @@ -1054,6 +1055,7 @@ static int edg_wll_SoapToEvent( } else { $act = lcfirst $name; if ($act =~ m/^pBS/) { $act = ucfirst $act; } + if ($act =~ m/^condor/) { $act = ucfirst $act; } } my $usuc = $fn; $usuc = $1.uc($2).$3 while ($usuc =~ /([^_]*)_([a-z])(.*)/); diff --git a/org.glite.lb.server/test/test_xml.cpp.T b/org.glite.lb.server/test/test_xml.cpp.T index 775d12a..3cfe623 100644 --- a/org.glite.lb.server/test/test_xml.cpp.T +++ b/org.glite.lb.server/test/test_xml.cpp.T @@ -47,6 +47,7 @@ static char * compare_events(const edg_wll_Event *e1, const edg_wll_Event *e2) my $tu = uc $t; my $tl = lcfirst $t; if ($tl =~ m/^pBS/) { $tl = ucfirst $tl; } + if ($tl =~ m/^condor/) { $tl = ucfirst $tl; } selectType $event $t; gen "\t\tcase EDG_WLL_EVENT\_$tu :\n"; diff --git a/org.glite.lb/project/events.T b/org.glite.lb/project/events.T index 0b675c7..d9602d0 100644 --- a/org.glite.lb/project/events.T +++ b/org.glite.lb/project/events.T @@ -254,7 +254,7 @@ @type CondorMatch Job MATCHed string owner Owner - string matched_host Matched host + string dest_host Matched host string preempting Preempting _optional_ @@ -264,64 +264,42 @@ _code_ NOMATCH No match found _code_ OTHER Other reason -@type CondorRun Condor EXECUTEed - string condor_id Condor ID - string universe Condor Universe - string scheduler Scheduler ID - _optional_ - string dest_host Where to run the job +@type CondorShadowStarted Condor Shadow Started + string shadow_host Shadow host + port shadow_port Shadow port + int shadow_pid PID of shadow process + string shadow_status Shadow status _optional_ - int pid Actual process ID - _optional_ - -@type CondorChkpt - string info Some useful info - -@type CondorEvict - int shadow_exit_status Condor shadow exit status - string reason reason -@type CondorTerminate - int shadow_exit_status Condor shadow exit status - string reason reason +@type CondorShadowExited Condor Shadow Exited + int shadow_pid PID of shadow process + int shadow_exit_status Exit status of shadow process -@type CondorAbort - int shadow_exit_status Condor shadow exit status - string reason reason - -@type CondorSuspend - int shadow_exit_status Condor shadow exit status - string reason reason - -@type CondorUnsuspend - int shadow_exit_status Condor shadow exit status - string reason reason - -@type CondorHold - int shadow_exit_status Condor shadow exit status - string reason reason - -@type CondorRelease - int shadow_exit_status Condor shadow exit status - string reason reason - -@type CondorNodeExecute - string info Some useful info +@type CondorStarterStarted Condor Starter Started + int starter_pid PID of starter process + _optional_ + string universe Condor Universe + _optional_ -@type CondorNodeTerminate - string info Some useful info +@type CondorStarterExited Condor Starter Exited + int starter_pid PID of starter process + _optional_ + int starter_exit_status Exit status of starter process + _optional_ + int job_pid PID of running job + _optional_ + int job_exit_status Job exit status + _optional_ -@type CondorPostSctiptTerminate - string info Some useful info +@type CondorResourceUsage Resources requested/consumed + int usage Type of record + _code_ REQUESTED Requested value + _code_ USED Consumed quantity + string name Name of resource + double quantity The quantity + _optional_ Bypass need of 'null value' + string unit Units (sec, kB, etc.) -@type CondorGlobusSubmit - int status_code - _code_ OK The job was submitted successfully - _code_ FAIL Job submission failed - string info Some useful info +@type CondorError Any Error occured + string error_desc Error reason -@type CondorGlobusResource - int status_code Status code - _code_ UP Resource UP - _code_ DOWN Resource DOWM - string info Some useful info diff --git a/org.glite.lb/project/status.T b/org.glite.lb/project/status.T index cae5f17..2fcb7bd 100644 --- a/org.glite.lb/project/status.T +++ b/org.glite.lb/project/status.T @@ -91,11 +91,15 @@ string pbs_error_desc Glued error descriptions from error events string condor_status Condor job status string condor_universe Condor job Universe (in job ClassAds) string condor_owner Job owner -string condor_pid PID of running job -int condor_notification Condor notification -int condor_job_exit_status Job exit status -int condor_starter_exit_status Condor starter exit status +int condor_shadow_pid PID of Shadow int condor_shadow_exit_status Condor shadow exit status (see h/exit.h) +int condor_starter_pid PID of Starter +int condor_starter_exit_status Condor starter exit status +int condor_job_pid PID of running job +int condor_job_exit_status Job exit status +string condor_dest_host Hostname of node where job is running +string condor_reason Glued reasons/errors leading to pending events +string condor_error_desc Glued error descriptions from error events @type Submitted Entered by the user to the User Interface or registered by Job Partitioner. -- 1.8.2.3