Examples updates.
authorFrantišek Dvořák <valtri@civ.zcu.cz>
Thu, 30 Jun 2005 13:29:30 +0000 (13:29 +0000)
committerFrantišek Dvořák <valtri@civ.zcu.cz>
Thu, 30 Jun 2005 13:29:30 +0000 (13:29 +0000)
Workaround error description, if none returned.
One fix for query jobs (other fix will be needed).
Removed some warnings.

org.glite.lb.server/examples/ws_getversion.c
org.glite.lb.server/examples/ws_query_ex.c
org.glite.lb.server/src/ws_fault.c
org.glite.lb.server/src/ws_query.c
org.glite.lb.server/test/test_query_events.cpp

index 906056d..6396650 100644 (file)
@@ -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);
index 05b829f..7208cc3 100644 (file)
@@ -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);
                }
                }
index e36fa56..90bb132 100644 (file)
@@ -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
index 32df2a1..814f0ad 100644 (file)
@@ -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;
        }
index bf356f4..4277872 100644 (file)
@@ -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;
+}