- compile with -rdynamic
authorJan Pospíšil <honik@ntc.zcu.cz>
Sun, 23 Oct 2005 01:36:40 +0000 (01:36 +0000)
committerJan Pospíšil <honik@ntc.zcu.cz>
Sun, 23 Oct 2005 01:36:40 +0000 (01:36 +0000)
- change the binary name to glite-lb-statistics
- strictly distinguish between stdout and stderr,
verbose debug info goes to stderr, output XML to stdout

org.glite.lb.utils/Makefile
org.glite.lb.utils/src/lb_statistics.c

index c51d057..c99910c 100644 (file)
@@ -85,10 +85,10 @@ STATISTICS_OBJS:=lb_statistics.o
 
 default all: compile
 
-compile: glite_lb_statistics
+compile: glite-lb-statistics
 
-glite_lb_statistics: ${STATISTICS_OBJS}
-       ${LINK} -o $@ ${STATISTICS_OBJS} ${JP_LIBS} ${EXT_LIBS} ${GLOBUS_LIBS}
+glite-lb-statistics: ${STATISTICS_OBJS}
+       ${LINK} -rdynamic -o $@ ${STATISTICS_OBJS} ${JP_LIBS} ${EXT_LIBS} ${GLOBUS_LIBS}
 
 check: compile 
 
@@ -119,7 +119,7 @@ install:
        -mkdir -p ${PREFIX}/bin 
        -mkdir -p ${PREFIX}/share/doc/${package}-${version}
        -mkdir -p ${PREFIX}/lib
-       ${INSTALL} -m 755 glite_lb_statistics ${PREFIX}/bin
+       ${INSTALL} -m 755 glite-lb-statistics ${PREFIX}/bin
        ${INSTALL} -m 644 ${top_srcdir}/LICENSE ${PREFIX}/share/doc/${package}-${version}
 
        if [ x${DOSTAGE} != xyes ]; then \
index fdf6dea..22fbac8 100644 (file)
@@ -48,8 +48,8 @@ usage(char *program_name) {
                 "Usage: %s [option]\n"
                 "-h, --help                 display this help and exit\n"
                 "-V, --version              output version information and exit\n"
-                "-v, --verbose              print extensive debug output\n"
-                "-f, --file <file>          port to listen\n\n",
+                "-v, --verbose              print extensive debug output to stderr\n"
+                "-f, --file <file>          dump file to process\n\n",
                 program_name);
 }
 
