IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 26946


Ignore:
Timestamp:
Feb 14, 2010, 12:54:59 PM (16 years ago)
Author:
eugene
Message:

better UI for status

Location:
trunk/Ohana/src/opihi/pantasks
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/opihi/pantasks/TaskOps.c

    r16452 r26946  
    5858
    5959
     60# define getnchars(LEN, MINLEN) { float loglength; loglength = log10(LEN); LEN = ((int)loglength < loglength) ? loglength + 1 : loglength; LEN = (LEN < MINLEN) ? MINLEN : LEN; }
     61
    6062/* list known tasks */
    6163void ListTasks (int verbose) {
    6264
    63   int i, j, valid, nameLength, cmdLength;
     65  int i, j, valid, nameLength, cmdLength, maxJobs, maxRun, maxDone, maxFail, maxTime, Nrun;
    6466  char *start, *stop;
    6567  char format[128];
     
    7375  /* find string lengths */
    7476  nameLength = cmdLength = 0;
     77  maxJobs = maxRun = maxDone = maxFail = maxTime = 0;
    7578  for (i = 0; i < Ntasks; i++) {
    7679    nameLength = MAX (nameLength, strlen(tasks[i][0].name));
     
    8083      cmdLength = MAX (nameLength, strlen(tasks[i][0].argv[0]));
    8184    }
     85    maxJobs = MAX(maxJobs, tasks[i][0].Njobs);
     86    maxDone = MAX(maxDone, tasks[i][0].Nsuccess);
     87    maxFail = MAX(maxFail, tasks[i][0].Nfailure);
     88    maxTime = MAX(maxTime, tasks[i][0].Ntimeout);
     89    maxRun  = MAX(maxRun,  tasks[i][0].Njobs - tasks[i][0].Nsuccess - tasks[i][0].Nfailure - tasks[i][0].Ntimeout);
    8290  }
    8391
    8492  gprint (GP_LOG, " Task Status\n");
    8593
    86   snprintf (format, 128, "  AV %%-%ds %5s  %5s %5s %5s %%-%ds\n", nameLength, "Njobs", "Ngood", "Nfail", "Ntime", cmdLength);
    87   gprint (GP_LOG, format, "Name", "Command");
    88 
    89   snprintf (format, 128, "%%-%ds %%5d  %%5d %%5d %%5d %%-%ds\n", nameLength, cmdLength);
     94  getnchars(maxJobs, 5);
     95  getnchars(maxRun,  5);
     96  getnchars(maxDone, 5);
     97  getnchars(maxFail, 5);
     98  getnchars(maxTime, 5);
     99
     100  snprintf (format, 128, "  AV %%-%ds  %%%ds  %%%ds  %%%ds %%%ds %%%ds %%-%ds\n", nameLength, maxRun, maxJobs, maxDone, maxFail, maxTime, cmdLength);
     101  gprint (GP_LOG, format, "Name", "Nrun", "Njobs", "Ngood", "Nfail", "Ntime", "Command");
     102
     103  snprintf (format, 128, "%%-%ds  %%%dd  %%%dd  %%%dd %%%dd %%%dd %%-%ds\n", nameLength, maxRun, maxJobs, maxDone, maxFail, maxTime, cmdLength);
    90104  for (i = 0; i < Ntasks; i++) {
    91105    valid = CheckTimeRanges (tasks[i][0].ranges, tasks[i][0].Nranges);
     
    101115      gprint (GP_LOG, "- ");
    102116    }
     117    Nrun = tasks[i][0].Njobs - tasks[i][0].Nsuccess - tasks[i][0].Nfailure - tasks[i][0].Ntimeout;
    103118    if (tasks[i][0].argv == NULL) {
    104       gprint (GP_LOG, format, tasks[i][0].name, tasks[i][0].Njobs, tasks[i][0].Nsuccess, tasks[i][0].Nfailure, tasks[i][0].Ntimeout, "(dynamic)");
    105     } else {
    106       gprint (GP_LOG, format, tasks[i][0].name, tasks[i][0].Njobs, tasks[i][0].Nsuccess, tasks[i][0].Nfailure, tasks[i][0].Ntimeout, tasks[i][0].argv[0]);
     119      gprint (GP_LOG, format, tasks[i][0].name, Nrun, tasks[i][0].Njobs, tasks[i][0].Nsuccess, tasks[i][0].Nfailure, tasks[i][0].Ntimeout, "(dynamic)");
     120    } else {
     121      gprint (GP_LOG, format, tasks[i][0].name, Nrun, tasks[i][0].Njobs, tasks[i][0].Nsuccess, tasks[i][0].Nfailure, tasks[i][0].Ntimeout, tasks[i][0].argv[0]);
    107122    }
    108123    if (verbose) {
  • trunk/Ohana/src/opihi/pantasks/status_server.c

    r25953 r26946  
    44
    55  int N;
     6  int checkController,showJobs, showDetails;
    67
    78  if (get_argument (argc, argv, "-h")) goto help;
     
    910  if (get_argument (argc, argv, "--help")) goto help;
    1011
    11   if ((N = get_argument (argc, argv, "-tasks"))) {
    12     remove_argument (N, &argc, argv);
    13     JobTaskLock();
    14     ListTasks (FALSE);
    15     JobTaskUnlock();
    16     return (TRUE);
    17   }
    18 
    19   if ((N = get_argument (argc, argv, "-taskinfo"))) {
    20     remove_argument (N, &argc, argv);
    21     JobTaskLock();
    22     ListTasks (TRUE);
    23     JobTaskUnlock();
    24     return (TRUE);
    25   }
    26 
     12  // special options for task timing stats
    2713  if ((N = get_argument (argc, argv, "-taskstats"))) {
    2814    remove_argument (N, &argc, argv);
     15    status_scheduler();
    2916    JobTaskLock();
    3017    if (argc == 2) {
     
    4936  }
    5037
     38  checkController = FALSE;
     39  if ((N = get_argument (argc, argv, "-c"))) {
     40    remove_argument (N, &argc, argv);
     41    checkController = TRUE;
     42  }
     43  if ((N = get_argument (argc, argv, "-control"))) {
     44    remove_argument (N, &argc, argv);
     45    checkController = TRUE;
     46  }
     47  if ((N = get_argument (argc, argv, "-controller"))) {
     48    remove_argument (N, &argc, argv);
     49    checkController = TRUE;
     50  }
     51
     52  showJobs = FALSE;
     53  if ((N = get_argument (argc, argv, "-jobs"))) {
     54    remove_argument (N, &argc, argv);
     55    showJobs = TRUE;
     56  }
     57
     58  showDetails = FALSE;
     59  if ((N = get_argument (argc, argv, "-info"))) {
     60    remove_argument (N, &argc, argv);
     61    showDetails = TRUE;
     62  }
     63  if ((N = get_argument (argc, argv, "-v"))) {
     64    remove_argument (N, &argc, argv);
     65    showDetails = TRUE;
     66  }
     67  if ((N = get_argument (argc, argv, "-details"))) {
     68    remove_argument (N, &argc, argv);
     69    showDetails = TRUE;
     70  }
     71  if ((N = get_argument (argc, argv, "-verbose"))) {
     72    remove_argument (N, &argc, argv);
     73    showDetails = TRUE;
     74  }
     75
     76  status_scheduler();
     77
     78  JobTaskLock();
     79  ListTasks (showDetails);
     80  if (showJobs) {
     81    ListJobs();
     82  }
     83  JobTaskUnlock();
     84
     85  if (checkController) {
     86    ControlLock(__func__);
     87    PrintControllerBusyJobs();
     88    ControlUnlock(__func__);
     89  }
     90
     91  gprint (GP_LOG, "\n");
     92  return (TRUE);
     93
     94help:
     95  gprint (GP_LOG, "USAGE: status [options]\n");
     96  gprint (GP_LOG, "       (without options: show system status)\n");
     97  gprint (GP_LOG, "       -c | -control | -controller      : add status of jobs on controller\n");
     98  gprint (GP_LOG, "       -v | -verbose | -details | -info : add details for tasks\n");
     99  gprint (GP_LOG, "       -taskstats                       : show timing statistics for tasks\n");
     100  gprint (GP_LOG, "       -taskstatsreset                  : reset timing statistics for tasks\n");
     101  return (FALSE);
     102}
     103
     104int status_scheduler() {
     105 
    51106  gprint (GP_LOG, "\n");
    52107  if (CheckTasksGetState()) {
     
    64119    gprint (GP_LOG, " Controller is stopped\n");
    65120  }
    66 
    67   JobTaskLock();
    68   ListTasks (FALSE);
    69   ListJobs ();
    70   JobTaskUnlock();
    71 
    72   ControlLock(__func__);
    73   PrintControllerBusyJobs();
    74   ControlUnlock(__func__);
    75 
    76121  return (TRUE);
    77 
    78 help:
    79   gprint (GP_LOG, "USAGE: status [options]\n");
    80   gprint (GP_LOG, "       (without options: over system status)\n");
    81   gprint (GP_LOG, "       -tasks     : list defined tasks\n");
    82   gprint (GP_LOG, "       -taskinfo  : details for tasks\n");
    83   gprint (GP_LOG, "       -taskstats : processing statistics for tasks\n");
    84   gprint (GP_LOG, "       -taskstatsreset : reset processing statistics for tasks\n");
    85   return (FALSE);
    86122}
Note: See TracChangeset for help on using the changeset viewer.