IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jul 16, 2005, 6:01:28 AM (21 years ago)
Author:
eugene
Message:

added user scheduler/controller commands, fixed up I/F issues

Location:
trunk/Ohana/src/opihi/pantasks
Files:
1 added
7 edited

Legend:

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

    r4450 r4573  
    55  CheckTasks ();
    66  CheckJobs ();
     7  CheckControllerOutput ();
    78
    89}
  • trunk/Ohana/src/opihi/pantasks/ControllerOps.c

    r4552 r4573  
    55static int status = FALSE;
    66static int stdin_cntl, stdout_cntl, stderr_cntl;
     7static IOBuffer stdout_buffer;
     8static IOBuffer stderr_buffer;
    79
    810int CheckControllerStatus () {
     
    108110  line = NULL;
    109111  status = -1;
    110   for (i = 0; (i < CONTROLLER_TIMEOUT) && (status == -1) && (line == NULL); i++) {
     112  for (i = 0; (i < CONTROLLER_TIMEOUT) && (status != 0) && (line == NULL); i++) {
    111113    status = ReadtoIOBuffer (buffer, stdout_cntl);
    112114    if ((buffer[0].Nbuffer - Nstart) >= Nbytes) {
     
    261263  p = NULL;
    262264  status = -1;
    263   for (i = 0; (i < CONNECT_TIMEOUT) && (status == -1) && (p == NULL); i++) {
     265  for (i = 0; (i < CONNECT_TIMEOUT) && (status != 0) && (p == NULL); i++) {
    264266    status = ReadtoIOBuffer (&buffer, stdout_fd[0]);
    265267    p = memstr (buffer.buffer, "CONNECTED", buffer.Nbuffer);
     
    274276  stdout_cntl = stdout_fd[0];
    275277  stderr_cntl = stderr_fd[0];
     278
     279  InitIOBuffer (&stdout_buffer, 0x100);
     280  InitIOBuffer (&stderr_buffer, 0x100);
    276281
    277282  fprintf (stderr, "Connected\n");
     
    319324  line = NULL;
    320325  status = -1;
    321   for (i = 0; (i < CONTROLLER_TIMEOUT) && (status == -1) && (line == NULL); i++) {
     326  for (i = 0; (i < CONTROLLER_TIMEOUT) && (status != 0) && (line == NULL); i++) {
    322327    status = ReadtoIOBuffer (buffer, stdout_cntl);
    323328    line = memstr (buffer[0].buffer, response, buffer[0].Nbuffer);
     
    330335}
    331336
     337int CheckControllerOutput () {
     338
     339  int Nread;
     340
     341  /* read stdout buffer */
     342  Nread = ReadtoIOBuffer (&stdout_buffer, stdout_cntl);
     343  switch (Nread) {
     344    case -2:  /* error in read (programming error?  system level error?) */
     345      fprintf (stderr, "serious IO error\n");
     346      exit (2);
     347    case -1:  /* no data in pipe */
     348      break;
     349    case 0:   /* pipe is closed */
     350      /** change child state? **/
     351      break;
     352    default:  /* data in pipe */
     353      break;
     354  }
     355 
     356  /* read stderr buffer */
     357  Nread = ReadtoIOBuffer (&stderr_buffer, stderr_cntl);
     358  switch (Nread) {
     359    case -2:  /* error in read (programming error?  system level error?) */
     360      fprintf (stderr, "serious IO error\n");
     361      exit (2);
     362    case -1:  /* no data in pipe */
     363      break;
     364    case 0:   /* pipe is closed */
     365      /** change child state? **/
     366      break;
     367    default:  /* data in pipe */
     368      break;
     369  }
     370  return (TRUE);
     371}
     372
     373int PrintControllerOutput () {
     374
     375  fprintf (stderr, "--- stdout ---\n");
     376  fwrite (stdout_buffer.buffer, 1, stdout_buffer.Nbuffer, stderr);
     377  fprintf (stderr, "--- stdout ---\n");
     378  fwrite (stderr_buffer.buffer, 1, stderr_buffer.Nbuffer, stderr);
     379  fprintf (stderr, "---  done  ---\n");
     380  return (TRUE);
     381}
     382
     383
    332384/* memstr returns a view, not an allocated string : don't free */
  • trunk/Ohana/src/opihi/pantasks/Makefile

    r4552 r4573  
    4848$(SDIR)/controller_check.$(ARCH).o \
    4949$(SDIR)/controller_status.$(ARCH).o \
     50$(SDIR)/controller_output.$(ARCH).o \
    5051$(SDIR)/task.$(ARCH).o \
    5152$(SDIR)/task_command.$(ARCH).o \
  • trunk/Ohana/src/opihi/pantasks/controller.c

    r4552 r4573  
    44int controller_status  PROTO((int, char **));
    55int controller_check   PROTO((int, char **));
     6int controller_output  PROTO((int, char **));
    67
    78static Command controller_cmds[] = {
    89  {"host",   controller_host,   "define host for controller"},
     10  {"check",  controller_check,  "check controller host/job"},
    911  {"status", controller_status, "check controller status"},
    10   {"check",  controller_check,  "check controller host/job"},
     12  {"output", controller_output, "print controller output"},
    1113};
    1214
  • trunk/Ohana/src/opihi/pantasks/controller_check.c

    r4552 r4573  
    88
    99  if (argc != 3) goto usage;
    10   if (strcasecmp (argv[2], "JOB") &&
    11       strcasecmp (argv[2], "HOST")) goto usage;
     10  if (strcasecmp (argv[1], "JOB") &&
     11      strcasecmp (argv[1], "HOST")) goto usage;
    1212
    1313  /* check if controller is running */
     
    1818  }
    1919
    20   sprintf (command, "check %s %s", argv[2], argv[3]);
     20  sprintf (command, "check %s %s", argv[1], argv[2]);
    2121  InitIOBuffer (&buffer, 0x100);
    2222  status = ControllerCommand (command, CONTROLLER_PROMPT, &buffer);
  • trunk/Ohana/src/opihi/pantasks/controller_host.c

    r4539 r4573  
    77  IOBuffer buffer;
    88
    9   if (argc != 3) {
     9  if (argc != 2) {
    1010    fprintf (stderr, "USAGE: controller host (hostname)\n");
    1111    return (FALSE);
     
    1515  StartController ();
    1616
    17   sprintf (command, "host %s", argv[2]);
     17  sprintf (command, "host %s", argv[1]);
    1818  InitIOBuffer (&buffer, 0x100);
    1919  status = ControllerCommand (command, CONTROLLER_PROMPT, &buffer);
     
    3232    case CONTROLLER_GOOD:
    3333      fprintf (stderr, "controller command sent\n"); 
     34      fwrite (buffer.buffer, 1, buffer.Nbuffer, stderr);
     35      fprintf (stderr, "\n Nbytes received: %d\n", buffer.Nbuffer); 
    3436      return (TRUE);
    3537
  • trunk/Ohana/src/opihi/pantasks/controller_status.c

    r4552 r4573  
    77  IOBuffer buffer;
    88
    9   if (argc != 3) {
     9  if (argc != 1) {
    1010    fprintf (stderr, "USAGE: controller status\n");
    1111    return (FALSE);
     
    3737      fprintf (stderr, "controller command sent\n"); 
    3838      fwrite (buffer.buffer, 1, buffer.Nbuffer, stderr);
     39      fprintf (stderr, "\n Nbytes received: %d\n", buffer.Nbuffer); 
    3940      return (TRUE);
    4041
Note: See TracChangeset for help on using the changeset viewer.