@@ -72,7 +72,7 @@ int glite_jppsbe_pread(glite_jp_context_t ctx, void *handle, void *buf, size_t n
 
 
 int glite_jp_stack_error(glite_jp_context_t ctx, const glite_jp_error_t *jperror) {
-       printf("JP backend error %d: %s\n", jperror->code, jperror->desc);
+       fprintf(stderr,"lb_statistics: JP backend error %d: %s\n", jperror->code, jperror->desc);
        return 0;
 }
 
@@ -131,19 +131,19 @@ int main(int argc, char *argv[])
        /* load L&B plugin and its 'init' symbol */
        if ((lib_handle = dlopen("glite_lb_plugin.so", RTLD_LAZY)) == NULL) {
                err = dlerror() ? :"unknown error";
-               printf("can't load L&B plugin (%s)\n", err);
+               fprintf(stderr,"lb_statistics: can't load L&B plugin (%s)\n", err);
                return 1;
        }
        if ((plugin_init = dlsym(lib_handle, "init")) == NULL ||
            (plugin_done = dlsym(lib_handle, "done")) == NULL) {
-               err = dlerror() ? :"unknown error";
-               printf("can't find symbol 'init' or 'done' (%s)\n", err);
+               err = dlerror() ? : "unknown error";
+               fprintf(stderr,"lb_statistics: can't find symbol 'init' or 'done' (%s)\n", err);
                goto err;
        }
 
        /* dump file with events */
        if ((f = fopen(file, "rt")) == NULL) {
-               printf("Error: %s\n", strerror(errno));
+               fprintf(stderr,"lb_statistics: Error: %s\n", strerror(errno));
                goto err;
        }
 
@@ -153,159 +153,159 @@ int main(int argc, char *argv[])
 
        if (data_handle) {
                /* header */
-               printf("<?xml version=\"1.0\"?>");
-               printf("<lbd:jobRecord");
-               printf("\txmlns:lbd=\"http://glite.org/wsdl/types/lbdump\"\n");
+               fprintf(stdout,"<?xml version=\"1.0\"?>\n\n");
+               fprintf(stdout,"<lbd:jobRecord\n");
+               fprintf(stdout,"\txmlns:lbd=\"http://glite.org/wsdl/types/lbdump\"\n");
                
-               /* jobid */
                plugin_data.ops.attr(jpctx, data_handle, GLITE_JP_ATTR_JOBID, &attrval);
                if (attrval) {
-                       printf("\tjobid=\"%s\"\n>\n", attrval->value);
+                       fprintf(stdout,"\tjobid=\"%s\"\n", attrval->value);
                        free_attrs(attrval);
                } else {
-                       printf("\tjobid=\"default\"\n>\n");
+                       fprintf(stdout,"\tjobid=\"default\"\n");
                }
-               printf(">\n");
+               fprintf(stdout,">\n");
+               /* /header */
                
                plugin_data.ops.attr(jpctx, data_handle, GLITE_JP_ATTR_OWNER, &attrval);
                if (attrval) {
-                       printf("\t<user>%s</user>\n", attrval->value);
+                       fprintf(stdout,"\t<user>%s</user>\n", attrval->value);
                        free_attrs(attrval);
                }
 
                plugin_data.ops.attr(jpctx, data_handle, GLITE_JP_LB_aTag, &attrval);
                if (attrval) {
-                       printf("\t<aTag>%s</aTag>\n", attrval->value);
+                       fprintf(stdout,"\t<aTag>%s</aTag>\n", attrval->value);
                        free_attrs(attrval);
                }
 
                plugin_data.ops.attr(jpctx, data_handle, GLITE_JP_LB_rQType, &attrval);
                if (attrval) {
-                       printf("\t<rQType>%s</rQType>\n", ctime(&attrval->timestamp));
+                       fprintf(stdout,"\t<rQType>%s</rQType>\n", ctime(&attrval->timestamp));
                        free_attrs(attrval);
                }
 
                plugin_data.ops.attr(jpctx, data_handle, GLITE_JP_LB_eDuration, &attrval);
                if (attrval) {
-                       printf("\t<eDuration>%s</eDuration>\n", attrval->value);
+                       fprintf(stdout,"\t<eDuration>%s</eDuration>\n", attrval->value);
                        free_attrs(attrval);
                }
 
                plugin_data.ops.attr(jpctx, data_handle, GLITE_JP_LB_eNodes, &attrval);
                if (attrval) {
-                       printf("\t<eNodes>%s</eNodes>\n", attrval->value);
+                       fprintf(stdout,"\t<eNodes>%s</eNodes>\n", attrval->value);
                        free_attrs(attrval);
                }
 
                plugin_data.ops.attr(jpctx, data_handle, GLITE_JP_LB_eProc, &attrval);
                if (attrval) {
-                       printf("\t<eProc>%s</eProc>\n", attrval->value);
+                       fprintf(stdout,"\t<eProc>%s</eProc>\n", attrval->value);
                        free_attrs(attrval);
                }
 
                plugin_data.ops.attr(jpctx, data_handle, GLITE_JP_LB_RB, &attrval);
                if (attrval) {
-                       printf("\t<RB>%s</RB>\n", attrval->value);
+                       fprintf(stdout,"\t<RB>%s</RB>\n", attrval->value);
                        free_attrs(attrval);
                }
 
                plugin_data.ops.attr(jpctx, data_handle, GLITE_JP_LB_CE, &attrval);
                if (attrval) {
-                       printf("\t<CE>%s</CE>\n", attrval->value);
+                       fprintf(stdout,"\t<CE>%s</CE>\n", attrval->value);
                        free_attrs(attrval);
                }
 
                plugin_data.ops.attr(jpctx, data_handle, GLITE_JP_LB_host, &attrval);
                if (attrval) {
-                       printf("\t<host>%s</host>\n", attrval->value);
+                       fprintf(stdout,"\t<host>%s</host>\n", attrval->value);
                        free_attrs(attrval);
                }
 
                plugin_data.ops.attr(jpctx, data_handle, GLITE_JP_LB_UIHost, &attrval);
                if (attrval) {
-                       printf("\t<UIHost>%s</UIHost>\n", attrval->value);
+                       fprintf(stdout,"\t<UIHost>%s</UIHost>\n", attrval->value);
                        free_attrs(attrval);
                }
 
                plugin_data.ops.attr(jpctx, data_handle, GLITE_JP_LB_CPUTime, &attrval);
                if (attrval) {
-                       printf("\t<CPUTime>%s</CPUTime>\n", attrval->value);
+                       fprintf(stdout,"\t<CPUTime>%s</CPUTime>\n", attrval->value);
                        free_attrs(attrval);
                }
 
                plugin_data.ops.attr(jpctx, data_handle, GLITE_JP_LB_NProc, &attrval);
                if (attrval) {
-                       printf("\t<NProc>%s</NProc>\n", attrval->value);
+                       fprintf(stdout,"\t<NProc>%s</NProc>\n", attrval->value);
                        free_attrs(attrval);
                }
 
                plugin_data.ops.attr(jpctx, data_handle, GLITE_JP_LB_finalStatus, &attrval);
                if (attrval) {
-                       printf("\t<finalStatus>%s</finalStatus>\n", attrval->value);
+                       fprintf(stdout,"\t<finalStatus>%s</finalStatus>\n", attrval->value);
                        free_attrs(attrval);
                }
 
                plugin_data.ops.attr(jpctx, data_handle, GLITE_JP_LB_finalStatusDate, &attrval);
                if (attrval) {
-                       printf("\t<finalStatusDate>%s</finalStatusDate>\n", attrval->value);
+                       fprintf(stdout,"\t<finalStatusDate>%s</finalStatusDate>\n", attrval->value);
                        free_attrs(attrval);
                }
 
                plugin_data.ops.attr(jpctx, data_handle, GLITE_JP_LB_finalStatusReason, &attrval);
                if (attrval) {
-                       printf("\t<finalStatusReason>%s</finalStatusReason>\n", attrval->value);
+                       fprintf(stdout,"\t<finalStatusReason>%s</finalStatusReason>\n", attrval->value);
                        free_attrs(attrval);
                }
 
                plugin_data.ops.attr(jpctx, data_handle, GLITE_JP_LB_LRMSDoneStatus, &attrval);
                if (attrval) {
-                       printf("\t<LRMSDoneStatus>%s</LRMSDoneStatus>\n", attrval->value);
+                       fprintf(stdout,"\t<LRMSDoneStatus>%s</LRMSDoneStatus>\n", attrval->value);
                        free_attrs(attrval);
                }
 
                plugin_data.ops.attr(jpctx, data_handle, GLITE_JP_LB_LRMSStatusReason, &attrval);
                if (attrval) {
-                       printf("\t<LRMSStatusReason>%s</LRMSStatusReason>\n", attrval->value);
+                       fprintf(stdout,"\t<LRMSStatusReason>%s</LRMSStatusReason>\n", attrval->value);
                        free_attrs(attrval);
                }
 
                plugin_data.ops.attr(jpctx, data_handle, GLITE_JP_LB_retryCount, &attrval);
                if (attrval) {
-                       printf("\t<retryCount>%s</retryCount>\n", attrval->value);
+                       fprintf(stdout,"\t<retryCount>%s</retryCount>\n", attrval->value);
                        free_attrs(attrval);
                }
 
                plugin_data.ops.attr(jpctx, data_handle, GLITE_JP_LB_additionalReason, &attrval);
                if (attrval) {
-                       printf("\t<additionalReason>%s</additionalReason>\n", attrval->value);
+                       fprintf(stdout,"\t<additionalReason>%s</additionalReason>\n", attrval->value);
                        free_attrs(attrval);
                }
 
                plugin_data.ops.attr(jpctx, data_handle, GLITE_JP_LB_jobType, &attrval);
                if (attrval) {
-                       printf("\t<jobType>%s</jobType>\n", attrval->value);
+                       fprintf(stdout,"\t<jobType>%s</jobType>\n", attrval->value);
                        free_attrs(attrval);
                }
 
                plugin_data.ops.attr(jpctx, data_handle, GLITE_JP_LB_nsubjobs, &attrval);
                if (attrval) {
-                       printf("\t<nsubjobs>%s</nsubjobs>\n", attrval->value);
+                       fprintf(stdout,"\t<nsubjobs>%s</nsubjobs>\n", attrval->value);
                        free_attrs(attrval);
                }
 
                plugin_data.ops.attr(jpctx, data_handle, GLITE_JP_LB_lastStatusHistory, &attrval);
                if (attrval) {
-                       printf("\t<lastStatusHistory>%s</lastStatusHistory>\n", attrval->value);
+                       fprintf(stdout,"\t<lastStatusHistory>%s</lastStatusHistory>\n", attrval->value);
                        free_attrs(attrval);
                }
 
                plugin_data.ops.attr(jpctx, data_handle, GLITE_JP_LB_fullStatusHistory, &attrval);
                if (attrval) {
-                       printf("\t<fullStatusHistory>%s</fullStatusHistory>\n", attrval->value);
+                       fprintf(stdout,"\t<fullStatusHistory>%s</fullStatusHistory>\n", attrval->value);
                        free_attrs(attrval);
                }
 
-               printf("</lbd:jobRecord>\n");
+               fprintf(stdout,"</lbd:jobRecord>\n");
 
                plugin_data.ops.close(jpctx, data_handle);
        }