static void printsummary (void) { char localTimeStrBegin[60]; char localTimeStrEnd[60]; char *buf1, *buf2, *buf3, *buf4, *buf5; if (tottasks == 0) return; strcpy (localTimeStrBegin, _i18n_ctime (ls_catd, 1, &actual_start.begin)); strcpy (localTimeStrEnd, _i18n_ctime (ls_catd, 1, &actual_start.end)); printf (_i18n_msg_get (ls_catd, NL_SETN, 1231, "Summary of %d task(s). (Exit status zero: %d; exit status non-zero: %d).\n"), /* catgets 1231 */ tottasks, totstatz, totstatnz); sprintf (printline, _i18n_msg_get (ls_catd, NL_SETN, 1232, "Started between %s and %s"), /* catgets 1232 */ localTimeStrBegin, localTimeStrEnd); printf ("%s", printline); strcpy (localTimeStrBegin, _i18n_ctime (ls_catd, 1, &actual_complete.begin)); strcpy (localTimeStrEnd, _i18n_ctime (ls_catd, 1, &actual_complete.end)); sprintf (printline, _i18n_msg_get (ls_catd, NL_SETN, 1234, "Completed between %s and %s"), /* catgets 1234 */ localTimeStrBegin, localTimeStrEnd); printf ("%s\n", printline); buf1 = putstr_ (_i18n_msg_get (ls_catd, NL_SETN, 1236, "Resource")); /* catgets 1236 */ buf2 = putstr_ (_i18n_msg_get (ls_catd, NL_SETN, 1237, "Total")); /* catgets 1237 */ buf3 = putstr_ (_i18n_msg_get (ls_catd, NL_SETN, 1238, "Average")); /* catgets 1238 */ buf4 = putstr_ (_i18n_msg_get (ls_catd, NL_SETN, 1239, "Maximum")); /* catgets 1239 */ buf5 = putstr_ (_i18n_msg_get (ls_catd, NL_SETN, 1240, "Minimum")); /* catgets 1240 */ printf (" %-30s%12s%12s%12s%12s\n", buf1, buf2, buf3, buf4, buf5); FREEUP (buf1); FREEUP (buf2); FREEUP (buf3); FREEUP (buf4); FREEUP (buf5); printresuse (cpu, _i18n_msg_get (ls_catd, NL_SETN, 1241, "CPU time (seconds):")); /* catgets 1241 */ printresuse (pf, _i18n_msg_get (ls_catd, NL_SETN, 1242, "Page faults:")); /* catgets 1242 */ printresuse (swaps, _i18n_msg_get (ls_catd, NL_SETN, 1243, "Swaps:")); /* catgets 1243 */ printresuse (bin, _i18n_msg_get (ls_catd, NL_SETN, 1244, "Block input:")); /* catgets 1244 */ printresuse (bout, _i18n_msg_get (ls_catd, NL_SETN, 1245, "Block output:")); /* catgets 1245 */ printresuse (msgs, _i18n_msg_get (ls_catd, NL_SETN, 1246, "Messages sent:")); /* catgets 1246 */ printresuse (msgr, _i18n_msg_get (ls_catd, NL_SETN, 1247, "Messages received:")); /* catgets 1247 */ printresuse (vcsw, _i18n_msg_get (ls_catd, NL_SETN, 1248, "Voluntary context switches:")); /* catgets 1248 */ printresuse (ivcsw, _i18n_msg_get (ls_catd, NL_SETN, 1249, "Involuntary context switches:")); /* catgets 1249 */ printresuse (turn, _i18n_msg_get (ls_catd, NL_SETN, 1250, "Turnaround time (seconds):")); /* catgets 1250 */ }
void prtJobSubmit(struct jobInfoEnt *job, int prt_q, int tFormat) { char prline[MAXLINELEN]; char *timestr; timestr = putstr_(_i18n_ctime(ls_catd, CTIME_FORMAT_a_b_d_T, &job->submitTime)); if (tFormat) { sprintf(prline, (_i18n_msg_get(ls_catd,NL_SETN,569, "%s: Job <%s> submitted from host <%s>")), /* catgets 569 */ timestr, lsb_jobid2str(job->jobId), job->fromHost); } else { sprintf(prline, (_i18n_msg_get(ls_catd,NL_SETN,570, "%s: Submitted from host <%s>")), /* catgets 570 */ timestr, job->fromHost); } FREEUP(timestr); prtLine(prline); if (job->submit.options2 & SUB2_HOLD) { sprintf(prline, (_i18n_msg_get(ls_catd,NL_SETN,570, " with hold"))); /* catgets 570 */ prtLine(prline); } if (prt_q) { sprintf(prline, (_i18n_msg_get(ls_catd,NL_SETN,571, ", to Queue <%s>")), job->submit.queue); /* catgets 571 */ prtLine(prline); } TIMEIT(2, prtBTTime(job), "prtBTTime"); }
void prtJobReserv(struct jobInfoEnt *job) { char prline[MAXLINELEN]; int i = 0; NAMELIST *hostList = NULL; if (lsbParams[LSB_SHORT_HOSTLIST].paramValue && job->numExHosts > 1 && strcmp(lsbParams[LSB_SHORT_HOSTLIST].paramValue, "1") == 0) { hostList = lsb_compressStrList(job->exHosts, job->numExHosts); if (!hostList) { exit(99); } } if (job->numExHosts > 0 && job->reserveTime > 0) { if (job->numExHosts > 1) sprintf(prline, (_i18n_msg_get(ls_catd,NL_SETN,618, "%s: Reserved <%d> job slots on host(s)")), /* catgets 618 */ _i18n_ctime(ls_catd, CTIME_FORMAT_a_b_d_T, &job->reserveTime), job->numExHosts); else sprintf(prline, (_i18n_msg_get(ls_catd,NL_SETN,619, "%s: Reserved <%d> job slot on host")), /* catgets 619 */ _i18n_ctime(ls_catd, CTIME_FORMAT_a_b_d_T, &job->reserveTime), job->numExHosts); prtLine(prline); if (lsbParams[LSB_SHORT_HOSTLIST].paramValue && job->numExHosts > 1 && strcmp(lsbParams[LSB_SHORT_HOSTLIST].paramValue, "1") == 0) { for (i = 0; i < hostList->listSize; i++) { sprintf(prline, " <%d*%s>", hostList->counter[i], hostList->names[i]); prtLine(prline); } } else { for (i = 0; i < job->numExHosts; i++) { sprintf(prline, " <%s>", job->exHosts[i]); prtLine(prline); } } } }
void prtBETime(struct submit req) { char sp[60]; if (logclass & (LC_TRACE | LC_EXEC | LC_SCHED)) ls_syslog(LOG_DEBUG1, "%s: Entering this routine...", __func__); if (req.beginTime) { strcpy( sp, _i18n_ctime( ls_catd, CTIME_FORMAT_a_b_d_T_Y, &req.beginTime )); fprintf(stderr, "%s %s\n", (_i18n_msg_get(ls_catd,NL_SETN,1556, "Job will be scheduled after")), sp); /* catgets 1556 */ } if (req.termTime) { strcpy( sp, _i18n_ctime( ls_catd, CTIME_FORMAT_a_b_d_T_Y, &req.termTime )); fprintf(stderr, "%s %s\n", (_i18n_msg_get(ls_catd,NL_SETN,1557, "Job will be terminated by")), sp); /* catgets 1557 */ } }
void prtAcctFinish(struct jobInfoEnt *job) { char prline[MAXLINELEN]; if (job->status == JOB_STAT_DONE) sprintf(prline, "%s: %s.\n", _i18n_ctime(ls_catd, CTIME_FORMAT_a_b_d_T, &job->endTime), I18N(620, "Completed <done>")); /* catgets 620 */ else if (job->status == JOB_STAT_EXIT) sprintf(prline, "%s: %s.\n", _i18n_ctime(ls_catd, CTIME_FORMAT_a_b_d_T, &job->endTime), I18N(621, "Completed <exit>")); /* catgets 621 */ else sprintf(prline, "%s: %s.\n", _i18n_ctime(ls_catd, CTIME_FORMAT_a_b_d_T, &job->endTime), I18N(622, "sbatchd unavail <zombi>")); /* catgets 622 */ prtLineWUF(prline); }
void prtBETime2(struct submit req) { static char fname[] = "prtBETime"; char sp[60]; if (logclass & (LC_TRACE | LC_EXEC | LC_SCHED)) ls_syslog(LOG_DEBUG1, "%s: Entering this routine...", fname); if (req.beginTime) { strcpy( sp, _i18n_ctime( ls_catd, CTIME_FORMAT_a_b_d_T_Y, &req.beginTime )); fprintf(stderr, (_i18n_msg_get(ls_catd,NL_SETN,800, "Job will be scheduled after %s\n")), sp); /* catgets 800 */ } if (req.termTime) { strcpy( sp, _i18n_ctime( ls_catd, CTIME_FORMAT_a_b_d_T_Y, &req.termTime )); fprintf(stderr, (_i18n_msg_get(ls_catd,NL_SETN,801 , "Job will be terminated by %s\n")), sp); /* catgets 801 */ } }
void prtBTTime(struct jobInfoEnt *job) { char prline[MAXLINELEN]; if (job->submit.beginTime > 0) { sprintf(prline, ", %s <%s>", I18N(572, "Specified Start Time"), _i18n_ctime(ls_catd, CTIME_FORMAT_a_b_d_T, (time_t *)&(job->submit.beginTime))); prtLine(prline); } if (job->submit.termTime > 0) { sprintf(prline, ", %s <%s>", I18N(573, "Specified Termination Time"), _i18n_ctime(ls_catd, CTIME_FORMAT_a_b_d_T, (time_t *)&(job->submit.termTime))); prtLine(prline); } }
void displayLong(struct jobInfoEnt *job, struct jobInfoHead *jInfoH, float cpuFactor) { char *hostPtr, *sp; char hostName[MAXHOSTNAMELEN]; float hostFactor, *getFactor; static int first = TRUE; static struct lsInfo *lsInfo; char prline[MAXLINELEN]; if (first) { first = FALSE; TIMEIT(0, (lsInfo = ls_info()), "ls_info"); if (lsInfo == NULL) { ls_perror("ls_info"); exit(-1); } } prtHeader(job, TRUE, FALSE); prtJobSubmit(job, FALSE, FALSE); TIMEIT(1, prtFileNames(job, TRUE), "prtFileNames"); hostPtr = job->submit.hostSpec; hostFactor = 1.0; if (job->numExHosts > 0 && (strcmp (job->exHosts[0], LOST_AND_FOUND) != 0) && !IS_PEND (job->status)) { strcpy (hostName, job->exHosts[0]); if ((sp = strstr (hostName, "@")) != NULL) { *sp = '\0'; if (strcmp(hostName, hostPtr) == 0) { if ((getFactor=getCpuFactor(hostName, TRUE)) == NULL) { prtLine("\n"); fprintf(stderr, (_i18n_msg_get(ls_catd,NL_SETN,1451, "Cannot obtain execution host information: %s\n")), ls_errmsg[lserrno]); exit(-1); } else { hostFactor = *getFactor; hostPtr = job->exHosts[0]; } } } } TIMEIT(1, prtSubDetails(job, hostPtr, hostFactor), "prtSubDetails"); if (job->numExHosts > 0 && job->reserveTime > 0) { TIMEIT(1, prtJobReserv(job), "prtJobReserv"); sprintf(prline, ";\n"); prtLine(prline); } if (job->predictedStartTime && IS_PEND(job->status)) { char localTimeStr[60]; strcpy ( localTimeStr, _i18n_ctime(ls_catd, CTIME_FORMAT_a_b_d_T, &job->predictedStartTime)); sprintf(prline, (_i18n_msg_get(ls_catd,NL_SETN,1466, "%s: Will be started;\n")), /* catgets 1466 */ localTimeStr ); prtLine(prline); } if (job->startTime && !IS_PEND(job->status)) { TIMEIT(1, prtJobStart(job, BJOBS_PRINT, job->jobPid, FALSE), "prtJobStart"); } if ((cpuFactor > 0.0) && (job->cpuTime > 0)) job->cpuTime = job->cpuTime * hostFactor / cpuFactor; if (job->jType == JGRP_NODE_ARRAY) { printf("\n %s:\n", _i18n_msg_get(ls_catd,NL_SETN,1467, "COUNTERS")); /* catgets 1467 */ printf( (_i18n_msg_get(ls_catd,NL_SETN,1468, " NJOBS PEND DONE RUN EXIT SSUSP USUSP PSUSP\n"))); /* catgets 1468 */ printf(" %5d %4d %3d %4d %4d %5d %5d %5d\n", job->counter[JGRP_COUNT_NJOBS], job->counter[JGRP_COUNT_PEND], job->counter[JGRP_COUNT_NDONE], job->counter[JGRP_COUNT_NRUN], job->counter[JGRP_COUNT_NEXIT], job->counter[JGRP_COUNT_NSSUSP], job->counter[JGRP_COUNT_NUSUSP], job->counter[JGRP_COUNT_NPSUSP]); return; } TIMEIT(1, prtJobFinish(job, jInfoH), "prtJobFinish"); if (lsbMode_ & LSB_MODE_BATCH) { sprintf(prline, "\n %s:\n", _i18n_msg_get(ls_catd,NL_SETN,1469, "SCHEDULING PARAMETERS")); /* catgets 1469 */ prtLine(prline); if (printThresholds (job->loadSched, job->loadStop, NULL, NULL, job->nIdx, lsInfo) < 0) exit (-1); } return; }
void prtJobRusage(struct jobInfoEnt *job) { char prline[MAXLINELEN]; int i, j; int linepos; if (IS_FINISH(job->status)) return; if (IS_PEND(job->status)) { if (job->runRusage.utime || job->runRusage.stime) { if (uf_format) printf ("%s: Resource usage collected. The CPU time used is %d seconds.", _i18n_ctime(ls_catd, CTIME_FORMAT_a_b_d_T, &job->jRusageUpdateTime), job->runRusage.utime + job->runRusage.stime); else { sprintf(prline, "%s: %s.\n", _i18n_ctime(ls_catd, CTIME_FORMAT_a_b_d_T, &job->jRusageUpdateTime), I18N(644, "Resource usage collected")); /* catgets 644 */ prtLine(prline); sprintf(prline, (_i18n_msg_get(ls_catd,NL_SETN,645, " The CPU time used is %d seconds.\n")), /* catgets 645 */ job->runRusage.utime + job->runRusage.stime); prtLine(prline); } } return; }; if (job->runRusage.utime > 0 || job->runRusage.stime > 0 || job->runRusage.mem > 0 || job->runRusage.swap > 0 || job->runRusage.npgids > 0 || job->runRusage.npids > 0) { if (uf_format) printf ("%s: Resource usage collected.", _i18n_ctime(ls_catd, CTIME_FORMAT_a_b_d_T, &job->jRusageUpdateTime)); else { sprintf(prline, "%s: %s.\n", _i18n_ctime(ls_catd, CTIME_FORMAT_a_b_d_T, &job->jRusageUpdateTime), I18N(646, "Resource usage collected")); /* catgets 646 */ prtLine(prline); } } else return; if (job->runRusage.utime > 0 || job->runRusage.stime > 0) { if (uf_format) printf (" The CPU time used is %d seconds.", job->runRusage.utime + job->runRusage.stime); else { sprintf(prline, (_i18n_msg_get(ls_catd,NL_SETN,647, " The CPU time used is %d seconds.\n")), /* catgets 647 */ job->runRusage.utime + job->runRusage.stime); prtLine(prline); } } if (job->runRusage.mem > 0) { if (uf_format) { if (job->runRusage.mem > 1024) printf(" MEM: %d Mbytes;", job->runRusage.mem/1024); else printf(" MEM: %d Kbytes;", job->runRusage.mem); } else { if (job->runRusage.mem > 1024) sprintf(prline, (_i18n_msg_get(ls_catd,NL_SETN,648, " MEM: %d Mbytes")), job->runRusage.mem/1024); /* catgets 648 */ else sprintf(prline, (_i18n_msg_get(ls_catd,NL_SETN,649, " MEM: %d Kbytes")), job->runRusage.mem); /* catgets 649 */ prtLine(prline); } } if (job->runRusage.swap > 0) { char *space; if (job->runRusage.mem > 0) space = "; "; else space = " "; if (uf_format) { if (job->runRusage.swap > 1024) printf(" SWAP: %d Mbytes;", job->runRusage.swap/1024); else printf(" SWAP: %d Kbytes;", job->runRusage.swap); } else { if (job->runRusage.swap > 1024) sprintf(prline, (_i18n_msg_get(ls_catd,NL_SETN,650, "%sSWAP: %d Mbytes\n")), space, /* catgets 650 */ job->runRusage.swap/1024); else sprintf(prline, (_i18n_msg_get(ls_catd,NL_SETN,651, "%sSWAP: %d Kbytes\n")), space, job->runRusage.swap); /* catgets 651 */ prtLine(prline); } } else { if (job->runRusage.mem > 0 && !uf_format) { sprintf(prline, "\n"); prtLine(prline); } } if (job->runRusage.npgids <= 0) return; for (i=0; i < job->runRusage.npgids; i++) { if (uf_format) printf (" PGID: %d; ", job->runRusage.pgid[i]); else { sprintf(prline, (_i18n_msg_get(ls_catd,NL_SETN,652, " PGID: %d; ")), job->runRusage.pgid[i]); /* catgets 652 */ linepos = strlen(prline); prtLine(prline); } sprintf(prline, (_i18n_msg_get(ls_catd,NL_SETN,653, "PIDs: "))); /* catgets 653 */ linepos += 6; prtLineWUF(prline); for (j=0; j < job->runRusage.npids; j++) { if (job->runRusage.pgid[i] == job->runRusage.pidInfo[j].pgid) { sprintf(prline, "%d ", job->runRusage.pidInfo[j].pid); if (uf_format) printf ("%d%s", job->runRusage.pidInfo[j].pid, j==job->runRusage.npids-1?"":" "); else { linepos += strlen(prline); if (linepos >= 80) { char *newline ="\n "; prtLine(newline); prtLine(prline); linepos = strlen(prline) + 21; } else prtLine(prline); } } } if (uf_format) printf(";"); else { sprintf(prline, "\n"); prtLine(prline); } } sprintf(prline, "\n"); prtLineWUF(prline); if (uf_format && job->runRusage.mem > 0) { printf ("\n MEMORY USAGE:\n"); printf (" MAX MEM: N/A MBytes; AVG MEM: N/A MBytes\n"); } }
void prtJobFinish(struct jobInfoEnt *job, struct jobInfoHead *jInfoH) { char prline[MSGSIZE]; time_t doneTime; static struct loadIndexLog *loadIndex = NULL; char *pendReasons; if (loadIndex == NULL) TIMEIT(1, loadIndex = initLoadIndex(), "initLoadIndex"); doneTime = job->endTime; switch (job->status) { case JOB_STAT_DONE: case (JOB_STAT_DONE | JOB_STAT_PDONE): case (JOB_STAT_DONE | JOB_STAT_PERR): if ((job->startTime < job->submitTime) && (job->endTime < (job->submitTime + (time_t) MAX(job->cpuTime, MIN_CPU_TIME)))) { doneTime = job->submitTime + (time_t) MAX(job->cpuTime, 0.0001); } else if (job->startTime >= job->submitTime && job->endTime < (job->startTime + (time_t)MAX(job->cpuTime, 0.0001)) && job->numExHosts == 1) { doneTime = job->startTime + (time_t) MAX(job->cpuTime, 0.0001); if (job->endTime <= doneTime) { doneTime = job->endTime; } } case (JOB_STAT_EXIT | JOB_STAT_PDONE): case (JOB_STAT_EXIT | JOB_STAT_PERR): case JOB_STAT_EXIT: if (job->reasons & EXIT_ZOMBIE) { sprintf(prline, "%s: ", _i18n_ctime(ls_catd, CTIME_FORMAT_a_b_d_T, &job->endTime)); prtLineWUF(prline); sprintf(prline, (_i18n_msg_get(ls_catd,NL_SETN,623, "Termination request issued; the job will be killed once the host is ok;"))); /* catgets 623 */ prtLineWUF(prline); break; } sprintf(prline, "%s: ", _i18n_ctime(ls_catd, CTIME_FORMAT_a_b_d_T, &doneTime)); prtLineWUF(prline); if (strcmp(get_status(job), "DONE") == 0) { sprintf(prline, I18N(624, "Done successfully.")); /* catgets 624 */ } else { LS_WAIT_T wStatus; LS_STATUS(wStatus) = job->exitStatus; if (job->cpuTime >= MIN_CPU_TIME && job->exitStatus) { if (WEXITSTATUS(wStatus)) sprintf(prline, (_i18n_msg_get(ls_catd,NL_SETN,626, "Exited with exit code %d.")), /* catgets 626 */ WEXITSTATUS(wStatus)); else sprintf(prline, (_i18n_msg_get(ls_catd,NL_SETN,627, "Exited by signal %d.")), WTERMSIG(wStatus)); /* catgets 627 */ } else sprintf(prline, I18N_Exited); } prtLineWUF(prline); if (job->numExHosts > 0) { if (job->cpuTime < MIN_CPU_TIME) sprintf(prline, (_i18n_msg_get(ls_catd,NL_SETN,629, " The CPU time used is unknown.\n"))); /* catgets 629 */ else sprintf(prline, (_i18n_msg_get(ls_catd,NL_SETN,630, " The CPU time used is %1.1f seconds.\n")), /* catgets 630 */ job->cpuTime); } else { sprintf(prline, "\n"); } prtLineWUF(prline); break; case JOB_STAT_PSUSP: case JOB_STAT_PEND: sprintf(prline, (_i18n_msg_get(ls_catd,NL_SETN,631, " PENDING REASONS:\n"))); /* catgets 631 */ prtLineWUF(prline); pendReasons = lsb_pendreason(job->numReasons, job->reasonTb, jInfoH, loadIndex); prtLineWUF(pendReasons); break; case JOB_STAT_SSUSP: case JOB_STAT_USUSP: TIMEIT(1, prtJobRusage(job), "prtJobRusage"); sprintf(prline, (_i18n_msg_get(ls_catd,NL_SETN,632, " SUSPENDING REASONS:\n"))); /* catgets 632 */ prtLineWUF(prline); if (job->reasons) { sprintf(prline, "%s", lsb_suspreason(job->reasons, job->subreasons, loadIndex)); prtLineWUF(prline); } break; case JOB_STAT_RUN: TIMEIT(1, prtJobRusage(job), "prtJobRusage"); break; default: break; } }
void prtJobStart(struct jobInfoEnt *job, int prtFlag, int jobPid, int tFormat) { char prline[MAXLINELEN], tBuff[20]; time_t startTime; int i = 0; struct nameList *hostList = NULL; if (lsbParams[LSB_SHORT_HOSTLIST].paramValue && job->numExHosts > 1 && strcmp(lsbParams[LSB_SHORT_HOSTLIST].paramValue, "1") == 0) { hostList = lsb_compressStrList(job->exHosts, job->numExHosts); if (!hostList) { exit(99); } } if (tFormat) { sprintf (tBuff, "%s <%s>", I18N_Job, lsb_jobid2str(job->jobId)); } else if (LSB_ARRAY_IDX(job->jobId) > 0 ) sprintf (tBuff, " [%d]", LSB_ARRAY_IDX(job->jobId)); else tBuff[0] = '\0'; if (job->startTime && job->numExHosts) { if (job->startTime < job->submitTime) startTime = job->submitTime; else startTime = job->startTime; if ((job->submit.options & SUB_PRE_EXEC) && (prtFlag != BJOBS_PRINT)) { if (prtFlag == BHIST_PRINT_PRE_EXEC) { if (tBuff[0] == '\0') sprintf(prline, "%s: %s", _i18n_ctime(ls_catd, CTIME_FORMAT_a_b_d_T, &startTime), I18N(604, "The pre-exec command is started on")); /* catgets 604 */ else sprintf(prline, "%s:%s, %s", _i18n_ctime(ls_catd, CTIME_FORMAT_a_b_d_T, &startTime), tBuff, I18N(605, "the pre-exec command is started on")); /* catgets 605 */ } else { if (tBuff[0] == '\0') sprintf(prline, "%s: %s", _i18n_ctime(ls_catd, CTIME_FORMAT_a_b_d_T, &startTime), I18N(606, "The batch job command is started on")); /*catgets 606 */ else sprintf(prline, "%s:%s, %s", _i18n_ctime(ls_catd, CTIME_FORMAT_a_b_d_T, &startTime), tBuff, I18N(607, "the batch job command is started on")); /*catgets 607 */ } } else { if (jobPid > 0) { if (tBuff[0] == '\0') sprintf(prline, "%s: %s", _i18n_ctime(ls_catd, CTIME_FORMAT_a_b_d_T, &startTime), I18N(608, "Started on")); /* catgets 608 */ else sprintf(prline, "%s:%s %s", _i18n_ctime(ls_catd, CTIME_FORMAT_a_b_d_T, &startTime), tBuff, I18N(609, "started on")); /* catgets 609 */ } else { if (tBuff[0] == '\0') sprintf(prline, "%s: %s", _i18n_ctime(ls_catd, CTIME_FORMAT_a_b_d_T, &startTime), I18N(610, "Dispatched to")); /* catgets 610 */ else sprintf(prline, "%s: %s %s", _i18n_ctime(ls_catd, CTIME_FORMAT_a_b_d_T, &startTime), tBuff, I18N(611, "dispatched to")); /* catgets 611 */ } } prtLineWUF(prline); if (job->numExHosts > 1) { sprintf(prline, " %d %s", job->numExHosts, I18N(612, "Hosts/Processors")); /* catgets 612 */ prtLineWUF(prline); } if (lsbParams[LSB_SHORT_HOSTLIST].paramValue && job->numExHosts > 1 && strcmp(lsbParams[LSB_SHORT_HOSTLIST].paramValue, "1") == 0) { for (i = 0; i < hostList->listSize; i++) { sprintf(prline, " <%d*%s>", hostList->counter[i], hostList->names[i]); prtLineWUF(prline); } } else { for (i = 0; i < job->numExHosts; i++) { sprintf(prline, " <%s>", job->exHosts[i]); prtLineWUF(prline); } } if (job->execHome && strcmp (job->execHome, "")) { sprintf(prline, ", %s <%s>", I18N(615, "Execution Home"), /* catgets 615 */ job->execHome); prtLineWUF(prline); } if (job->execCwd && strcmp (job->execCwd, "")) { sprintf(prline, ", %s <%s>", I18N(616, "Execution CWD"), /* catgets 616 */ job->execCwd); prtLineWUF(prline); } if (job->execUsername && strcmp(job->execUsername, "") && strcmp(job->user, job->execUsername)) { sprintf(prline, ", %s <%s>", I18N(617, "Execution user name"), /* catgets 617 */ job->execUsername); prtLineWUF(prline); } sprintf(prline, ";\n"); prtLineWUF(prline); } }
static void printacctrec (const struct lsfAcctRec *acctrec) { char *buf1, *buf2, *buf3, *buf4, *buf5; sprintf (printline, "%s", _i18n_ctime (ls_catd, 1, &acctrec->dispTime)); sprintf (printline + strlen (printline), _i18n_msg_get (ls_catd, NL_SETN, 1216, ": %s@%s executed pid %d on %s."), /* catgets 1216 */ acctrec->username, acctrec->fromHost, acctrec->pid, acctrec->execHost); printf ("%s\n", printline); printf (" %s: %s\n", _i18n_msg_get (ls_catd, NL_SETN, 1217, "Command"), /* catgets 1217 */ acctrec->cmdln); printf (" %s: %s\n", _i18n_msg_get (ls_catd, NL_SETN, 1218, "CWD"), /* catgets 1218 */ acctrec->cwd); sprintf (printline, "%s", _i18n_ctime (ls_catd, 1, &acctrec->termTime)); sprintf (printline + strlen (printline), _i18n_msg_get (ls_catd, NL_SETN, 1219, ": Completed, exit status = %d."), /* catgets 1219 */ acctrec->exitStatus); printf ("%s\n\n", printline); printf ("%s:\n\n", _i18n_msg_get (ls_catd, NL_SETN, 1220, "Accounting information")); /* catgets 1220 */ buf1 = putstr_ (_i18n_msg_get (ls_catd, NL_SETN, 1221, "CPU time")); /* catgets 1221 */ buf2 = putstr_ (_i18n_msg_get (ls_catd, NL_SETN, 1222, "Page faults")); /* catgets 1222 */ buf3 = putstr_ (_i18n_msg_get (ls_catd, NL_SETN, 1223, "Swaps")); /* catgets 1223 */ buf4 = putstr_ (_i18n_msg_get (ls_catd, NL_SETN, 1224, "Blocks in")); /* catgets 1224 */ buf5 = putstr_ (_i18n_msg_get (ls_catd, NL_SETN, 1225, "Blocks out")); /* catgets 1225 */ printf ("%16.16s%16.16s%16.16s%16.16s%16.16s\n", buf1, buf2, buf3, buf4, buf5); FREEUP (buf1); FREEUP (buf2); FREEUP (buf3); FREEUP (buf4); FREEUP (buf5); if (acctrec->lsfRu.ru_stime >= 0) printf ("%16.1f", acctrec->lsfRu.ru_utime + acctrec->lsfRu.ru_stime); else printf ("%16s", "-"); if (acctrec->lsfRu.ru_majflt >= 0) printf ("%16.0f", acctrec->lsfRu.ru_majflt); else printf ("%16s", "-"); if (acctrec->lsfRu.ru_nswap >= 0) printf ("%16.0f", acctrec->lsfRu.ru_nswap); else printf ("%16s", "-"); if (acctrec->lsfRu.ru_inblock >= 0) printf ("%16.0f", acctrec->lsfRu.ru_inblock); else printf ("%16s", "-"); if (acctrec->lsfRu.ru_oublock >= 0) printf ("%16.0f\n\n", acctrec->lsfRu.ru_oublock); else printf ("%16s\n\n", "-"); buf1 = putstr_ (_i18n_msg_get (ls_catd, NL_SETN, 1226, "Messages sent")); /* catgets 1226 */ buf2 = putstr_ (_i18n_msg_get (ls_catd, NL_SETN, 1227, "Messages rcvd")); /* catgets 1227 */ buf3 = putstr_ (_i18n_msg_get (ls_catd, NL_SETN, 1228, "Vol cont sw")); /* catgets 1228 */ buf4 = putstr_ (_i18n_msg_get (ls_catd, NL_SETN, 1229, "Invol cont sw")); /* catgets 1229 */ buf5 = putstr_ (_i18n_msg_get (ls_catd, NL_SETN, 1230, "Turnaround")); /* catgets 1230 */ printf ("%16.16s%16.16s%16.16s%16.16s%16.16s\n", buf1, buf2, buf3, buf4, buf5); FREEUP (buf1); FREEUP (buf2); FREEUP (buf3); FREEUP (buf4); FREEUP (buf5); if (acctrec->lsfRu.ru_msgsnd >= 0) printf ("%16.0f", acctrec->lsfRu.ru_msgsnd); else printf ("%16s", "-"); if (acctrec->lsfRu.ru_msgrcv >= 0) printf ("%16.0f", acctrec->lsfRu.ru_msgrcv); else printf ("%16s", "-"); if (acctrec->lsfRu.ru_nvcsw >= 0) printf ("%16.0f", acctrec->lsfRu.ru_nvcsw); else printf ("%16s", "-"); if (acctrec->lsfRu.ru_nivcsw >= 0) printf ("%16.0f", acctrec->lsfRu.ru_nivcsw); else printf ("%16s", "-"); printf ("%16.1f\n", (double) difftime (acctrec->termTime, acctrec->dispTime)); printf ("%s\n\n", dashed_line); }
static void printheader (void) { int i; char localTimeStrStart[50]; char localTimeStrEnd[50]; printf (_i18n_msg_get (ls_catd, NL_SETN, 1202, "Accounting information in %s about commands\n"), /* catgets 1202 */ logfile); printf (" - %s", I18N (1203, "executed by user(s)")); /* catgets 1203 */ if (users[0] == NULL) printf (" %s", I18N (1212, "all")); else for (i = 0; users[i]; i++) printf (" %s", users[i]); printf ("\n"); printf (" - %s", I18N (1204, "executed on host(s)")); /* catgets 1204 */ if (hosts[0] == NULL) printf (" %s", I18N (1212, "all")); else for (i = 0; hosts[i]; i++) printf (" %s", hosts[i]); printf ("\n"); if (start.begin == eternity.begin && start.end == eternity.end) printf (" - %s", I18N (1205, "started any time")); /* catgets 1205 */ else { strcpy (localTimeStrStart, _i18n_ctime (ls_catd, 1, &start.begin)); strcpy (localTimeStrEnd, _i18n_ctime (ls_catd, 1, &start.end)); sprintf (printline, I18N (1206, " - started between %s and %s"), /* catgets 1206 */ localTimeStrStart, localTimeStrEnd); printf ("%s", printline); } printf ("\n"); if (complete.begin == eternity.begin && complete.end == eternity.end) printf (" - %s", I18N (1208, "completed any time")); /* catgets 1208 */ else { strcpy (localTimeStrStart, _i18n_ctime (ls_catd, 1, &complete.begin)); strcpy (localTimeStrEnd, _i18n_ctime (ls_catd, 1, &complete.end)); sprintf (printline, I18N (1209, " - completed between %s and %s"), /* catgets 1209 */ localTimeStrStart, localTimeStrEnd); printf ("%s", printline); } printf ("\n"); printf (_i18n_msg_get (ls_catd, NL_SETN, 1211, " - with pid(s)")); /* catgets 1211 */ if (pids[0] == 0) printf (" %s", I18N (1212, "all")); /* catgets 1212 */ else for (i = 0; pids[i]; i++) printf (" %d", pids[i]); printf ("\n"); printf ("%s\n\n", dashed_line); }
void displayEvent(struct eventRec *log, struct histReq *req) { char prline[MSGSIZE]; char localTimeStr[60]; char *fName; fName = putstr_ ("displayEvent"); if (req->eventTime[1] != 0 && req->eventTime[0] < req->eventTime[1]) { if (log->eventTime < req->eventTime[0] || log->eventTime > req->eventTime[1]) return; } switch (log->type) { case EVENT_LOG_SWITCH: if (req->opCode == MBD_HIST || req->opCode == SYS_HIST) { eventMatched = TRUE; strcpy ( localTimeStr, _i18n_ctime(ls_catd,CTIME_FORMAT_a_b_d_T, &log->eventTime )); sprintf(prline, (_i18n_msg_get(ls_catd,NL_SETN,1055, "%s: event file is switched; last JobId <%d>\n")), /* catgets 1055 */ localTimeStr, log->eventLog.logSwitchLog.lastJobId); prtLine(prline); } break; case EVENT_MBD_START: if (req->opCode == MBD_HIST || req->opCode == SYS_HIST) { strcpy ( localTimeStr, _i18n_ctime(ls_catd,CTIME_FORMAT_a_b_d_T, &log->eventTime )); eventMatched = TRUE; sprintf(prline, (_i18n_msg_get(ls_catd,NL_SETN,1056, "%s: mbatchd started on host <%s>; cluster name <%s>, %d server hosts, %d queues.\n")), /* catgets 1056 */ localTimeStr, log->eventLog.mbdStartLog.master, log->eventLog.mbdStartLog.cluster, log->eventLog.mbdStartLog.numHosts, log->eventLog.mbdStartLog.numQueues); prtLine(prline); } break; case EVENT_MBD_DIE: if (req->opCode == MBD_HIST || req->opCode == SYS_HIST) { eventMatched = TRUE; strcpy ( localTimeStr, _i18n_ctime(ls_catd,CTIME_FORMAT_a_b_d_T, &log->eventTime )); sprintf(prline, (_i18n_msg_get(ls_catd,NL_SETN,1057, "%s: mbatchd on host <%s> died: ")), /* catgets 1057 */ localTimeStr, log->eventLog.mbdStartLog.master); prtLine(prline); switch (log->eventLog.mbdDieLog.exitCode) { case MASTER_RESIGN: sprintf(prline, (_i18n_msg_get(ls_catd,NL_SETN,1058, "master resigned.\n"))); /* catgets 1058 */ break; case MASTER_RECONFIG: sprintf(prline, (_i18n_msg_get(ls_catd,NL_SETN,1059, "reconfiguration initiated.\n"))); /* catgets 1059 */ break; case MASTER_FATAL: sprintf(prline, (_i18n_msg_get(ls_catd,NL_SETN,1060, "fatal errors.\n"))); /* catgets 1060 */ break; case MASTER_MEM: sprintf(prline, (_i18n_msg_get(ls_catd,NL_SETN,1060, "fatal memory errors.\n"))); /* catgets 1061 */ break; case MASTER_CONF: sprintf(prline, (_i18n_msg_get(ls_catd,NL_SETN,1062, "bad configuration file.\n"))); /* catgets 1062 */ break; default: sprintf(prline, (_i18n_msg_get(ls_catd,NL_SETN,1063, "killed by signal <%d>.\n")), /* catgets 1063 */ log->eventLog.mbdDieLog.exitCode); break; } prtLine(prline); } break; case EVENT_QUEUE_CTRL: if ((req->opCode == SYS_HIST) || (req->opCode == QUEUE_HIST && isRequested(log->eventLog.queueCtrlLog.queue, req->names))) { strcpy ( localTimeStr, _i18n_ctime(ls_catd,CTIME_FORMAT_a_b_d_T, &log->eventTime )); eventMatched = TRUE; sprintf(prline, "%s: %s <%s> ", localTimeStr, I18N_Queue, log->eventLog.queueCtrlLog.queue); prtLine(prline); switch (log->eventLog.queueCtrlLog.opCode) { case QUEUE_OPEN: sprintf(prline, I18N_opened); break; case QUEUE_CLOSED: sprintf(prline, I18N_closed); break; case QUEUE_ACTIVATE: sprintf(prline, I18N_activated); break; case QUEUE_INACTIVATE: sprintf(prline, I18N_inactivated); break; default: sprintf(prline, "%s <%d>", I18N(1069, "unknown operation code"),/* catgets 1069 */ log->eventLog.queueCtrlLog.opCode); break; } prtLine(prline); if (log->eventLog.queueCtrlLog.userName && log->eventLog.queueCtrlLog.userName[0]) sprintf(prline, (_i18n_msg_get(ls_catd,NL_SETN,1070, " by user or administrator <%s>.\n")), log->eventLog.queueCtrlLog.userName); /* catgets 1070 */ else sprintf(prline, ".\n"); prtLine(prline); } break; case EVENT_HOST_CTRL: if ((req->opCode == SYS_HIST) || (req->opCode == HOST_HIST && isRequested(log->eventLog.hostCtrlLog.host, req->names))) { eventMatched = TRUE; strcpy ( localTimeStr, _i18n_ctime(ls_catd,CTIME_FORMAT_a_b_d_T, &log->eventTime )); sprintf(prline, "%s: %s <%s> ", localTimeStr, I18N_Host, log->eventLog.hostCtrlLog.host); prtLine(prline); switch (log->eventLog.hostCtrlLog.opCode) { case HOST_OPEN: sprintf(prline, (_i18n_msg_get(ls_catd,NL_SETN,1072, "opened"))); /* catgets 1072 */ break; case HOST_CLOSE: sprintf(prline, (_i18n_msg_get(ls_catd,NL_SETN,1073, "closed"))); /* catgets 1073 */ break; case HOST_REBOOT: sprintf(prline, (_i18n_msg_get(ls_catd,NL_SETN,1074, "rebooted"))); /* catgets 1074 */ break; case HOST_SHUTDOWN: sprintf(prline, (_i18n_msg_get(ls_catd,NL_SETN,1075, "shutdown"))); /* catgets 1075 */ break; default: sprintf(prline, "%s <%d>", I18N(1069, "unknown operation code"),/* catgets 1069 */ log->eventLog.hostCtrlLog.opCode); break; } prtLine(prline); if (log->eventLog.hostCtrlLog.userName && log->eventLog.hostCtrlLog.userName[0]) sprintf(prline, (_i18n_msg_get(ls_catd,NL_SETN,1077, " by administrator <%s>.\n")), log->eventLog.hostCtrlLog.userName); /* catgets 1077 */ else sprintf(prline, ".\n"); prtLine(prline); } break; default: break; } }