IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Aug 3, 2005, 5:50:08 PM (21 years ago)
Author:
eugene
Message:

psched / pscontrol / pclient dev work

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/opihi/pcontrol/host.c

    r4689 r4705  
    33int host (int argc, char **argv) {
    44
     5  int N, Ns;
    56  IDtype HostID;
    6   int N, Delete, Off, On, Start, Stop, Check;
    77  Host *host;
    88
    9   /* this section needs some help: find the specified host in the stacks */
    10   Delete = FALSE;
    11   if ((N = get_argument (argc, argv, "-delete"))) {
    12     remove_argument (N, &argc, argv);
    13     Delete = TRUE;
     9  if (argc != 3) {
     10    fprintf (stdout, "USAGE: host (command) (hostname)\n");
     11    return (FALSE);
    1412  }
    15  
    16   /* this section needs some help: find the specified host in the stacks */
    17   Off = FALSE;
    18   if ((N = get_argument (argc, argv, "-off"))) {
    19     if (Delete) {
    20       fprintf (stdout, "-delete and -off incompatible\n");
     13
     14  if (!strcasecmp (argv[1], "ADD")) {
     15    HostID = AddHost (argv[2]);
     16    fprintf (stdout, "HostID: %d\n", (int) HostID);
     17    return (TRUE);
     18  }
     19  if (!strcasecmp (argv[1], "ON")) {
     20    N = FindNamedHost (argv[2], PCONTROL_HOST_OFF);
     21    if (N < 0) {
     22      fprintf (stdout, "host %s is not OFF\n", argv[2]);
    2123      return (FALSE);
    2224    }
    23     remove_argument (N, &argc, argv);
    24     Off = TRUE;
     25    host = GetHost (PCONTROL_HOST_OFF, N);
     26    DownHost (host);
     27    return (TRUE);
    2528  }
    26  
    27   /* this section needs some help: find the specified host in the stacks */
    28   On = FALSE;
    29   if ((N = get_argument (argc, argv, "-on"))) {
    30     if (Delete || Off) {
    31       fprintf (stdout, "only one of -delete, -off, -on\n");
     29  if (!strcasecmp (argv[1], "RETRY")) {
     30    N = FindNamedHost (argv[2], PCONTROL_HOST_DOWN);
     31    if (N < 0) {
     32      fprintf (stdout, "host %s is not DOWN\n", argv[2]);
    3233      return (FALSE);
    3334    }
    34     remove_argument (N, &argc, argv);
    35     On = TRUE;
     35    host = GetHost (PCONTROL_HOST_DOWN, N);
     36    host[0].nexttry.tv_sec  = 0;
     37    host[0].nexttry.tv_usec = 0;
     38    host[0].lasttry.tv_sec  = 0;
     39    host[0].lasttry.tv_usec = 0;
     40    StartHost (host);
     41    return (TRUE);
    3642  }
    37  
    38   /* this section needs some help: find the specified host in the stacks */
    39   Start = FALSE;
    40   if ((N = get_argument (argc, argv, "-start"))) {
    41     remove_argument (N, &argc, argv);
    42     Start = TRUE;
    43   }
    44  
    45   /* this section needs some help: find the specified host in the stacks */
    46   Check = FALSE;
    47   if ((N = get_argument (argc, argv, "-check"))) {
    48     remove_argument (N, &argc, argv);
    49     Check = TRUE;
    50   }
    51  
    52   /* this section needs some help: find the specified host in the stacks */
    53   Stop = FALSE;
    54   if ((N = get_argument (argc, argv, "-stop"))) {
    55     remove_argument (N, &argc, argv);
    56     Stop = TRUE;
    57   }
    58  
    59   if (argc != 2) {
    60     fprintf (stdout, "USAGE: host (hostname) [-delete]\n");
     43  if (!strcasecmp (argv[1], "CHECK")) {
     44    Ns = FindNamedHostStack (argv[2]);
     45    switch (Ns) {
     46      case PCONTROL_HOST_IDLE:
     47      case PCONTROL_HOST_BUSY:
     48      case PCONTROL_HOST_DONE:
     49        N = FindNamedHost (argv[2], Ns);
     50        host = GetHost (Ns, N);
     51        CheckHost (host);
     52        return (TRUE);
     53      case PCONTROL_HOST_DOWN:
     54        fprintf (stdout, "host %s is DOWN\n", argv[2]);
     55        return (TRUE);
     56      case PCONTROL_HOST_OFF:
     57        fprintf (stdout, "host %s is OFF\n", argv[2]);
     58        return (TRUE);
     59      default:
     60        fprintf (stdout, "host %s not found\n", argv[2]);
     61        return (FALSE);
     62    }
    6163    return (FALSE);
    6264  }
    63  
    64   if (Delete) {
    65     N = FindNamedHost (argv[1], PCONTROL_HOST_OFF);
     65  if (!strcasecmp (argv[1], "OFF")) {
     66    N = FindNamedHost (argv[2], PCONTROL_HOST_IDLE);
     67    if (N >= 0) {
     68      host = GetHost (PCONTROL_HOST_IDLE, N);
     69      StopHost (host);
     70      OffHost (host);
     71      return (TRUE);
     72    }
     73    N = FindNamedHost (argv[2], PCONTROL_HOST_DOWN);
     74    if (N >= 0) {
     75      host = GetHost (PCONTROL_HOST_DOWN, N);
     76      OffHost (host);
     77      return (TRUE);
     78    }
     79    N = FindNamedHost (argv[2], PCONTROL_HOST_BUSY);
     80    if (N >= 0) {
     81      host = GetHost (PCONTROL_HOST_BUSY, N);
     82      host[0].markoff  = TRUE;
     83      PutHost (host, PCONTROL_HOST_BUSY, STACK_BOTTOM);
     84      return (TRUE);
     85    }
     86    fprintf (stdout, "host %s is not BUSY, IDLE, or DOWN\n", argv[2]);
     87    return (FALSE);
     88  }
     89  if (!strcasecmp (argv[1], "DELETE")) {
     90    N = FindNamedHost (argv[2], PCONTROL_HOST_OFF);
    6691    if (N < 0) {
    67       fprintf (stdout, "host %s is not OFF\n", argv[1]);
     92      fprintf (stdout, "host %s is not OFF\n", argv[2]);
    6893      return (FALSE);
    6994    }
     
    7297    return (TRUE);
    7398  }
    74 
    75   if (On) {
    76     N = FindNamedHost (argv[1], PCONTROL_HOST_OFF);
    77     if (N < 0) {
    78       fprintf (stdout, "host %s is not OFF\n", argv[1]);
    79       return (FALSE);
    80     }
    81     host = GetHost (PCONTROL_HOST_OFF, N);
    82     DownHost (host);
    83     return (TRUE);
    84   }
    85 
    86   if (Check) {
    87     N = FindNamedHost (argv[1], PCONTROL_HOST_IDLE);
    88     if (N >= 0) {
    89       host = GetHost (PCONTROL_HOST_IDLE, N);
    90       CheckHost (host);
    91       return (TRUE);
    92     }
    93     N = FindNamedHost (argv[1], PCONTROL_HOST_BUSY);
    94     if (N >= 0) {
    95       host = GetHost (PCONTROL_HOST_BUSY, N);
    96       CheckHost (host);
    97       return (TRUE);
    98     }
    99     fprintf (stdout, "host %s is not BUSY or IDLE\n", argv[1]);
    100     return (FALSE);
    101   }
    102 
    103   if (Start) {
    104     N = FindNamedHost (argv[1], PCONTROL_HOST_DOWN);
    105     if (N < 0) {
    106       fprintf (stdout, "host %s is not DOWN\n", argv[1]);
    107       return (FALSE);
    108     }
    109     host = GetHost (PCONTROL_HOST_DOWN, N);
    110     StartHost (host);
    111     return (TRUE);
    112   }
    113   if (Stop) {
    114     N = FindNamedHost (argv[1], PCONTROL_HOST_IDLE);
    115     if (N < 0) {
    116       fprintf (stdout, "host %s is not IDLE\n", argv[1]);
    117       return (FALSE);
    118     }
    119     host = GetHost (PCONTROL_HOST_IDLE, N);
    120     StopHost (host);
    121     DownHost (host);
    122     return (TRUE);
    123   }
    124 
    125   if (Off) {
    126     N = FindNamedHost (argv[1], PCONTROL_HOST_IDLE);
    127     if (N >= 0) {
    128       host = GetHost (PCONTROL_HOST_IDLE, N);
    129       StopHost (host);
    130       OffHost (host);
    131       return (TRUE);
    132     }
    133     N = FindNamedHost (argv[1], PCONTROL_HOST_DOWN);
    134     if (N >= 0) {
    135       host = GetHost (PCONTROL_HOST_DOWN, N);
    136       OffHost (host);
    137       return (TRUE);
    138     }
    139     N = FindNamedHost (argv[1], PCONTROL_HOST_BUSY);
    140     if (N >= 0) {
    141       host = GetHost (PCONTROL_HOST_BUSY, N);
    142       host[0].markoff  = TRUE;
    143       PutHost (host, PCONTROL_HOST_BUSY, STACK_BOTTOM);
    144       return (TRUE);
    145     }
    146     fprintf (stdout, "host %s is not BUSY, IDLE, or DOWN\n", argv[1]);
    147     return (FALSE);
    148   }
    149 
    150   HostID = AddHost (argv[1]);
    151   fprintf (stdout, "HostID: %d\n", (int) HostID);
    152   return (TRUE);
     99 
     100  fprintf (stderr, "unknown host command %s\n", argv[1]);
     101  fprintf (stderr, "valid options: xxx\n");
     102  return (FALSE);
    153103}
Note: See TracChangeset for help on using the changeset viewer.