edg_wll_RegisterJobProxy() now functional, an example of usage given
authorJan Pospíšil <honik@ntc.zcu.cz>
Wed, 22 Dec 2004 14:26:30 +0000 (14:26 +0000)
committerJan Pospíšil <honik@ntc.zcu.cz>
Wed, 22 Dec 2004 14:26:30 +0000 (14:26 +0000)
org.glite.lb.client/examples/job_reg.c
org.glite.lb.client/src/producer.c
org.glite.lb.common/src/param.c

index 2106786..338b3db 100644 (file)
@@ -13,14 +13,15 @@ extern int opterr,optind;
 
 static void usage(char *me)
 {
-       fprintf(stderr,"usage: %s [-m bkserver] [-j dg_jobid] [-s source_id] [-n num_subjobs [-S]]\n", me);
+       fprintf(stderr,"usage: %s [-m bkserver] [-x lbproxy_user] [-j dg_jobid] [-s source_id] [-n num_subjobs [-S]]\n", me);
 }
 
 int main(int argc, char *argv[])
 {
-       char               *src = NULL,*job = NULL,*server = NULL,*seq;
-       int                             done = 0,num_subjobs = 0,i;
-       int                             reg_subjobs = 0;
+       char *src = NULL,*job = NULL,*server = NULL,*seq;
+       char *lbproxy = NULL;
+       int  done = 0,num_subjobs = 0,i;
+       int  reg_subjobs = 0;
        edg_wll_Context ctx;
        edg_wlc_JobId   jobid,*subjobs;
 
@@ -29,7 +30,8 @@ int main(int argc, char *argv[])
        opterr = 0;
 
        do {
-               switch (getopt(argc,argv,"Sj:s:n:m:")) {
+               switch (getopt(argc,argv,"x:s:j:m:n:S")) {
+                       case 'x': lbproxy = (char *) strdup(optarg); break;
                        case 's': src = (char *) strdup(optarg); break;
                        case 'j': job = (char *) strdup(optarg); break;
                        case 'm': server = strdup(optarg); break;
@@ -63,15 +65,33 @@ int main(int argc, char *argv[])
        }
 
        edg_wll_SetParam(ctx,EDG_WLL_PARAM_SOURCE,edg_wll_StringToSource(src));
-       if (edg_wll_RegisterJobSync(ctx,jobid,
-               num_subjobs?EDG_WLL_REGJOB_DAG:EDG_WLL_REGJOB_SIMPLE,
-               "blabla", "NNNSSSS",
-               num_subjobs,NULL,&subjobs))
-       {
-               char    *et,*ed;
-               edg_wll_Error(ctx,&et,&ed);
-               fprintf(stderr,"edg_wll_RegisterJobSync(%s): %s (%s)\n",job,et,ed);
-               exit(1);
+       if (lbproxy) {
+               /*
+               fprintf(stderr,"EDG_WL_LBPROXY_STORE_SOCK = %s\n", ctx->p_lbproxy_store_sock);
+               fprintf(stderr,"EDG_WL_LBPROXY_SERVE_SOCK = %s\n", ctx->p_lbproxy_serve_sock);
+               */
+               if (edg_wll_RegisterJobProxy(ctx,jobid,
+                       num_subjobs?EDG_WLL_REGJOB_DAG:EDG_WLL_REGJOB_SIMPLE,
+                       lbproxy,
+                       "blabla", "NNNSSSS",
+                       num_subjobs,NULL,&subjobs))
+               {
+                       char    *et,*ed;
+                       edg_wll_Error(ctx,&et,&ed);
+                       fprintf(stderr,"edg_wll_RegisterJobProxy(%s): %s (%s)\n",job,et,ed);
+                       exit(1);
+               }
+       } else {
+               if (edg_wll_RegisterJobSync(ctx,jobid,
+                       num_subjobs?EDG_WLL_REGJOB_DAG:EDG_WLL_REGJOB_SIMPLE,
+                       "blabla", "NNNSSSS",
+                       num_subjobs,NULL,&subjobs))
+               {
+                       char    *et,*ed;
+                       edg_wll_Error(ctx,&et,&ed);
+                       fprintf(stderr,"edg_wll_RegisterJobSync(%s): %s (%s)\n",job,et,ed);
+                       exit(1);
+               }
        }
 
        seq = edg_wll_GetSequenceCode(ctx);
@@ -89,6 +109,11 @@ int main(int argc, char *argv[])
        if (reg_subjobs) {
                char ** jdls = (char**) malloc(num_subjobs*sizeof(char*));
 
+               if (lbproxy) {
+                       fprintf(stderr,"edg_wll_RegisterSubjobsProxy(): not implemented yet.\n");
+                       exit(1);
+               }
+
                for (i=0; subjobs[i]; i++) {
                        asprintf(jdls+i, "JDL of subjob #%d\n", i+1);
                }
index b459910..2cfc0fd 100644 (file)
@@ -730,7 +730,7 @@ int edg_wll_SetLoggingJobProxy(
        edg_wll_SetParamString(context, EDG_WLL_PARAM_LBPROXY_USER, user);
 
        /* query LBProxyServer for sequence code if not user-suplied */
-/* FIXME: doesn't work yet
+/* FIXME: doesn't work yet */
        if (!code) {
                edg_wll_QuerySequenceCodeProxy(context, job, &code_loc);
                goto edg_wll_setloggingjobproxy_end;    
@@ -738,7 +738,7 @@ int edg_wll_SetLoggingJobProxy(
                code_loc = strdup(code);
        }
        
-       if (!edg_wll_SetSequenceCode(context,code_loc,flags)) */ {
+       if (!edg_wll_SetSequenceCode(context,code_loc,flags)) {
                edg_wll_IncSequenceCode(context);
        }
        
@@ -824,7 +824,7 @@ static int edg_wll_RegisterJobMasterProxy(
        free(seq);
 
        type_s = edg_wll_RegJobJobtypeToString(type);
-       if (!type_s) return edg_wll_SetError(context,EINVAL,"edg_wll_RegisterJobMaster(): no jobtype specified");
+       if (!type_s) return edg_wll_SetError(context,EINVAL,"edg_wll_RegisterJobMasterProxy(): no jobtype specified");
 
        if ((type == EDG_WLL_REGJOB_DAG || type == EDG_WLL_REGJOB_PARTITIONED)
                && num_subjobs > 0) 
@@ -919,7 +919,13 @@ int edg_wll_RegisterJobProxy(
         const char *            seed,
         edg_wlc_JobId **        subjobs)
 {
-       return edg_wll_RegisterJobMasterProxy(context,job,type,user,jdl,ns, NULL, num_subjobs,seed,subjobs);
+       int ret = edg_wll_RegisterJobSync(context,job,type,jdl,ns,num_subjobs,seed,subjobs);
+       if (ret) {
+               edg_wll_UpdateError(context,0,"edg_wll_RegisterJobProxy(): unable to register with bkserver");
+               return edg_wll_Error(context,NULL,NULL);
+       }
+
+       return edg_wll_RegisterJobMasterProxy(context,job,type,user,jdl,ns,NULL,num_subjobs,seed,subjobs);
 }
 
 int edg_wll_ChangeACL(
index f4a6df0..f1e9ab5 100644 (file)
@@ -144,14 +144,19 @@ int edg_wll_SetParamString(edg_wll_Context ctx,edg_wll_ContextParam param,const
                        ctx->p_query_server_override = !strcasecmp(val,"yes");
                        break;
                case EDG_WLL_PARAM_LBPROXY_STORE_SOCK:      
+                       if (!val) val = getenv(myenv[param]);
+                       if (!val) val = "/tmp/lb_proxy_store.sock";
                        free(ctx->p_lbproxy_store_sock);
                        ctx->p_lbproxy_store_sock = val ? strdup(val): NULL;
                        break;
                case EDG_WLL_PARAM_LBPROXY_SERVE_SOCK:      
+                       if (!val) val = getenv(myenv[param]);
+                       if (!val) val = "/tmp/lb_proxy_serve.sock";
                        free(ctx->p_lbproxy_serve_sock);
                        ctx->p_lbproxy_serve_sock = val ? strdup(val): NULL;
                        break;
                case EDG_WLL_PARAM_LBPROXY_USER:
+                       if (!val) val = getenv(myenv[param]);
                        free(ctx->p_user_lbproxy);
                        ctx->p_user_lbproxy = val ? strdup(val) : NULL;
                        break;