]>
Commit | Line | Data |
---|---|---|
c441a31a | 1 | /* $Id$ |
7ac48069 | 2 | * |
3 | * This is the file menus.c for the Moira Client, which allows users | |
59ec8dae | 4 | * to quickly and easily maintain most parts of the Moira database. |
0a2c64cb | 5 | * It Contains: All menu definitions. |
5eaef520 | 6 | * |
08345b74 | 7 | * Created: 4/11/88 |
8 | * By: Chris D. Peterson | |
9 | * | |
7ac48069 | 10 | * Copyright (C) 1988-1998 by the Massachusetts Institute of Technology. |
11 | * For copying and distribution information, please see the file | |
12 | * <mit-copyright.h>. | |
08345b74 | 13 | */ |
14 | ||
600b459e | 15 | #include <stdio.h> |
16 | ||
17 | #include "mit-copyright.h" | |
7ac48069 | 18 | #include <moira.h> |
0a2c64cb | 19 | #include "defs.h" |
20 | #include "f_defs.h" | |
461c03b6 | 21 | #include "globals.h" |
08345b74 | 22 | |
7ac48069 | 23 | #include <stdio.h> |
24 | ||
25 | RCSID("$Header$"); | |
e532b848 | 26 | |
0a2c64cb | 27 | /* ------------------------- Second Tier Menus ------------------------- */ |
28 | ||
5eaef520 | 29 | /* |
0a2c64cb | 30 | * Cluster Data Menu |
08345b74 | 31 | */ |
32 | ||
0a2c64cb | 33 | Menu cluster_data_menu = { |
34 | NULLFUNC, | |
35 | NULLFUNC, | |
36 | "Cluster Data Menu", | |
461c03b6 | 37 | 4, |
08345b74 | 38 | { |
0a2c64cb | 39 | { ShowClusterData, NULLMENU, 3, { |
40 | {"show", "Show Data on a given Cluster"}, | |
41 | {"clus", "Cluster's Name: "}, | |
42 | {"label", "Label Identifing the data: "}, | |
08345b74 | 43 | } }, |
0a2c64cb | 44 | { AddClusterData, NULLMENU, 4, { |
45 | {"add", "Add Data to a given Cluster"}, | |
46 | {"clus", "Cluster Name: "}, | |
47 | {"label", "Label Identifing the data: "}, | |
48 | {"data", "The data to be added: "}, | |
08345b74 | 49 | } }, |
b356ed19 | 50 | { RemoveClusterData, NULLMENU, 3, { |
9580b30a | 51 | {"delete", "Remove Data from a given Cluster"}, |
0a2c64cb | 52 | {"clus", "Cluster's Name: "}, |
53 | {"label", "Label Identifing the data: "}, | |
5eaef520 | 54 | } }, |
0a2c64cb | 55 | SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode) |
08345b74 | 56 | } |
57 | }; | |
58 | ||
0a2c64cb | 59 | /* |
60 | * List Information Menu | |
61 | */ | |
62 | ||
63 | Menu list_info_menu = { | |
5eaef520 | 64 | NULLFUNC, |
65 | NULLFUNC, | |
66 | "List Information Menu", | |
67 | 3, | |
68 | { | |
69 | SIMPLEFUNC("member", | |
70 | "Show all lists to which a given member belongs", | |
71 | ListByMember), | |
72 | SIMPLEFUNC("admin", | |
73 | "Show all items which a given member can administer", | |
74 | ListByAdministrator), | |
75 | SIMPLEFUNC("public", "Show all public mailing lists", | |
76 | ListAllPublicMailLists), | |
77 | } | |
0a2c64cb | 78 | }; |
79 | ||
17bbb3bc | 80 | /* |
81 | * List Member Tags Menu | |
82 | */ | |
83 | ||
84 | Menu list_tags_menu = { | |
85 | NULL, | |
86 | NULL, | |
87 | "List Member Tags Menu", | |
88 | 2, | |
89 | { | |
90 | SIMPLEFUNC("change", "Change the tag on a list member", TagMember), | |
91 | SIMPLEFUNC("show", "Show all list members with tags", ListMembersWithTags), | |
92 | } | |
93 | }; | |
94 | ||
0a2c64cb | 95 | /* |
96 | * List Member Menu | |
97 | */ | |
98 | ||
99 | Menu list_member_menu = { | |
5eaef520 | 100 | ListmaintMemberMenuEntry, |
101 | ListmaintMemberMenuExit, | |
102 | NULL, | |
17bbb3bc | 103 | 8, |
5eaef520 | 104 | { |
105 | SIMPLEFUNC("add", "Add a member to this list", AddMember), | |
106 | SIMPLEFUNC("remove", "Remove a member from this list", DeleteMember), | |
107 | SIMPLEFUNC("all", "Show the members of this list", ListAllMembers), | |
108 | SIMPLEFUNC("user", "Show the members of type USER", ListUserMembers), | |
109 | SIMPLEFUNC("list", "Show the members of type LIST", ListListMembers), | |
110 | SIMPLEFUNC("string", "Show the members of type STRING", | |
111 | ListStringMembers), | |
17bbb3bc | 112 | SUBMENU("tags", "List Member Tags Menu", &list_tags_menu), |
5eaef520 | 113 | SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode) |
114 | } | |
08345b74 | 115 | }; |
116 | ||
117 | /* | |
0a2c64cb | 118 | * Machine To Cluster Mappings Menu |
08345b74 | 119 | */ |
120 | ||
0a2c64cb | 121 | Menu mappings_menu = { |
08345b74 | 122 | NULLFUNC, |
123 | NULLFUNC, | |
0a2c64cb | 124 | "Machine To Cluster Mappings Menu", |
125 | 4, | |
08345b74 | 126 | { |
461c03b6 | 127 | { MachineToClusterMap, NULLMENU, 3, { |
85ca828a | 128 | {"map", "Show Machine to cluster mapping"}, |
129 | {"name", "Machine's Name: "}, | |
130 | {"cluster", "Cluster's Name: "}, | |
461c03b6 | 131 | } }, |
08345b74 | 132 | { AddMachineToCluster, NULLMENU, 3, { |
5eaef520 | 133 | {"addcluster", "Add machine to a cluster"}, |
134 | {"name", "Machine's Name: "}, | |
85ca828a | 135 | {"cluster", "Cluster's Name: "}, |
08345b74 | 136 | } }, |
85ca828a | 137 | { RemoveMachineFromCluster, NULLMENU, 3, { |
138 | {"remcluster", "Remove machines from clusters"}, | |
5eaef520 | 139 | {"name", "Machine's Name: "}, |
85ca828a | 140 | {"cluster", "Cluster's Name: "}, |
08345b74 | 141 | } }, |
0a2c64cb | 142 | SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode), |
08345b74 | 143 | } |
144 | }; | |
145 | ||
9cd2d193 | 146 | /* |
147 | * Machine to Container Mappings Menu | |
148 | */ | |
149 | ||
150 | Menu cmappings_menu = { | |
151 | NULLFUNC, | |
152 | NULLFUNC, | |
153 | "Machine to Container Mappings Menu", | |
154 | 5, | |
155 | { | |
156 | { MachineToContainerMap, NULLMENU, 2, { | |
157 | {"map", "Show Machine to container mapping"}, | |
158 | {"name", "Machine's Name: "} | |
159 | } }, | |
160 | { AddMachineToContainer, NULLMENU, 3, { | |
161 | {"addcontainer", "Add machine to a container"}, | |
162 | {"name", "Machine's Name: "}, | |
163 | {"container", "Container's Name: "}, | |
164 | } }, | |
165 | { RemoveMachineFromContainer, NULLMENU, 3, { | |
166 | {"remcontainer", "Remove machine from a container"}, | |
167 | {"name", "Machine's Name: "}, | |
168 | {"container", "Container's Name: "}, | |
169 | } }, | |
170 | { GetMachinesOfContainer, NULLMENU, 2, { | |
171 | {"machofcont", "Show all machines in a container"}, | |
172 | {"name", "Container's Name: "}, | |
173 | } }, | |
174 | SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode), | |
175 | } | |
176 | }; | |
177 | ||
5eaef520 | 178 | /* |
0a2c64cb | 179 | * Post Office Box Menu |
180 | */ | |
181 | ||
182 | Menu pobox_menu = { | |
08345b74 | 183 | NULLFUNC, |
184 | NULLFUNC, | |
0a2c64cb | 185 | "Post Office Box Menu", |
450849e9 | 186 | 5, |
0a2c64cb | 187 | { |
188 | {GetUserPOBox, NULLMENU, 2, { | |
189 | {"show", "Show a user's post office box"}, | |
190 | {"login name", "login name: "} | |
191 | } }, | |
192 | {SetUserPOBox, NULLMENU, 2, { | |
193 | {"set", "Set (Add or Change) a user's post office box"}, | |
194 | {"login name", "login name: "} | |
195 | } }, | |
450849e9 | 196 | {SplitUserPOBox, NULLMENU, 2, { |
197 | {"split", "Split a user's post office box"}, | |
198 | {"login name", "login name: "} | |
199 | } }, | |
0a2c64cb | 200 | {RemoveUserPOBox, NULLMENU, 2, { |
201 | {"remove", "Remove a user's post office box"}, | |
202 | {"login name", "login name: "} | |
203 | } }, | |
204 | SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode) | |
205 | } | |
206 | }; | |
5eaef520 | 207 | |
0a2c64cb | 208 | /* |
209 | * Quota Menu | |
210 | */ | |
5eaef520 | 211 | |
0a2c64cb | 212 | Menu quota_menu = { |
213 | NULLFUNC, | |
214 | NULLFUNC, | |
215 | "Quota Menu", | |
9550857c | 216 | 8, |
0a2c64cb | 217 | { |
218 | SIMPLEFUNC("shdef", "Show default user quota (in KB)", ShowDefaultQuota), | |
219 | {ChangeDefaultQuota, NULLMENU, 2, { | |
220 | {"chdef", "Change default user quota"}, | |
221 | {"quota", "New quota (in KB): "} | |
222 | } }, | |
9550857c | 223 | SIMPLEFUNC("getquota", "Show a quota on a filesystem", |
224 | GetQuota), | |
225 | SIMPLEFUNC("getfsquotas", "Show all quotas on a filesystem", | |
226 | GetQuotaByFilesys), | |
227 | SIMPLEFUNC("addquota", "Add a new disk quota on a filesystem", | |
228 | AddQuota), | |
229 | SIMPLEFUNC("upquota", "Change a quota on a filesystem", | |
230 | UpdateQuota), | |
231 | SIMPLEFUNC("delquota", "Delete a quota on a filesystem", | |
232 | DeleteQuota), | |
0a2c64cb | 233 | SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode) |
5eaef520 | 234 | } |
0a2c64cb | 235 | }; |
236 | ||
6ef64e43 | 237 | Menu fsgroup_menu = { |
5eaef520 | 238 | NULLFUNC, |
239 | NULLFUNC, | |
240 | "Filesystem Group Menu", | |
241 | 6, | |
242 | { | |
243 | { GetFS, NULLMENU, 2, { | |
244 | {"get", "Get individual or group filesystem information"}, | |
245 | {"name", "Name of Filesystem: "} | |
246 | } }, | |
247 | { AddFSToGroup, NULLMENU, 3, { | |
248 | {"add", "Add a new filesystem to an FS group"}, | |
249 | {"group", "FS Group name: "}, | |
250 | {"filsys", "Filesystem name: "} | |
251 | } }, | |
252 | { RemoveFSFromGroup, NULLMENU, 3, { | |
253 | {"remove", "Remove a filesystem from an FS group"}, | |
254 | {"group", "FS Group name: "}, | |
255 | {"filsys", "Filesystem name: "} | |
256 | } }, | |
257 | { ChangeFSGroupOrder, NULLMENU, 2, { | |
258 | {"order", "Change the order of filesystems in a group"}, | |
259 | {"group", "FS Group name: "} | |
260 | } }, | |
261 | SIMPLEFUNC("help", "Info on Filesystem Groups", FSGroupHelp), | |
262 | SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode) | |
263 | } | |
6ef64e43 | 264 | }; |
265 | ||
e532b848 | 266 | Menu service_menu = { |
5eaef520 | 267 | NULLFUNC, |
268 | NULLFUNC, | |
269 | "DCM Service Menu", | |
270 | 6, | |
271 | { | |
272 | { showserv, NULLMENU, 2, { | |
273 | { "showserv", "Show service information" }, | |
274 | { "service name", "Name of service: " }, | |
275 | } }, | |
276 | { addserv, NULLMENU, 2, { | |
277 | { "addserv", "Add a new service" }, | |
278 | { "service name", "Name of service: " }, | |
279 | } }, | |
280 | { updateserv, NULLMENU, 2, { | |
281 | { "updateserv", "Update service information" }, | |
282 | { "service name", "Name of service: " }, | |
283 | } }, | |
284 | { resetsrverr, NULLMENU, 2, { | |
285 | { "resetsrverr", "Reset service error" }, | |
286 | { "service name", "Name of service: " }, | |
287 | } }, | |
288 | { resetsrvc, NULLMENU, 2, { | |
289 | { "resetsrvc", "Reset service state" }, | |
290 | { "service name", "Name of service: " }, | |
291 | } }, | |
292 | { delserv, NULLMENU, 2, { | |
293 | { "delserv", "Delete service info" }, | |
294 | { "service name", "Name of service: " }, | |
295 | } }, | |
296 | } | |
e532b848 | 297 | }; |
298 | ||
299 | Menu host_menu = { | |
5eaef520 | 300 | NULLFUNC, |
301 | NULLFUNC, | |
302 | "DCM Host Menu", | |
303 | 7, | |
304 | { | |
305 | { showhost, NULLMENU, 3, { | |
306 | { "showhost", "Show service/host tuple information" }, | |
307 | { "service name", "Name of service: " }, | |
308 | { "host name", "Name of machine: " }, | |
309 | } }, | |
310 | { addhost, NULLMENU, 3, { | |
311 | { "addhost", "Add a new service/host tuple" }, | |
312 | { "service name", "Name of service: " }, | |
313 | { "host name", "Name of machine: " }, | |
314 | } }, | |
315 | { updatehost, NULLMENU, 3, { | |
316 | { "updatehost", "Update a service/host tuple" }, | |
317 | { "service name", "Name of service: " }, | |
318 | { "host name", "Name of machine: " }, | |
319 | } }, | |
320 | { resethosterr, NULLMENU, 3, { | |
321 | { "resethosterr", "Reset service/host error" }, | |
322 | { "service name", "Name of service: " }, | |
323 | { "host name", "Name of machine: " }, | |
324 | } }, | |
325 | { resethost, NULLMENU, 3, { | |
326 | { "resethost", "Reset service/host state" }, | |
327 | { "service name", "Name of service: " }, | |
328 | { "host name", "Name of machine: " }, | |
329 | } }, | |
330 | { sethostor, NULLMENU, 3, { | |
331 | { "override", "Set service/host override" }, | |
332 | { "service name", "Name of service: " }, | |
333 | { "host name", "Name of machine: " }, | |
334 | } }, | |
335 | { delhost, NULLMENU, 3, { | |
336 | { "delhost", "Delete service/host tuple" }, | |
337 | { "service name", "Name of service: " }, | |
338 | { "host name", "Name of machine: " }, | |
339 | } }, | |
340 | } | |
e532b848 | 341 | }; |
342 | ||
41c81c11 | 343 | /* User Reservations Menu */ |
344 | Menu reservations_menu = { | |
345 | NULLFUNC, | |
346 | NULLFUNC, | |
347 | "User Reservations Menu", | |
348 | 4, | |
349 | { | |
350 | { GetUserReservations, NULLMENU, 2, { | |
351 | { "get", "Get User Reservations" }, | |
352 | { "login name", "User login name: " }, | |
353 | } }, | |
354 | { AddUserReservation, NULLMENU, 3, { | |
355 | { "add", "Add User Reservation" }, | |
356 | { "login name", "User login name: " }, | |
357 | { "reservation", "Reservation: " }, | |
358 | } }, | |
359 | { DelUserReservation, NULLMENU, 3, { | |
360 | { "delete", "Delete User Reservation" }, | |
361 | { "login name", "User login name: " }, | |
362 | { "reservation", "Reservation: " }, | |
363 | } }, | |
364 | { GetUserByReservation, NULLMENU, 2, { | |
365 | { "getres", "Get Users by Reservation" }, | |
366 | { "reservation", "Reservation: " }, | |
367 | } }, | |
368 | } | |
369 | }; | |
370 | ||
0a2c64cb | 371 | /* ------------------------- First Tier Menus ------------------------- */ |
372 | ||
5eaef520 | 373 | /* |
0a2c64cb | 374 | * Cluster Menu |
375 | */ | |
376 | ||
377 | Menu cluster_menu = { | |
378 | NULLFUNC, | |
379 | NULLFUNC, | |
380 | "Cluster Menu", | |
85ca828a | 381 | 7, |
08345b74 | 382 | { |
383 | { ShowClusterInfo, NULLMENU, 2, { | |
85ca828a | 384 | {"show", "Get cluster information"}, |
08345b74 | 385 | {"name", "Cluster's Name: "} |
386 | } }, | |
08345b74 | 387 | { AddCluster, NULLMENU, 2, { |
85ca828a | 388 | {"add", "Add a new cluster"}, |
5eaef520 | 389 | {"name", "Cluster's Name: "}, |
08345b74 | 390 | } }, |
391 | { UpdateCluster, NULLMENU, 2, { | |
85ca828a | 392 | {"update", "Update cluster information"}, |
5eaef520 | 393 | {"name", "Cluster's Name: "}, |
08345b74 | 394 | } }, |
08345b74 | 395 | { DeleteCluster, NULLMENU, 2, { |
85ca828a | 396 | {"delete", "Delete this cluster"}, |
08345b74 | 397 | {"name", "Cluster's Name: "} |
398 | } }, | |
5eaef520 | 399 | SUBMENU("mappings", "Machine To Cluster Mappings Menu", &mappings_menu), |
400 | SUBMENU("c_data", "Cluster Data Menu", &cluster_data_menu), | |
0a2c64cb | 401 | SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode) |
08345b74 | 402 | } |
403 | }; | |
404 | ||
5eaef520 | 405 | /* |
0a2c64cb | 406 | * Filesystem Menu |
407 | */ | |
408 | ||
409 | Menu filesys_menu = { | |
5eaef520 | 410 | NULLFUNC, |
411 | NULLFUNC, | |
0a2c64cb | 412 | "Filesystem Menu", |
48dc73fa | 413 | 10, |
08345b74 | 414 | { |
0a2c64cb | 415 | { GetFS, NULLMENU, 2, { |
416 | {"get", "Get Filesystem Name Information"}, | |
417 | {"name", "Name of Filesystem: "} | |
08345b74 | 418 | } }, |
48dc73fa | 419 | { GetFSM, NULLMENU, 2, { |
420 | {"getmach", "Get Filesystems by Machine"}, | |
421 | {"name", "Name of Server: "} | |
422 | } }, | |
0a2c64cb | 423 | { AddFS, NULLMENU, 2, { |
424 | {"add", "Add New Filesystem to Database"}, | |
425 | {"name", "name: "}, | |
08345b74 | 426 | } }, |
0a2c64cb | 427 | { ChangeFS, NULLMENU, 2, { |
428 | {"change", "Update Filesystem Information"}, | |
429 | {"name", "name: "}, | |
430 | } }, | |
431 | { DeleteFS, NULLMENU, 2, { | |
432 | {"delete", "Delete Filesystem"}, | |
433 | {"name", "Filesystem Name: "} | |
434 | } }, | |
6ef64e43 | 435 | SUBMENU("fsgroups", "File System Groups Menu", &fsgroup_menu), |
0a2c64cb | 436 | { GetFSAlias, NULLMENU, 2, { |
437 | {"check", "Check An Association"}, | |
1d4e1e0f | 438 | {"name", "Alias name: "} |
0a2c64cb | 439 | } }, |
440 | { CreateFSAlias, NULLMENU, 2, { | |
441 | {"alias", "Associate with a Filesystem"}, | |
1d4e1e0f | 442 | {"name", "Alias name: "}, |
0a2c64cb | 443 | } }, |
444 | { DeleteFSAlias, NULLMENU, 2, { | |
445 | {"unalias", "Disassociate from a Filesystem"}, | |
1d4e1e0f | 446 | {"name", "Alias name: "}, |
08345b74 | 447 | } }, |
5eaef520 | 448 | SUBMENU("quotas", "Quota Menu", "a_menu), |
6ef64e43 | 449 | /* SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode), */ |
450 | /* SIMPLEFUNC("help", "Help ..", AttachHelp) */ | |
08345b74 | 451 | } |
452 | }; | |
453 | ||
ad7e0e04 | 454 | Menu subnet_menu = { |
455 | NULLFUNC, | |
456 | NULLFUNC, | |
62eb195e | 457 | "Network Menu", |
ad7e0e04 | 458 | 5, |
459 | { | |
460 | { ShowSubnetInfo, NULLMENU, 2, { | |
5eaef520 | 461 | {"show", "Get network information"}, |
462 | {"name", "Network's Name: "} | |
ad7e0e04 | 463 | } }, |
464 | { AddSubnet, NULLMENU, 2, { | |
5eaef520 | 465 | {"add", "Add a new network"}, |
466 | {"name", "Network's Name: "}, | |
ad7e0e04 | 467 | } }, |
468 | { UpdateSubnet, NULLMENU, 2, { | |
5eaef520 | 469 | {"update", "Update network information"}, |
470 | {"name", "Network's Name: "}, | |
ad7e0e04 | 471 | } }, |
472 | { DeleteSubnet, NULLMENU, 2, { | |
5eaef520 | 473 | {"delete", "Delete this network"}, |
474 | {"name", "Network's Name: "} | |
ad7e0e04 | 475 | } }, |
476 | SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode) | |
477 | } | |
478 | }; | |
479 | ||
480 | Menu cname_menu = { | |
481 | NULLFUNC, | |
482 | NULLFUNC, | |
483 | "Host Alias Menu", | |
484 | 4, | |
485 | { | |
486 | { ShowCname, NULLMENU, 3, { | |
5eaef520 | 487 | {"show", "Get host alias information"}, |
488 | {"alias", "Alias Name (Cname): "}, | |
489 | {"host", "Canonical Host Name: "} | |
ad7e0e04 | 490 | } }, |
491 | { AddCname, NULLMENU, 3, { | |
5eaef520 | 492 | {"add", "Add a new host alias"}, |
493 | {"alias", "Alias Name (Cname): "}, | |
494 | {"host", "Canonical Host Name: "} | |
ad7e0e04 | 495 | } }, |
496 | { DeleteCname, NULLMENU, 3, { | |
5eaef520 | 497 | {"delete", "Delete this alias"}, |
498 | {"alias", "Alias Name (Cname): "}, | |
499 | {"host", "Canonical Host Name: "} | |
ad7e0e04 | 500 | } }, |
501 | SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode) | |
502 | } | |
503 | }; | |
504 | ||
08345b74 | 505 | /* |
0a2c64cb | 506 | * Machine Menu |
08345b74 | 507 | */ |
508 | ||
0a2c64cb | 509 | Menu machine_menu = { |
08345b74 | 510 | NULLFUNC, |
511 | NULLFUNC, | |
0a2c64cb | 512 | "Machine Menu", |
7399b4b2 | 513 | 8, |
08345b74 | 514 | { |
0a2c64cb | 515 | { ShowMachineInfo, NULLMENU, 2, { |
5eaef520 | 516 | {"show", "Get machine information"}, |
517 | {"name", "Machine's Name: "} | |
0a2c64cb | 518 | } }, |
e5710f27 | 519 | { ShowMachineQuery, NULLMENU, 5, { |
5eaef520 | 520 | {"query", "Lookup machines"}, |
521 | {"name", "Machine Name (or leave empty to match any): "}, | |
522 | {"address", "Address in dotted notation (or leave empty to match any): "}, | |
523 | {"location", "Location (or leave empty to match any): "}, | |
524 | {"network", "Network (or leave empty to match any): "} | |
ad7e0e04 | 525 | } }, |
7399b4b2 | 526 | SIMPLEFUNC("owner", "Lookup machines by owner", MachineByOwner), |
0a2c64cb | 527 | { AddMachine, NULLMENU, 2, { |
5eaef520 | 528 | {"add", "Add a new machine"}, |
529 | {"network", "Network assignment: "}, | |
0a2c64cb | 530 | } }, |
531 | { UpdateMachine, NULLMENU, 2, { | |
5eaef520 | 532 | {"update", "Update machine information"}, |
533 | {"name", "Machine's Name: "}, | |
0a2c64cb | 534 | } }, |
535 | { DeleteMachine, NULLMENU, 2, { | |
5eaef520 | 536 | {"delete", "Delete this machine"}, |
537 | {"name", "Machine's Name: "} | |
0a2c64cb | 538 | } }, |
5eaef520 | 539 | SUBMENU("cnames", "Alias names for machines", &cname_menu), |
540 | SUBMENU("mappings", "Machine To Cluster Mappings Menu", &mappings_menu), | |
08345b74 | 541 | } |
542 | }; | |
543 | ||
08345b74 | 544 | /* |
0a2c64cb | 545 | * List Menu |
08345b74 | 546 | */ |
547 | ||
0a2c64cb | 548 | Menu list_menu = { |
5eaef520 | 549 | NULLFUNC, |
550 | NULLFUNC, | |
551 | "List Menu", | |
552 | 9, | |
553 | { | |
554 | { ShowListInfo, NULLMENU, 2, { | |
555 | {"show", "Display information about a list"}, | |
556 | {"list name", "Name of list: "} | |
557 | } }, | |
558 | { NULLFUNC, &list_member_menu, 2, { | |
559 | {"add", "Create new List"}, | |
560 | {"list name", "Name of list: "} | |
561 | } }, | |
562 | { UpdateList, NULLMENU, 2, { | |
563 | {"update", "Update characteristics of a list"}, | |
564 | {"list name", "Name of list: "} | |
565 | } }, | |
566 | { DeleteList, NULLMENU, 2, { | |
567 | {"delete", "Delete a List"}, | |
568 | {"list name", "Name of list: "} | |
569 | } }, | |
570 | SIMPLEFUNC("query_remove", | |
571 | "Interactively remove an item from all lists", | |
572 | InterRemoveItemFromLists), | |
573 | { NULLFUNC, &list_member_menu, 2, { | |
574 | {"members", "Member Menu - Change/Show Members of a List."}, | |
575 | {"list name", "Name of list: "} | |
576 | } }, | |
577 | SUBMENU("list_info", "List Info Menu", | |
578 | &list_info_menu), | |
579 | SUBMENU("quotas", "Quota Menu", "a_menu), | |
6ef64e43 | 580 | /* SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode), */ |
5eaef520 | 581 | SIMPLEFUNC("help", "Print Help", ListHelp) |
582 | } | |
08345b74 | 583 | }; |
584 | ||
585 | /* | |
0a2c64cb | 586 | * NFS Physical Menu |
08345b74 | 587 | */ |
588 | ||
0a2c64cb | 589 | Menu nfsphys_menu = { |
08345b74 | 590 | NULLFUNC, |
591 | NULLFUNC, | |
0a2c64cb | 592 | "NFS Physical Menu", |
593 | 6, | |
08345b74 | 594 | { |
075fe5bb | 595 | { ShowNFSService, NULLMENU, 2, { |
85ca828a | 596 | { "show", "Show an NFS server" }, |
08345b74 | 597 | { "machine", "Machine Name: "}, |
08345b74 | 598 | } }, |
075fe5bb | 599 | { AddNFSService, NULLMENU, 2, { |
08345b74 | 600 | { "add", "Add NFS server" }, |
601 | { "machine", "Machine Name: "}, | |
08345b74 | 602 | } }, |
075fe5bb | 603 | { UpdateNFSService, NULLMENU, 2, { |
08345b74 | 604 | { "update", "Update NFS server"}, |
605 | { "machine", "Machine Name: "}, | |
08345b74 | 606 | } }, |
075fe5bb | 607 | { DeleteNFSService, NULLMENU, 2, { |
08345b74 | 608 | { "delete", "Delete NFS server"}, |
609 | {"machine", "Machine Name: "}, | |
08345b74 | 610 | } }, |
5eaef520 | 611 | SUBMENU("quotas", "Quota Menu", "a_menu), |
08345b74 | 612 | SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode), |
461c03b6 | 613 | /* SIMPLEFUNC("help", "Help", NFSHelp), */ |
08345b74 | 614 | } |
615 | }; | |
616 | ||
a6c2a13a | 617 | Menu krbmap_menu = { |
5eaef520 | 618 | NULLFUNC, |
619 | NULLFUNC, | |
620 | "User Kerberos Mapping Menu", | |
621 | 3, | |
622 | { | |
623 | { GetKrbmap, NULLMENU, 3, { | |
624 | { "show", "Show Kerberos Mappings" }, | |
625 | { "user", "User login name: " }, | |
626 | { "principal", "Principal: " }, | |
627 | } }, | |
628 | { AddKrbmap, NULLMENU, 3, { | |
629 | { "add", "Add Kerberos Mapping" }, | |
630 | { "user", "User login name: " }, | |
631 | { "principal", "Principal (this is case sensitive): " }, | |
632 | } }, | |
633 | { DeleteKrbmap, NULLMENU, 3, { | |
634 | { "delete", "Delete Kerberos Mapping" }, | |
635 | { "user", "User login name: " }, | |
636 | { "principal", "Principal: " }, | |
637 | } }, | |
638 | } | |
a6c2a13a | 639 | }; |
640 | ||
08345b74 | 641 | /* |
0a2c64cb | 642 | * User Menu |
08345b74 | 643 | */ |
644 | ||
0a2c64cb | 645 | Menu user_menu = { |
075fe5bb | 646 | NULLFUNC, |
647 | NULLFUNC, | |
0a2c64cb | 648 | "User Menu", |
41c81c11 | 649 | 12, |
08345b74 | 650 | { |
651 | {ShowUserByLogin, NULLMENU, 2, { | |
652 | {"login", "Show user information by login name"}, | |
653 | {"login name", "Desired login name: "} | |
654 | } }, | |
655 | {ShowUserByName, NULLMENU, 3, { | |
075fe5bb | 656 | {"name", "Show user information by name"}, |
08345b74 | 657 | {"first", "First name: "}, |
658 | {"last", "Last name: "} | |
659 | } }, | |
660 | {ShowUserByClass, NULLMENU, 2, { | |
5eaef520 | 661 | {"class", "Show names of users in a given class"}, |
662 | {"login name", "Desired class: "} | |
663 | } }, | |
81701699 | 664 | {ShowUserById, NULLMENU, 2, { |
5eaef520 | 665 | {"id", "Show user information by ID number"}, |
666 | {"ID number", "ID number: "} | |
81701699 | 667 | } }, |
075fe5bb | 668 | {UpdateUser, NULLMENU, 2, { |
08345b74 | 669 | {"modify", "Change all user fields"}, |
670 | {"login", "Login name: "} | |
671 | } }, | |
5eaef520 | 672 | SIMPLEFUNC("adduser", "Add a new user to the database", |
075fe5bb | 673 | AddNewUser), |
674 | SIMPLEFUNC("register", "Register a user", RegisterUser), | |
a444fefe | 675 | {DeactivateUser, NULLMENU, 2, { |
676 | {"deactivate", "Deactivate user"}, | |
677 | {"login", "Login name: "}, | |
678 | } }, | |
08345b74 | 679 | {DeleteUser, NULLMENU, 2, { |
a444fefe | 680 | {"expunge", "Expunge user"}, |
08345b74 | 681 | {"login", "Login name: "} |
682 | } }, | |
0a2c64cb | 683 | SUBMENU("pobox", "Post Office Box Menu", &pobox_menu), |
a6c2a13a | 684 | SUBMENU("krbmap", "User Kerberos Mappings", &krbmap_menu), |
41c81c11 | 685 | SUBMENU("reservations", "User Reservations Menu", &reservations_menu), |
08345b74 | 686 | } |
687 | }; | |
688 | ||
e532b848 | 689 | Menu dcm_menu = { |
5eaef520 | 690 | NULLFUNC, |
691 | NULLFUNC, | |
692 | "DCM Menu", | |
693 | 6, | |
694 | { | |
695 | SIMPLEFUNC("enable", "Enable/disable DCM", EnableDcm), | |
696 | SUBMENU("service", "DCM Service Menu", &service_menu), | |
697 | SUBMENU("host", "DCM Host Menu", &host_menu), | |
698 | SIMPLEFUNC("active", "Display entries currently being updated", | |
699 | InProgress), | |
700 | SIMPLEFUNC("failed", "Display entries with errors to be reset", DcmFailed), | |
701 | SIMPLEFUNC("dcm", "Invoke a DCM update now", Dcm), | |
e532b848 | 702 | } |
703 | }; | |
704 | ||
59c53d7f | 705 | Menu printserver_menu = { |
706 | NULLFUNC, | |
707 | NULLFUNC, | |
708 | "Print Server Menu", | |
709 | 4, | |
710 | { | |
711 | { GetPrintSrv, NULLMENU, 2, { | |
712 | {"get", "Get Print Server Information"}, | |
713 | {"name", "Name of server: "} | |
714 | } }, | |
715 | { AddPrintSrv, NULLMENU, 2, { | |
716 | {"add", "Add a New Print Server"}, | |
717 | {"name", "Name of server: "} | |
718 | } }, | |
719 | { ChangePrintSrv, NULLMENU, 2, { | |
720 | {"change", "Modify a Print Server"}, | |
721 | {"name", "Name of server: "} | |
722 | } }, | |
723 | { DelPrintSrv, NULLMENU, 2, { | |
724 | {"delete", "Delete a Print Server"}, | |
725 | {"name", "Name of server: "} | |
726 | } } | |
727 | } | |
728 | }; | |
729 | ||
5eaef520 | 730 | /* |
28064364 | 731 | * Printer Menu |
e532b848 | 732 | */ |
733 | ||
734 | Menu printer_menu = { | |
5eaef520 | 735 | NULLFUNC, |
736 | NULLFUNC, | |
e532b848 | 737 | "Printer Menu", |
59c53d7f | 738 | 11, |
e532b848 | 739 | { |
28064364 | 740 | { GetPrn, NULLMENU, 2, { |
741 | {"get", "Get Printer Information"}, | |
e532b848 | 742 | {"name", "Name of Printer: "} |
743 | } }, | |
28064364 | 744 | { GetPrnByHostname, NULLMENU, 2, { |
745 | {"hostname", "Look up Printer Information by Printer Hostname"}, | |
746 | {"name", "Hostname of Printer: "} | |
e532b848 | 747 | } }, |
28064364 | 748 | { GetPrnByEthernet, NULLMENU, 2, { |
749 | {"ether", "Look up Printer Information by Ethernet address"}, | |
750 | {"hwaddr", "Ethernet address of Printer: "} | |
a6c2a13a | 751 | } }, |
28064364 | 752 | { GetPrnByRM, NULLMENU, 2, { |
753 | {"rm", "Look up Printer Information by Print Spooler"}, | |
754 | {"name", "Hostname of spooler: "} | |
a6c2a13a | 755 | } }, |
28064364 | 756 | { GetPrnByLocation, NULLMENU, 2, { |
757 | {"loc", "Look up Printer Information by Location"}, | |
758 | {"location", "Location: "} | |
a6c2a13a | 759 | } }, |
28064364 | 760 | { GetPrnByContact, NULLMENU, 2, { |
761 | {"contact", "Look up Printer Information by Contact Info"}, | |
762 | {"contact", "Contact: "} | |
a6c2a13a | 763 | } }, |
28064364 | 764 | { AddPrn, NULLMENU, 2, { |
765 | {"add", "Add New Printer to Database"}, | |
766 | {"name", "name: "}, | |
a6c2a13a | 767 | } }, |
28064364 | 768 | { ChngPrn, NULLMENU, 2, { |
769 | {"change", "Update Printer Information"}, | |
770 | {"name", "name: "}, | |
a6c2a13a | 771 | } }, |
28064364 | 772 | { DeletePrn, NULLMENU, 2, { |
773 | {"delete", "Delete Printer"}, | |
774 | {"name", "Printer Name: "} | |
a6c2a13a | 775 | } }, |
28064364 | 776 | { UpdateHWAddr, NULLMENU, 2, { |
777 | {"hwaddr", "Update Printer Hardware Address"}, | |
778 | {"name", "Printer hostname: "} | |
59c53d7f | 779 | } }, |
780 | SUBMENU("server", "Print Servers Menu", &printserver_menu), | |
a6c2a13a | 781 | } |
782 | }; | |
783 | ||
a137231c | 784 | /* |
785 | * Zephyr Menu | |
786 | */ | |
787 | ||
788 | Menu zephyr_menu = { | |
5eaef520 | 789 | NULLFUNC, |
790 | NULLFUNC, | |
791 | "Zephyr Menu", | |
792 | 5, | |
793 | { | |
794 | { GetZephyr, NULLMENU, 2, { | |
795 | {"get", "Get Zephyr Class Information"}, | |
796 | {"name", "Name of class: "} | |
797 | } }, | |
798 | { AddZephyr, NULLMENU, 2, { | |
799 | {"add", "Add New Zephyr class restrictions"}, | |
800 | {"name", "Class name: "}, | |
801 | } }, | |
802 | { ChngZephyr, NULLMENU, 2, { | |
803 | {"change", "Update Zephyr class restrictions"}, | |
804 | {"name", "Class name: "}, | |
805 | } }, | |
806 | { DeleteZephyr, NULLMENU, 2, { | |
807 | {"delete", "Delete Zephyr class restriction"}, | |
808 | {"name", "Class Name: "} | |
809 | } }, | |
810 | { NULLFUNC, &list_member_menu, 2, { | |
811 | {"members", "Member Menu - Change/Show Members of a List."}, | |
812 | {"list name", "Name of list: "} | |
813 | } }, | |
814 | } | |
a137231c | 815 | }; |
816 | ||
17bbb3bc | 817 | /* |
818 | * ACL Menu | |
819 | */ | |
820 | ||
821 | Menu acl_menu = { | |
822 | NULLFUNC, | |
823 | NULLFUNC, | |
824 | "Generic ACL Menu", | |
825 | 3, | |
826 | { | |
827 | { GetACL, NULLMENU, 3, { | |
828 | {"get", "Get ACL Information"}, | |
829 | {"host", "Machine: "}, | |
830 | {"target", "Target file: "} | |
831 | } }, | |
832 | { AddACL, NULLMENU, 3, { | |
833 | {"add", "Add New ACL"}, | |
834 | {"host", "Machine: "}, | |
835 | {"target", "Target file: "} | |
836 | } }, | |
837 | { DeleteACL, NULLMENU, 3, { | |
838 | {"delete", "Delete ACL"}, | |
839 | {"host", "Machine: "}, | |
840 | {"target", "Target file: "} | |
841 | } }, | |
842 | } | |
843 | }; | |
a6c2a13a | 844 | |
9cd2d193 | 845 | /* |
846 | * Container Menu | |
847 | */ | |
848 | ||
849 | Menu container_menu = { | |
850 | NULLFUNC, | |
851 | NULLFUNC, | |
852 | "Container Menu", | |
86ad14f9 | 853 | 8, |
9cd2d193 | 854 | { |
855 | { ShowContainerInfo, NULLMENU, 2, { | |
856 | {"show", "Get container information"}, | |
857 | {"name", "Container's Name: "} | |
858 | } }, | |
859 | { AddContainer, NULLMENU, 2, { | |
860 | {"add", "Add a new container"}, | |
861 | {"name", "Container's Name: "} | |
862 | } }, | |
863 | { UpdateContainer, NULLMENU, 2, { | |
864 | {"update", "Update container information"}, | |
865 | {"name", "Container's Name: "} | |
866 | } }, | |
867 | { DeleteContainer, NULLMENU, 2, { | |
868 | {"delete", "Delete this container"}, | |
869 | {"name", "Container's Name: "} | |
870 | } }, | |
871 | { GetSubContainers, NULLMENU, 2, { | |
872 | {"subcont", "Get subcontainers of container"}, | |
873 | {"name", "Container's Name: "} | |
874 | } }, | |
86ad14f9 | 875 | SIMPLEFUNC("toplevel", "Get all top level containers", GetTopLevelCont), |
9cd2d193 | 876 | SUBMENU("mappings", "Machine to Container Mappings Menu", &cmappings_menu), |
877 | SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode) | |
878 | } | |
879 | }; | |
880 | ||
a5204f48 | 881 | /* |
882 | * Miscellaneous Menu | |
883 | */ | |
884 | ||
885 | Menu misc_menu = { | |
5eaef520 | 886 | NULLFUNC, |
887 | NULLFUNC, | |
888 | "Miscellaneous Menu", | |
889 | 4, | |
890 | { | |
891 | SIMPLEFUNC("statistics", "Show database statistics", TableStats), | |
892 | SIMPLEFUNC("clients", "Show active Moira clients", ShowClients), | |
893 | { ShowValue, NULLMENU, 2, { | |
894 | {"getval", "Show a database variable value"}, | |
895 | {"name", "variable name: "}, | |
896 | } }, | |
897 | { ShowAlias, NULLMENU, 3, { | |
898 | {"getalias", "Show an alias relation"}, | |
899 | {"name", "Alias name: "}, | |
900 | {"type", "Alias type: "}, | |
901 | } }, | |
902 | } | |
a5204f48 | 903 | }; |
904 | ||
905 | ||
0a2c64cb | 906 | /* ------------------------- Root Menu ------------------------- */ |
907 | ||
5eaef520 | 908 | /* |
8defc06b | 909 | * Moira top menu |
08345b74 | 910 | */ |
911 | ||
8defc06b | 912 | Menu moira_top_menu = { |
08345b74 | 913 | NULLFUNC, |
914 | NULLFUNC, | |
95cd286e | 915 | "Moira Database Manipulation", |
9cd2d193 | 916 | 13, |
08345b74 | 917 | { |
5eaef520 | 918 | SUBMENU("cluster", "Cluster Menu", &cluster_menu), |
919 | SUBMENU("filesys", "Filesystem Menu", &filesys_menu), | |
920 | SUBMENU("list", "Lists and Group Menu", &list_menu), | |
921 | SUBMENU("machine", "Machine Menu", &machine_menu), | |
62eb195e | 922 | SUBMENU("network", "Network Menu", &subnet_menu), |
5eaef520 | 923 | SUBMENU("nfs", "NFS Physical Menu", &nfsphys_menu), |
28064364 | 924 | SUBMENU("printer", "Printer Menu", &printer_menu), |
5eaef520 | 925 | SUBMENU("user", "User Menu", &user_menu), |
a137231c | 926 | SUBMENU("zephyr", "Zephyr ACLS Menu", &zephyr_menu), |
a5204f48 | 927 | SUBMENU("dcm", "DCM Menu", &dcm_menu), |
17bbb3bc | 928 | SUBMENU("acl", "Generic ACL Menu", &acl_menu), |
9cd2d193 | 929 | SUBMENU("container", "Container Menu", &container_menu), |
a5204f48 | 930 | SUBMENU("misc", "Miscellaneous Menu", &misc_menu) |
08345b74 | 931 | } |
5eaef520 | 932 | }; |