#if GSOAP_VERSION >= 20709
- #define GFITEM reason
#define GFNUM SOAP_TYPE_lbt__genericFault
#else
- #define GFITEM lbe__genericFault
#define GFNUM SOAP_TYPE__genericFault
#endif
struct SOAP_ENV__Detail *detail = soap_malloc(soap,sizeof *detail);
#if GSOAP_VERSION >= 20709
struct lbt__genericFault *f = soap_malloc(soap,sizeof *f);
+ struct lbt__genericFault *item = f;
#else
struct _genericFault *f = soap_malloc(soap,sizeof *f);
+ struct lbt__genericFault *item = f->lbe__genericFault = soap_malloc(soap, sizeof *item);
#endif
- f->GFITEM = soap_malloc(soap,sizeof *f->GFITEM);
- memset(f->GFITEM, 0, sizeof(*f->GFITEM));
+ memset(item, 0, sizeof(*item));
- f->GFITEM->code = edg_wll_Error(ctx,&et,&ed);
- f->GFITEM->text = soap_malloc(soap,strlen(et)+1);
- strcpy(f->GFITEM->text,et);
+ item->code = edg_wll_Error(ctx,&et,&ed);
+ item->text = soap_malloc(soap,strlen(et)+1);
+ strcpy(item->text, et);
free(et);
if (ed) {
- f->GFITEM->description = soap_malloc(soap,strlen(ed)+1);
- strcpy(f->GFITEM->description,ed);
+ item->description = soap_malloc(soap,strlen(ed)+1);
+ strcpy(item->description,ed);
free(ed);
}
case CLASSADS: *out |= EDG_WLL_STAT_CLASSADS; break;
case CHILDREN: *out |= EDG_WLL_STAT_CHILDREN; break;
case CHILDSTAT: *out |= EDG_WLL_STAT_CHILDSTAT; break;
+ case CHILDHIST_FAST: *out |= EDG_WLL_STAT_CHILDHIST_FAST; break;
+ case CHILDHIST_THOROUGH: *out |= EDG_WLL_STAT_CHILDHIST_THOROUGH; break;
}
}
if ( in & EDG_WLL_STAT_CLASSADS ) out->__sizeflag++;
if ( in & EDG_WLL_STAT_CHILDREN ) out->__sizeflag++;
if ( in & EDG_WLL_STAT_CHILDSTAT ) out->__sizeflag++;
+ if ( in & EDG_WLL_STAT_CHILDHIST_FAST ) out->__sizeflag++;
+ if ( in & EDG_WLL_STAT_CHILDHIST_THOROUGH ) out->__sizeflag++;
if ( !out->__sizeflag ) return SOAP_OK;
out->flag = soap_malloc(soap, sizeof(*(out->flag))*out->__sizeflag);
if ( !out->flag ) return SOAP_FAULT;
if ( in & EDG_WLL_STAT_CLASSADS ) out->flag[i++] = CLASSADS;
if ( in & EDG_WLL_STAT_CHILDREN ) out->flag[i++] = CHILDREN;
if ( in & EDG_WLL_STAT_CHILDSTAT ) out->flag[i++] = CHILDSTAT;
+ if ( in & EDG_WLL_STAT_CHILDHIST_FAST ) out->flag[i++] = CHILDHIST_FAST;
+ if ( in & EDG_WLL_STAT_CHILDHIST_THOROUGH ) out->flag[i++] = CHILDHIST_THOROUGH;
return SOAP_OK;
}
-void edg_wll_SoapToAttr(const enum lbt__queryAttr in, edg_wll_QueryAttr *out)
+int edg_wll_SoapToAttr(const enum lbt__queryAttr in, edg_wll_QueryAttr *out)
{
+ assert(EDG_WLL_QUERY_ATTR_EXITCODE + 1 == EDG_WLL_QUERY_ATTR__LAST);
+
switch ( in )
{
-// case UNDEF: *out = EDG_WLL_QUERY_ATTR_UNDEF; break;
case JOBID: *out = EDG_WLL_QUERY_ATTR_JOBID; break;
case OWNER: *out = EDG_WLL_QUERY_ATTR_OWNER; break;
case STATUS: *out = EDG_WLL_QUERY_ATTR_STATUS; break;
case RESUBMITTED: *out = EDG_WLL_QUERY_ATTR_RESUBMITTED; break;
case PARENT: *out = EDG_WLL_QUERY_ATTR_PARENT; break;
case EXITCODE: *out = EDG_WLL_QUERY_ATTR_EXITCODE; break;
- default: *out = in; break;
+ default: return 0;
}
+
+ return 1;
}
-void edg_wll_AttrToSoap(const edg_wll_QueryAttr in, enum lbt__queryAttr *out)
+int edg_wll_AttrToSoap(const edg_wll_QueryAttr in, enum lbt__queryAttr *out)
{
+ assert(EDG_WLL_QUERY_ATTR_EXITCODE + 1 == EDG_WLL_QUERY_ATTR__LAST);
+
switch ( in )
{
- case EDG_WLL_QUERY_ATTR_UNDEF: *out = -1; break;
case EDG_WLL_QUERY_ATTR_JOBID: *out = JOBID; break;
case EDG_WLL_QUERY_ATTR_OWNER: *out = OWNER; break;
case EDG_WLL_QUERY_ATTR_STATUS: *out = STATUS; break;
case EDG_WLL_QUERY_ATTR_RESUBMITTED: *out = RESUBMITTED; break;
case EDG_WLL_QUERY_ATTR_PARENT: *out = PARENT; break;
case EDG_WLL_QUERY_ATTR_EXITCODE: *out = EXITCODE; break;
- default: *out = in; break;
+ default: return 0;
}
+
+ return 1;
}
void edg_wll_SoapToQueryOp(const enum lbt__queryOp in, edg_wll_QueryOp *out)
switch ( in )
{
case EQUAL: *out = EDG_WLL_QUERY_OP_EQUAL; break;
+ case UNEQUAL: *out = EDG_WLL_QUERY_OP_UNEQUAL; break;
case LESS: *out = EDG_WLL_QUERY_OP_LESS; break;
case GREATER: *out = EDG_WLL_QUERY_OP_GREATER; break;
case WITHIN: *out = EDG_WLL_QUERY_OP_WITHIN; break;
- default: *out = in; break;
}
}
switch ( in )
{
case EDG_WLL_QUERY_OP_EQUAL: *out = EQUAL; break;
+ case EDG_WLL_QUERY_OP_UNEQUAL: *out = UNEQUAL; break;
case EDG_WLL_QUERY_OP_LESS: *out = LESS; break;
case EDG_WLL_QUERY_OP_GREATER: *out = GREATER; break;
case EDG_WLL_QUERY_OP_WITHIN: *out = WITHIN; break;
- default: *out = in; break;
+ default: assert(0);
}
}
case EDG_WLL_QUERY_ATTR_DESTINATION:
case EDG_WLL_QUERY_ATTR_HOST:
case EDG_WLL_QUERY_ATTR_INSTANCE:
+ case EDG_WLL_QUERY_ATTR_CHKPT_TAG:
VALUEQR_SET(out, c, in->c ? soap_strdup(soap, in->c) : NULL);
if (in->c && !VALUEQR_GET(out, c) ) return SOAP_FAULT;
break;
case EDG_WLL_QUERY_ATTR_SOURCE:
case EDG_WLL_QUERY_ATTR_EVENT_TYPE:
case EDG_WLL_QUERY_ATTR_RESUBMITTED:
- default:
+ case EDG_WLL_QUERY_ATTR_EXITCODE:
VALUEQR_SET(out, i, soap_malloc(soap, sizeof(*(VALUEQR_GET(out, i)))));
if ( !VALUEQR_GET(out, i) ) return SOAP_FAULT;
*(VALUEQR_GET(out, i)) = in->i;
break;
+ default:
+ return SOAP_FAULT;
}
return SOAP_OK;
{
assert(collection); assert(in); assert(out);
memset(out, 0, sizeof(*out));
- edg_wll_SoapToAttr(collection->attr, &out->attr);
+ if (!edg_wll_SoapToAttr(collection->attr, &out->attr)) return -1;
switch ( out->attr )
{
case EDG_WLL_QUERY_ATTR_TIME:
if ( !in )
goto ret;
- edg_wll_AttrToSoap(in[0].attr, &(qc->attr));
+ if (!edg_wll_AttrToSoap(in[0].attr, &(qc->attr))) return SOAP_FAULT;
if ( in->attr == EDG_WLL_QUERY_ATTR_TIME ) {
qc->statName = soap_malloc(soap, sizeof(*(qc->statName)));
}
+#define edg_wll_CommonJobsResponseToSoap do { \
+ int i; \
+\
+ assert(out); \
+ out->__sizejobs = 0; \
+ out->jobs = NULL; \
+ out->__sizestates = 0; \
+ out->states = NULL; \
+\
+ if ( jobs ) { \
+ for ( i = 0; jobs[i]; i++ ) ; \
+ out->jobs = soap_malloc(soap, sizeof(*(out->jobs))*i); \
+ if ( !out->jobs ) return SOAP_FAULT; \
+ out->__sizejobs = i; \
+ for ( i = 0; jobs[i]; i++ ) { \
+ char *s; \
+ if ( !(s = edg_wlc_JobIdUnparse(jobs[i])) ) return SOAP_FAULT; \
+ if ( !(out->jobs[i] = soap_strdup(soap, s)) ) return SOAP_FAULT; \
+ free(s); \
+ } \
+ } \
+ if ( states ) { \
+ for ( i = 0; states[i].state; i++ ) ; \
+ GLITE_SECURITY_GSOAP_LIST_CREATE(soap, out, states, struct lbt__jobStatus, i); \
+ if ( !out->states ) return SOAP_FAULT; \
+\
+ for ( i = 0; states[i].state; i++ ) \
+ if ( edg_wll_StatusToSoap(soap, states+i, GLITE_SECURITY_GSOAP_LIST_GET(out->states, i)) ) \
+ return SOAP_FAULT; \
+ } \
+\
+} while(0)
+
+
int edg_wll_JobsQueryResToSoap(
struct soap *soap,
const edg_wlc_JobId *jobs,
const edg_wll_JobStat *states,
struct _lbe__QueryJobsResponse *out)
{
- int i;
-
-
- assert(out); //assert(out->states); assert(out->jobs);
- out->jobs = NULL;
- out->states = NULL;
- out->__sizejobs = 0;
- out->__sizestates = 0;
-
- if ( jobs ) {
- for ( i = 0; jobs[i]; i++ ) ;
- out->jobs = soap_malloc(soap, sizeof(*(out->jobs))*i);
- if ( !out->jobs ) return SOAP_FAULT;
- out->__sizejobs = i;
- for ( i = 0; jobs[i]; i++ ) {
- char *s;
- if ( !(s = edg_wlc_JobIdUnparse(jobs[i])) ) return SOAP_FAULT;
- if ( !(out->jobs[i] = soap_strdup(soap, s)) ) return SOAP_FAULT;
- free(s);
- }
- }
- if ( states ) {
- for ( i = 0; states[i].state; i++ ) ;
- GLITE_SECURITY_GSOAP_LIST_CREATE(soap, out, states, struct lbt__jobStatus, i);
- if ( !out->states ) return SOAP_FAULT;
-
- for ( i = 0; states[i].state; i++ )
- if ( edg_wll_StatusToSoap(soap, states+i, GLITE_SECURITY_GSOAP_LIST_GET(out->states, i)) )
- return SOAP_FAULT;
- }
+ edg_wll_CommonJobsResponseToSoap;
+ return SOAP_OK;
+}
+
+int edg_wll_UserJobsResToSoap(
+ struct soap *soap,
+ const edg_wlc_JobId *jobs,
+ const edg_wll_JobStat *states,
+ struct _lbe__UserJobsResponse *out)
+{
+ edg_wll_CommonJobsResponseToSoap;
return SOAP_OK;
}
+
static void edg_wll_SoapToSource(enum lbt__eventSource in, edg_wll_Source *out)
{
assert(EDG_WLL_SOURCE_LB_SERVER + 1 == EDG_WLL_SOURCE__LAST);
$soap_enum_value = "lbt__${soap_en}${soap_fn}__${upper_cn}";
gen "\tcase $enum_value: $target = $soap_enum_value; break;\n"
}
+ if (not $e eq '_common_') {
+ gen "\tcase EDG_WLL_${upper_en}_UNDEFINED: assert(0);\n";
+ }
gen "\tdefault: assert(0);\n";
gen "\t};\n";
gen "}\n";
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;
+ case EDG_WLL_SOURCE_LB_SERVER: *out = LBServer; break;
+ case EDG_WLL_SOURCE_NONE:
+ case EDG_WLL_SOURCE__LAST:
+ default:
+ assert(0);
}
}
}
@@@}
default:
- break;
+ return 0;
}
return 1;
*out = events;
return SOAP_OK;
}
-