From: František Dvořák Date: Thu, 30 Jun 2005 13:29:30 +0000 (+0000) Subject: Examples updates. X-Git-Tag: Root_glite-deployment-lb_branch_2_0_0~9 X-Git-Url: http://scientific.zcu.cz/git/?a=commitdiff_plain;h=2ad4b159cd1b1a1ed617f20f1c86247beaea5f34;p=jra1mw.git Examples updates. Workaround error description, if none returned. One fix for query jobs (other fix will be needed). Removed some warnings. --- diff --git a/org.glite.lb.server/examples/ws_getversion.c b/org.glite.lb.server/examples/ws_getversion.c index 906056d..6396650 100644 --- a/org.glite.lb.server/examples/ws_getversion.c +++ b/org.glite.lb.server/examples/ws_getversion.c @@ -25,13 +25,14 @@ static void usage(char *me) int main(int argc,char** argv) { - edg_wll_Context ctx; - glite_gsplugin_Context gsplugin_ctx; - struct soap soap; - struct _lbe__GetVersionResponse out; - int opt, err; - char *server = "http://localhost:8999/", - *name = NULL; + edg_wll_Context ctx; + glite_gsplugin_Context gsplugin_ctx; + struct soap soap; + struct _lbe__GetVersion in; + struct _lbe__GetVersionResponse out; + int opt, err; + char *server = "http://localhost:9003/", + *name = NULL; name = strrchr(argv[0],'/'); @@ -55,13 +56,24 @@ int main(int argc,char** argv) return 1; } - glite_gsplugin_set_udata(&soap, gsplugin_ctx); - - switch (err = soap_call___lb__GetVersion(&soap, server, "", NULL, &out)) +/* memset(&in, 0, sizeof(in));*/ + memset(&out, 0, sizeof(out)); + switch (err = soap_call___lb__GetVersion(&soap, server, "", &in, &out)) { case SOAP_OK: printf("Server version: %s\n", out.version); break; case SOAP_FAULT: - default: printf("???, err=%d\n", err); + case SOAP_SVR_FAULT: + { + char *et,*ed; + + edg_wll_FaultToErr(&soap,ctx); + edg_wll_Error(ctx,&et,&ed); + fprintf(stderr,"%s: %s (%s)\n",argv[0],et,ed); + exit(1); + } + default: + printf("???, err=%d\n", err); + soap_print_fault(&soap, stderr); } soap_done(&soap); diff --git a/org.glite.lb.server/examples/ws_query_ex.c b/org.glite.lb.server/examples/ws_query_ex.c index 05b829f..7208cc3 100644 --- a/org.glite.lb.server/examples/ws_query_ex.c +++ b/org.glite.lb.server/examples/ws_query_ex.c @@ -5,7 +5,7 @@ #include "glite/lb/consumer.h" #include "bk_ws_H.h" - +#include "ws_fault.h" #include "ws_typeref.h" #include "LoggingAndBookkeeping.nsmap" @@ -28,17 +28,15 @@ static void printstat(edg_wll_JobStat stat, int level); int main(int argc,char** argv) { - edg_wll_Context ctx; - glite_gsplugin_Context gsplugin_ctx; - edg_wll_QueryRec **conditions = NULL; - struct soap *soap = soap_new(); - struct edgwll__QueryConditions *jconds = NULL; - struct edgwll__JobStatFlags flags; - struct edgwll2__QueryJobsResponse out; - int opt, err; - char *server = "http://localhost:8999/", - *name = NULL; - + edg_wll_Context ctx; + glite_gsplugin_Context gsplugin_ctx; + edg_wll_QueryRec **conditions = NULL; + struct soap *soap = soap_new(); + struct _lbe__QueryJobs *qjobs = NULL; + struct _lbe__QueryJobsResponse out; + int opt, err; + char *server = "http://localhost:9003/", + *name = NULL; name = strrchr(argv[0],'/'); if (name) name++; else name = argv[0]; @@ -50,8 +48,8 @@ int main(int argc,char** argv) case '?': usage(name); return 1; } - edg_wll_InitContext(&ctx); - glite_gsplugin_init_context(&gsplugin_ctx); + edg_wll_InitContext(&ctx); + glite_gsplugin_init_context(&gsplugin_ctx); if ( soap_register_plugin_arg(soap, glite_gsplugin, (void *)gsplugin_ctx) ) { @@ -73,8 +71,12 @@ int main(int argc,char** argv) conditions[1][0].op = EDG_WLL_QUERY_OP_EQUAL; conditions[1][0].value.c = NULL; - if ( edg_wll_QueryCondsExtToSoap(soap, (const edg_wll_QueryRec **)conditions, &jconds) - || edg_wll_JobStatFlagsToSoap(soap, 0, &flags) ) { + qjobs = soap_malloc(soap, sizeof(*qjobs)); + memset(qjobs, 0, sizeof(*qjobs)); + qjobs->flags = soap_malloc(soap, sizeof(*qjobs->flags)); + memset(qjobs->flags, 0, sizeof(*qjobs->flags)); + if (!qjobs->flags || edg_wll_QueryCondsExtToSoap(soap, (const edg_wll_QueryRec **)conditions, &qjobs->__sizeconditions, &qjobs->conditions) + || edg_wll_JobStatFlagsToSoap(soap, 0, qjobs->flags) ) { char *et,*ed; fprintf(stderr, "%s: soap types conversion error...\n", argv[0]); @@ -84,16 +86,16 @@ int main(int argc,char** argv) exit(1); } - err = soap_call_edgwll2__QueryJobs(soap, server, "", jconds, &flags, &out); + err = soap_call___lb__QueryJobs(soap, server, "", qjobs, &out); switch ( err ) { case SOAP_OK: { int i; printf("Query succesfull...\n"); printf("%-65s%s\n\n", "jobid", "state"); - for ( i = 0; i < out.jobs->__sizejobs; i++ ) { - char *s = edg_wll_StatToString(out.states->states[i]->state); - printf("%-65s%s\n", out.jobs->jobs[i], s); + for ( i = 0; i < out.__sizejobs; i++ ) { + char *s = edg_wll_StatToString(out.states[i]->state); + printf("%-65s%s\n", out.jobs[i], s); free(s); } } diff --git a/org.glite.lb.server/src/ws_fault.c b/org.glite.lb.server/src/ws_fault.c index e36fa56..90bb132 100644 --- a/org.glite.lb.server/src/ws_fault.c +++ b/org.glite.lb.server/src/ws_fault.c @@ -21,9 +21,11 @@ void edg_wll_ErrToFault(const edg_wll_Context ctx,struct soap *soap) f->lbe__genericFault->text = soap_malloc(soap,strlen(et)+1); strcpy(f->lbe__genericFault->text,et); free(et); - f->lbe__genericFault->description = soap_malloc(soap,strlen(ed)+1); - strcpy(f->lbe__genericFault->description,ed); - free(ed); + if (ed) { + f->lbe__genericFault->description = soap_malloc(soap,strlen(ed)+1); + strcpy(f->lbe__genericFault->description,ed); + free(ed); + } detail->__type = SOAP_TYPE__genericFault; #if GSOAP_VERSION >= 20700 diff --git a/org.glite.lb.server/src/ws_query.c b/org.glite.lb.server/src/ws_query.c index 32df2a1..814f0ad 100644 --- a/org.glite.lb.server/src/ws_query.c +++ b/org.glite.lb.server/src/ws_query.c @@ -39,6 +39,7 @@ SOAP_FMAC5 int SOAP_FMAC6 __lb__GetVersion( return out->version ? SOAP_OK : SOAP_FAULT; } + SOAP_FMAC5 int SOAP_FMAC6 __lb__JobStatus( struct soap *soap, struct _lbe__JobStatus *in, @@ -70,6 +71,7 @@ SOAP_FMAC5 int SOAP_FMAC6 __lb__JobStatus( return SOAP_OK; } + SOAP_FMAC5 int SOAP_FMAC6 __lb__QueryJobs( struct soap *soap, struct _lbe__QueryJobs *in, @@ -92,7 +94,7 @@ SOAP_FMAC5 int SOAP_FMAC6 __lb__QueryJobs( ret = SOAP_FAULT; edg_wll_ResetError(ctx); - if ( edg_wll_SoapToQueryCondsExt(*in->conditions, in->__sizeconditions, &conditions) ) { + if ( edg_wll_SoapToQueryCondsExt(in->conditions, in->__sizeconditions, &conditions) ) { edg_wll_SetError(ctx, ENOMEM, "Couldn't create internal structures"); goto cleanup; } diff --git a/org.glite.lb.server/test/test_query_events.cpp b/org.glite.lb.server/test/test_query_events.cpp index bf356f4..4277872 100644 --- a/org.glite.lb.server/test/test_query_events.cpp +++ b/org.glite.lb.server/test/test_query_events.cpp @@ -127,11 +127,13 @@ void edg_wll_FreeStmt(edg_wll_Stmt *) {} int debug; -int edg_wll_QueryColumns(edg_wll_Stmt stmt, char**cols) {} -char *edg_wll_TimeToDB(long t) {} +int edg_wll_QueryColumns(edg_wll_Stmt stmt, char**cols) { return 0; } +char *edg_wll_TimeToDB(long t) { return NULL; } -time_t edg_wll_DBToTime(char *c) {} -edg_wll_ErrorCode edg_wll_DBConnect(edg_wll_Context ctx, char*str) {} +time_t edg_wll_DBToTime(char *c) { return (time_t)-1; } +edg_wll_ErrorCode edg_wll_DBConnect(edg_wll_Context ctx, char*str) { + return (edg_wll_ErrorCode)0; +}