4898794edd81be5285ea6e544acbedeaeb31bf78 max Tue Nov 23 08:10:57 2021 -0800 Fixing pointers to README file for license in all source code files. refs #27614 diff --git src/hg/cirm/cdw/cdwJob/cdwJob.c src/hg/cirm/cdw/cdwJob/cdwJob.c index f9de9cd..ad186d6 100644 --- src/hg/cirm/cdw/cdwJob/cdwJob.c +++ src/hg/cirm/cdw/cdwJob/cdwJob.c @@ -1,159 +1,159 @@ /* cdwJob - Look at a cdwJob format table and report what's up, optionally do something about it.. */ /* Copyright (C) 2013 The Regents of the University of California - * See README in this or parent directory for licensing information. */ + * See kent/LICENSE or http://genome.ucsc.edu/license/ for licensing information. */ #include "common.h" #include "linefile.h" #include "hash.h" #include "options.h" #include "cdw.h" #include "cdwLib.h" char *clDatabase = NULL; char *clTable = "cdwJob"; void usage() /* Explain usage and exit. */ { errAbort( "cdwJob - Look at a cdwJob format table and report what's up, optionally do something about it.\n" "usage:\n" " cdwJob command\n" "Where commands are:\n" " status - report overall status\n" " count - just count table size\n" " failed - list failed jobs\n" " running - list running jobs\n" " finished - list finished (but not failed) jobs\n" "options:\n" " -database=<mysql database> default %s\n" " -table=<mysql table> default %s\n" , cdwDatabase, clTable ); } /* Command line validation table. */ static struct optionSpec options[] = { {"database", OPTION_STRING}, {"table", OPTION_STRING}, {NULL, 0}, }; void statusCommand(struct sqlConnection *conn) /* Handle status command. */ { char query[512]; sqlSafef(query, sizeof(query), "select * from %s ", clTable); struct cdwJob *list = cdwJobLoadByQuery(conn, query); printf("database %s\n", clDatabase); printf("table %s\n", clTable); /* Declare list of stats we want to gather from list. */ long long count = 0; // Number of rows in table. long long successes = 0; // Number of successful runs long long failures = 0; // Number of failed runs long long waiting = 0; // Number of jobs waiting to be started long long running = 0; // Number of jobs currently running /* Loop through whole list gathering stats. */ struct cdwJob *job; for (job = list; job != NULL; job = job->next) { count += 1; if (job->startTime == 0) ++waiting; else if (job->returnCode != 0) ++failures; else if (job->endTime == 0) ++running; else ++successes; } /* Print out stats. */ printf("count %lld\n", count); printf("successes %lld\n", successes); printf("failures %lld\n", failures); printf("waiting %lld\n", waiting); printf("running %lld\n", running); } void countCommand(struct sqlConnection *conn) /* Handle status command. */ { char query[512]; sqlSafef(query, sizeof(query), "select count(*) from %s ", clTable); printf("%d\n", sqlQuickNum(conn, query)); } void listJobCommand(struct sqlConnection *conn, char *command) /* Handle some list oriented command command. */ { char query[512]; if (sameString(command, "failed")) sqlSafef(query, sizeof(query), "select * from %s where returnCode != 0 order by id", clTable); else if (sameString(command, "running")) sqlSafef(query, sizeof(query), "select * from %s where startTime > 0 and endTime = 0" "and returnCode = 0 order by id", clTable); else if (sameString(command, "finished")) sqlSafef(query, sizeof(query), "select * from %s where returnCode = 0 and endTime > 0 order by id", clTable); else if (sameString(command, "waiting")) sqlSafef(query, sizeof(query), "select * from %s where startTime = 0 order by id", clTable); else errAbort("Unrecognized command %s", command); struct cdwJob *list = cdwJobLoadByQuery(conn, query); struct cdwJob *job; long long now = cdwNow(); printf("#time\tcode\tstart\tend\tcommandLine\n"); for (job = list; job != NULL; job = job->next) { int duration = 0; if (job->endTime > job->startTime) duration = job->endTime - job->startTime; else if (job->startTime > 0) duration = now - job->startTime; printf("%d\t%d\t%lld\t%lld\t%s\n", duration, job->returnCode, job->startTime, job->endTime, job->commandLine); } } void cdwJob(char *command) /* cdwJob - Look at a cdwJob format table and report what's up, optionally do something about it.. */ { struct sqlConnection *conn = sqlConnect(clDatabase); if (sameString(command, "status")) { statusCommand(conn); } else if (sameString(command, "count")) { countCommand(conn); } else if (sameString(command, "failed") || sameString(command, "running") || sameString(command, "finished") || sameString(command, "waiting") ) { listJobCommand(conn, command); } else { errAbort("Unknown cdwJob command %s", command); } } int main(int argc, char *argv[]) /* Process command line. */ { optionInit(&argc, argv, options); if (argc != 2) usage(); clDatabase = optionVal("database", cdwDatabase); clTable = optionVal("table", clTable); cdwJob(argv[1]); return 0; }