Changeset 4705 for trunk/Ohana/src/opihi/pcontrol/host.c
- Timestamp:
- Aug 3, 2005, 5:50:08 PM (21 years ago)
- File:
-
- 1 edited
-
trunk/Ohana/src/opihi/pcontrol/host.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/opihi/pcontrol/host.c
r4689 r4705 3 3 int host (int argc, char **argv) { 4 4 5 int N, Ns; 5 6 IDtype HostID; 6 int N, Delete, Off, On, Start, Stop, Check;7 7 Host *host; 8 8 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); 14 12 } 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]); 21 23 return (FALSE); 22 24 } 23 remove_argument (N, &argc, argv); 24 Off = TRUE; 25 host = GetHost (PCONTROL_HOST_OFF, N); 26 DownHost (host); 27 return (TRUE); 25 28 } 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]); 32 33 return (FALSE); 33 34 } 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); 36 42 } 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 } 61 63 return (FALSE); 62 64 } 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); 66 91 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]); 68 93 return (FALSE); 69 94 } … … 72 97 return (TRUE); 73 98 } 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); 153 103 }
Note:
See TracChangeset
for help on using the changeset viewer.
