From f582a4367d6a6f3806de078f98a5246d14ca2d85 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20Posp=C3=AD=C5=A1il?= Date: Wed, 22 Dec 2004 14:26:30 +0000 Subject: [PATCH] edg_wll_RegisterJobProxy() now functional, an example of usage given --- org.glite.lb.client/examples/job_reg.c | 53 +++++++++++++++++++++++++--------- org.glite.lb.client/src/producer.c | 14 ++++++--- org.glite.lb.common/src/param.c | 5 ++++ 3 files changed, 54 insertions(+), 18 deletions(-) diff --git a/org.glite.lb.client/examples/job_reg.c b/org.glite.lb.client/examples/job_reg.c index 2106786..338b3db 100644 --- a/org.glite.lb.client/examples/job_reg.c +++ b/org.glite.lb.client/examples/job_reg.c @@ -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); } diff --git a/org.glite.lb.client/src/producer.c b/org.glite.lb.client/src/producer.c index b459910..2cfc0fd 100644 --- a/org.glite.lb.client/src/producer.c +++ b/org.glite.lb.client/src/producer.c @@ -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( diff --git a/org.glite.lb.common/src/param.c b/org.glite.lb.common/src/param.c index f4a6df0..f1e9ab5 100644 --- a/org.glite.lb.common/src/param.c +++ b/org.glite.lb.common/src/param.c @@ -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; -- 1.8.2.3