"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);
}
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;
}
/* 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;
}
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);
}