]> andersk Git - moira.git/blob - clients/moira/menus.c
rename struct qelem to struct mqelem to avoid conflicts with the REAL
[moira.git] / clients / moira / menus.c
1 /* $Id $
2  *
3  *      This is the file menus.c for the Moira Client, which allows users
4  *      to quickly and easily maintain most parts of the Moira database.
5  *      It Contains: All menu definitions.
6  *
7  *      Created:        4/11/88
8  *      By:             Chris D. Peterson
9  *
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>.
13  */
14
15 #include <stdio.h>
16
17 #include "mit-copyright.h"
18 #include <moira.h>
19 #include "defs.h"
20 #include "f_defs.h"
21 #include "globals.h"
22
23 #include <stdio.h>
24
25 RCSID("$Header$");
26
27 /* ------------------------- Second Tier Menus ------------------------- */
28
29 /*
30  * Cluster Data Menu
31  */
32
33 Menu cluster_data_menu = {
34   NULLFUNC,
35   NULLFUNC,
36   "Cluster Data Menu",
37   4,
38   {
39     { ShowClusterData, NULLMENU, 3, {
40       {"show", "Show Data on a given Cluster"},
41       {"clus", "Cluster's Name: "},
42       {"label", "Label Identifing the data: "},
43     } },
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: "},
49     } },
50     { RemoveClusterData, NULLMENU, 3, {
51       {"delete", "Remove Data from a given Cluster"},
52       {"clus", "Cluster's Name: "},
53       {"label", "Label Identifing the data: "},
54     } },
55     SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode)
56   }
57 };
58
59 /*
60  * List Information Menu
61  */
62
63 Menu list_info_menu = {
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   }
78 };
79
80 /*
81  * List Member Menu
82  */
83
84 Menu list_member_menu = {
85   ListmaintMemberMenuEntry,
86   ListmaintMemberMenuExit,
87   NULL,
88   7,
89   {
90     SIMPLEFUNC("add", "Add a member to this list", AddMember),
91     SIMPLEFUNC("remove", "Remove a member from this list", DeleteMember),
92     SIMPLEFUNC("all", "Show the members of this list", ListAllMembers),
93     SIMPLEFUNC("user", "Show the members of type USER", ListUserMembers),
94     SIMPLEFUNC("list", "Show the members of type LIST", ListListMembers),
95     SIMPLEFUNC("string", "Show the members of type STRING",
96                ListStringMembers),
97     SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode)
98   }
99 };
100
101 /*
102  *  Machine To Cluster Mappings Menu
103  */
104
105 Menu mappings_menu = {
106   NULLFUNC,
107   NULLFUNC,
108   "Machine To Cluster Mappings Menu",
109   4,
110   {
111     { MachineToClusterMap, NULLMENU, 3, {
112       {"map", "Show Machine to cluster mapping"},
113       {"name", "Machine's Name: "},
114       {"cluster", "Cluster's Name: "},
115     } },
116     { AddMachineToCluster, NULLMENU, 3, {
117       {"addcluster", "Add machine to a cluster"},
118       {"name", "Machine's Name: "},
119       {"cluster", "Cluster's Name: "},
120     } },
121     { RemoveMachineFromCluster, NULLMENU, 3, {
122       {"remcluster", "Remove machines from clusters"},
123       {"name", "Machine's Name: "},
124       {"cluster", "Cluster's Name: "},
125     } },
126     SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode),
127   }
128 };
129
130 /*
131  * Post Office Box Menu
132  */
133
134 Menu pobox_menu = {
135   NULLFUNC,
136   NULLFUNC,
137   "Post Office Box Menu",
138   4,
139   {
140     {GetUserPOBox, NULLMENU, 2, {
141       {"show", "Show a user's post office box"},
142       {"login name", "login name: "}
143     } },
144     {SetUserPOBox, NULLMENU, 2, {
145       {"set", "Set (Add or Change) a user's post office box"},
146       {"login name", "login name: "}
147     } },
148     {RemoveUserPOBox, NULLMENU, 2, {
149       {"remove", "Remove a user's post office box"},
150       {"login name", "login name: "}
151     } },
152     SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode)
153   }
154 };
155
156 /*
157  * Quota Menu
158  */
159
160 Menu quota_menu = {
161   NULLFUNC,
162   NULLFUNC,
163   "Quota Menu",
164   8,
165   {
166     SIMPLEFUNC("shdef", "Show default user quota (in KB)", ShowDefaultQuota),
167     {ChangeDefaultQuota, NULLMENU, 2, {
168       {"chdef", "Change default user quota"},
169       {"quota", "New quota (in KB): "}
170     } },
171     SIMPLEFUNC("getquota", "Show a quota on a filesystem",
172                GetQuota),
173     SIMPLEFUNC("getfsquotas", "Show all quotas on a filesystem",
174                GetQuotaByFilesys),
175     SIMPLEFUNC("addquota", "Add a new disk quota on a filesystem",
176                AddQuota),
177     SIMPLEFUNC("upquota", "Change a quota on a filesystem",
178                UpdateQuota),
179     SIMPLEFUNC("delquota", "Delete a quota on a filesystem",
180                DeleteQuota),
181     SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode)
182   }
183 };
184
185 Menu fsgroup_menu = {
186   NULLFUNC,
187   NULLFUNC,
188   "Filesystem Group Menu",
189   6,
190   {
191     { GetFS, NULLMENU, 2, {
192       {"get", "Get individual or group filesystem information"},
193       {"name", "Name of Filesystem: "}
194     } },
195     { AddFSToGroup, NULLMENU, 3, {
196       {"add", "Add a new filesystem to an FS group"},
197       {"group", "FS Group name: "},
198       {"filsys", "Filesystem name: "}
199     } },
200     { RemoveFSFromGroup, NULLMENU, 3, {
201       {"remove", "Remove a filesystem from an FS group"},
202       {"group", "FS Group name: "},
203       {"filsys", "Filesystem name: "}
204     } },
205     { ChangeFSGroupOrder, NULLMENU, 2, {
206       {"order", "Change the order of filesystems in a group"},
207       {"group", "FS Group name: "}
208     } },
209     SIMPLEFUNC("help", "Info on Filesystem Groups", FSGroupHelp),
210     SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode)
211   }
212 };
213
214 Menu service_menu = {
215   NULLFUNC,
216   NULLFUNC,
217   "DCM Service Menu",
218   6,
219   {
220     { showserv, NULLMENU, 2, {
221       { "showserv", "Show service information" },
222       { "service name", "Name of service: " },
223     } },
224     { addserv, NULLMENU, 2, {
225       { "addserv", "Add a new service" },
226       { "service name", "Name of service: " },
227     } },
228     { updateserv, NULLMENU, 2, {
229       { "updateserv", "Update service information" },
230       { "service name", "Name of service: " },
231     } },
232     { resetsrverr, NULLMENU, 2, {
233       { "resetsrverr", "Reset service error" },
234       { "service name", "Name of service: " },
235     } },
236     { resetsrvc, NULLMENU, 2, {
237       { "resetsrvc", "Reset service state" },
238       { "service name", "Name of service: " },
239     } },
240     { delserv, NULLMENU, 2, {
241       { "delserv", "Delete service info" },
242       { "service name", "Name of service: " },
243     } },
244   }
245 };
246
247 Menu host_menu = {
248   NULLFUNC,
249   NULLFUNC,
250   "DCM Host Menu",
251   7,
252   {
253     { showhost, NULLMENU, 3, {
254       { "showhost", "Show service/host tuple information" },
255       { "service name", "Name of service: " },
256       { "host name", "Name of machine: " },
257     } },
258     { addhost, NULLMENU, 3, {
259       { "addhost", "Add a new service/host tuple" },
260       { "service name", "Name of service: " },
261       { "host name", "Name of machine: " },
262     } },
263     { updatehost, NULLMENU, 3, {
264       { "updatehost", "Update a service/host tuple" },
265       { "service name", "Name of service: " },
266       { "host name", "Name of machine: " },
267     } },
268     { resethosterr, NULLMENU, 3, {
269       { "resethosterr", "Reset service/host error" },
270       { "service name", "Name of service: " },
271       { "host name", "Name of machine: " },
272     } },
273     { resethost, NULLMENU, 3, {
274       { "resethost", "Reset service/host state" },
275       { "service name", "Name of service: " },
276       { "host name", "Name of machine: " },
277     } },
278     { sethostor, NULLMENU, 3, {
279       { "override", "Set service/host override" },
280       { "service name", "Name of service: " },
281       { "host name", "Name of machine: " },
282     } },
283     { delhost, NULLMENU, 3, {
284       { "delhost", "Delete service/host tuple" },
285       { "service name", "Name of service: " },
286       { "host name", "Name of machine: " },
287     } },
288   }
289 };
290
291 /* ------------------------- First Tier Menus ------------------------- */
292
293 /*
294  * Cluster Menu
295  */
296
297 Menu cluster_menu = {
298   NULLFUNC,
299   NULLFUNC,
300   "Cluster Menu",
301   7,
302   {
303     { ShowClusterInfo, NULLMENU, 2, {
304       {"show", "Get cluster information"},
305       {"name", "Cluster's Name: "}
306     } },
307     { AddCluster, NULLMENU, 2, {
308       {"add", "Add a new cluster"},
309       {"name", "Cluster's Name: "},
310     } },
311     { UpdateCluster, NULLMENU, 2, {
312       {"update", "Update cluster information"},
313       {"name", "Cluster's Name: "},
314     } },
315     { DeleteCluster, NULLMENU, 2, {
316       {"delete", "Delete this cluster"},
317       {"name", "Cluster's Name: "}
318     } },
319     SUBMENU("mappings", "Machine To Cluster Mappings Menu", &mappings_menu),
320     SUBMENU("c_data", "Cluster Data Menu", &cluster_data_menu),
321     SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode)
322   }
323 };
324
325 /*
326  * Filesystem Menu
327  */
328
329 Menu filesys_menu = {
330   NULLFUNC,
331   NULLFUNC,
332   "Filesystem Menu",
333   10,
334   {
335     { GetFS, NULLMENU, 2, {
336       {"get", "Get Filesystem Name Information"},
337       {"name", "Name of Filesystem: "}
338     } },
339     { GetFSM, NULLMENU, 2, {
340       {"getmach", "Get Filesystems by Machine"},
341       {"name", "Name of Server: "}
342     } },
343     { AddFS, NULLMENU, 2, {
344       {"add", "Add New Filesystem to Database"},
345       {"name", "name: "},
346     } },
347     { ChangeFS, NULLMENU, 2, {
348       {"change", "Update Filesystem Information"},
349       {"name", "name: "},
350     } },
351     { DeleteFS, NULLMENU, 2, {
352       {"delete", "Delete Filesystem"},
353       {"name", "Filesystem Name: "}
354     } },
355     SUBMENU("fsgroups", "File System Groups Menu", &fsgroup_menu),
356     { GetFSAlias, NULLMENU, 2, {
357       {"check", "Check An Association"},
358       {"name", "alias name : "}
359     } },
360     { CreateFSAlias, NULLMENU, 2, {
361       {"alias", "Associate with a Filesystem"},
362       {"name", "alias name : "},
363     } },
364     { DeleteFSAlias, NULLMENU, 2, {
365       {"unalias", "Disassociate from a Filesystem"},
366       {"name", "alias name : "},
367     } },
368     SUBMENU("quotas", "Quota Menu", &quota_menu),
369 /*    SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode), */
370 /*    SIMPLEFUNC("help", "Help ..", AttachHelp) */
371   }
372 };
373
374 Menu subnet_menu = {
375   NULLFUNC,
376   NULLFUNC,
377   "Network Menu",
378   5,
379   {
380     { ShowSubnetInfo, NULLMENU, 2, {
381       {"show", "Get network information"},
382       {"name", "Network's Name: "}
383     } },
384     { AddSubnet, NULLMENU, 2, {
385       {"add", "Add a new network"},
386       {"name", "Network's Name: "},
387     } },
388     { UpdateSubnet, NULLMENU, 2, {
389       {"update", "Update network information"},
390       {"name", "Network's Name: "},
391     } },
392     { DeleteSubnet, NULLMENU, 2, {
393       {"delete", "Delete this network"},
394       {"name", "Network's Name: "}
395     } },
396     SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode)
397   }
398 };
399
400 Menu cname_menu = {
401   NULLFUNC,
402   NULLFUNC,
403   "Host Alias Menu",
404   4,
405   {
406     { ShowCname, NULLMENU, 3, {
407       {"show", "Get host alias information"},
408       {"alias", "Alias Name (Cname): "},
409       {"host", "Canonical Host Name: "}
410     } },
411     { AddCname, NULLMENU, 3, {
412       {"add", "Add a new host alias"},
413       {"alias", "Alias Name (Cname): "},
414       {"host", "Canonical Host Name: "}
415     } },
416     { DeleteCname, NULLMENU, 3, {
417       {"delete", "Delete this alias"},
418       {"alias", "Alias Name (Cname): "},
419       {"host", "Canonical Host Name: "}
420     } },
421     SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode)
422   }
423 };
424
425 /*
426  * Machine Menu
427  */
428
429 Menu machine_menu = {
430   NULLFUNC,
431   NULLFUNC,
432   "Machine Menu",
433   7,
434   {
435     { ShowMachineInfo, NULLMENU, 2, {
436       {"show", "Get machine information"},
437       {"name", "Machine's Name: "}
438     } },
439     { ShowMachineQuery, NULLMENU, 5, {
440       {"query", "Lookup machines"},
441       {"name", "Machine Name (or leave empty to match any): "},
442       {"address", "Address in dotted notation (or leave empty to match any): "},
443       {"location", "Location (or leave empty to match any): "},
444       {"network", "Network (or leave empty to match any): "}
445     } },
446     { AddMachine, NULLMENU, 2, {
447       {"add", "Add a new machine"},
448       {"network", "Network assignment: "},
449     } },
450     { UpdateMachine, NULLMENU, 2, {
451       {"update", "Update machine information"},
452       {"name", "Machine's Name: "},
453     } },
454     { DeleteMachine, NULLMENU, 2, {
455       {"delete", "Delete this machine"},
456       {"name", "Machine's Name: "}
457     } },
458     SUBMENU("cnames", "Alias names for machines", &cname_menu),
459     SUBMENU("mappings", "Machine To Cluster Mappings Menu", &mappings_menu),
460   }
461 };
462
463 /*
464  * List Menu
465  */
466
467 Menu list_menu = {
468   NULLFUNC,
469   NULLFUNC,
470   "List Menu",
471   9,
472   {
473     { ShowListInfo, NULLMENU, 2, {
474       {"show", "Display information about a list"},
475       {"list name", "Name of list: "}
476     } },
477     { NULLFUNC, &list_member_menu, 2, {
478       {"add", "Create new List"},
479       {"list name", "Name of list: "}
480     } },
481     { UpdateList, NULLMENU, 2, {
482       {"update", "Update characteristics of a list"},
483       {"list name", "Name of list: "}
484     } },
485     { DeleteList, NULLMENU, 2, {
486       {"delete", "Delete a List"},
487       {"list name", "Name of list: "}
488     } },
489     SIMPLEFUNC("query_remove",
490                "Interactively remove an item from all lists",
491                InterRemoveItemFromLists),
492     { NULLFUNC, &list_member_menu, 2, {
493       {"members", "Member Menu - Change/Show Members of a List."},
494       {"list name", "Name of list: "}
495     } },
496     SUBMENU("list_info", "List Info Menu",
497             &list_info_menu),
498     SUBMENU("quotas", "Quota Menu", &quota_menu),
499 /*      SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode), */
500     SIMPLEFUNC("help", "Print Help", ListHelp)
501   }
502 };
503
504 /*
505  * NFS Physical Menu
506  */
507
508 Menu nfsphys_menu = {
509   NULLFUNC,
510   NULLFUNC,
511   "NFS Physical Menu",
512   6,
513   {
514     { ShowNFSService, NULLMENU, 2, {
515       { "show", "Show an NFS server" },
516       { "machine", "Machine Name: "},
517     } },
518     { AddNFSService, NULLMENU, 2, {
519       { "add", "Add NFS server" },
520       { "machine", "Machine Name: "},
521     } },
522     { UpdateNFSService, NULLMENU, 2, {
523       { "update", "Update NFS server"},
524       { "machine", "Machine Name: "},
525     } },
526     { DeleteNFSService, NULLMENU, 2, {
527       { "delete", "Delete NFS server"},
528       {"machine", "Machine Name: "},
529     } },
530     SUBMENU("quotas", "Quota Menu", &quota_menu),
531     SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode),
532 /*    SIMPLEFUNC("help", "Help", NFSHelp), */
533   }
534 };
535
536 Menu krbmap_menu = {
537   NULLFUNC,
538   NULLFUNC,
539   "User Kerberos Mapping Menu",
540   3,
541   {
542     { GetKrbmap, NULLMENU, 3, {
543       { "show", "Show Kerberos Mappings" },
544       { "user", "User login name: " },
545       { "principal", "Principal: " },
546     } },
547     { AddKrbmap, NULLMENU, 3, {
548       { "add", "Add Kerberos Mapping" },
549       { "user", "User login name: " },
550       { "principal", "Principal (this is case sensitive): " },
551     } },
552     { DeleteKrbmap, NULLMENU, 3, {
553       { "delete", "Delete Kerberos Mapping" },
554       { "user", "User login name: " },
555       { "principal", "Principal: " },
556     } },
557   }
558 };
559
560 Menu mitdir_menu = {
561   NULLFUNC,
562   NULLFUNC,
563   "MIT On-line Directory Preferences Menu",
564   2,
565   {
566     { GetDirFlags, NULLMENU, 2, {
567       { "show", "Show Directory Preferences" },
568       { "login", "Login name: " },
569     } },
570     { SetDirFlags, NULLMENU, 2, {
571       { "change", "Change Directory Preference" },
572       { "login", "Login name: " },
573     } },
574   }
575 };
576
577 /*
578  * User Menu
579  */
580
581 Menu user_menu = {
582   NULLFUNC,
583   NULLFUNC,
584   "User Menu",
585   12,
586   {
587     {ShowUserByLogin, NULLMENU, 2, {
588        {"login", "Show user information by login name"},
589        {"login name", "Desired login name: "}
590      } },
591     {ShowUserByName, NULLMENU, 3, {
592       {"name", "Show user information by name"},
593       {"first", "First name: "},
594       {"last", "Last name: "}
595     } },
596     {ShowUserByClass, NULLMENU, 2, {
597       {"class", "Show names of users in a given class"},
598       {"login name", "Desired class: "}
599     } },
600     {ShowUserById, NULLMENU, 2, {
601       {"id", "Show user information by ID number"},
602       {"ID number", "ID number: "}
603     } },
604     {UpdateUser, NULLMENU, 2, {
605       {"modify", "Change all user fields"},
606       {"login", "Login name: "}
607     } },
608     SIMPLEFUNC("adduser", "Add a new user to the database",
609                AddNewUser),
610     SIMPLEFUNC("register", "Register a user", RegisterUser),
611     {DeactivateUser, NULLMENU, 2, {
612       {"deactivate", "Deactivate user"},
613       {"login", "Login name: "},
614     } },
615     {DeleteUser, NULLMENU, 2, {
616       {"expunge", "Expunge user"},
617       {"login", "Login name: "}
618     } },
619     SUBMENU("pobox", "Post Office Box Menu", &pobox_menu),
620     SUBMENU("krbmap", "User Kerberos Mappings", &krbmap_menu),
621     SUBMENU("mitdir", "MIT On-line Directory Preferences", &mitdir_menu),
622   }
623 };
624
625 Menu dcm_menu = {
626   NULLFUNC,
627   NULLFUNC,
628   "DCM Menu",
629   6,
630   {
631     SIMPLEFUNC("enable", "Enable/disable DCM", EnableDcm),
632     SUBMENU("service", "DCM Service Menu", &service_menu),
633     SUBMENU("host", "DCM Host Menu", &host_menu),
634     SIMPLEFUNC("active", "Display entries currently being updated",
635                InProgress),
636     SIMPLEFUNC("failed", "Display entries with errors to be reset", DcmFailed),
637     SIMPLEFUNC("dcm", "Invoke a DCM update now", Dcm),
638     }
639 };
640
641 /*
642  * Printcap Printer Menu
643  */
644
645 Menu printer_menu = {
646   NULLFUNC,
647   NULLFUNC,
648   "Printer Menu",
649   4,
650   {
651     { GetPcap, NULLMENU, 2, {
652       {"get", "Get Printcap Entry Information"},
653       {"name", "Name of Printer: "}
654     } },
655     { AddPcap, NULLMENU, 2, {
656       {"add", "Add New Printcap Entry to Database"},
657       {"name", "name: "},
658     } },
659     { ChngPcap, NULLMENU, 2, {
660       {"change", "Update Printer Information"},
661       {"name", "name: "},
662     } },
663     { DeletePcap, NULLMENU, 2, {
664       {"delete", "Delete Printcap Entry"},
665       {"name", "Printer Name: "}
666     } }
667   }
668 };
669
670
671 /*
672  * Palladium Printer Menu
673  */
674
675 Menu palladium_menu = {
676   NULLFUNC,
677   NULLFUNC,
678   "Printer Menu",
679   7,
680   {
681     { GetPalladium, NULLMENU, 2, {
682       {"get", "Get Palladium Server/Supervisor Information"},
683       {"name", "Name of Printer: "}
684     } },
685     { AddPalladium, NULLMENU, 2, {
686       {"add", "Add New Palladium Server/Supervisor to Database"},
687       {"name", "Supervisor/server name: "},
688     } },
689     { ChngPalladium, NULLMENU, 2, {
690       {"change", "Update Palladium Server/Supervisor Information"},
691       {"name", "name: "},
692     } },
693     { DeletePalladium, NULLMENU, 2, {
694       {"delete", "Delete Palladium Server/Supervisor Entry"},
695       {"name", "Printer Name: "}
696     } },
697     { ShowPalladiumAlias, NULLMENU, 3, {
698       {"getprinter", "Show Logical Printers"},
699       {"newname", "Printer name: "},
700       {"server", "Supervisor or Server name: "},
701     } },
702     { AddPalladiumAlias, NULLMENU, 3, {
703       {"addprinter", "Add Logical Printer"},
704       {"newname", "New printer: "},
705       {"server", "Supervisor or Server name: "},
706     } },
707     { DeletePalladiumAlias, NULLMENU, 3, {
708       {"delprinter", "Remove Logical Printer"},
709       {"newname", "Printer name: "},
710       {"server", "Supervisor or Server name: "},
711     } },
712   }
713 };
714
715
716
717 /*
718  * Zephyr Menu
719  */
720
721 Menu zephyr_menu = {
722   NULLFUNC,
723   NULLFUNC,
724   "Zephyr Menu",
725   5,
726   {
727     { GetZephyr, NULLMENU, 2, {
728       {"get", "Get Zephyr Class Information"},
729       {"name", "Name of class: "}
730     } },
731     { AddZephyr, NULLMENU, 2, {
732       {"add", "Add New Zephyr class restrictions"},
733       {"name", "Class name: "},
734     } },
735     { ChngZephyr, NULLMENU, 2, {
736       {"change", "Update Zephyr class restrictions"},
737       {"name", "Class name: "},
738     } },
739     { DeleteZephyr, NULLMENU, 2, {
740       {"delete", "Delete Zephyr class restriction"},
741       {"name", "Class Name: "}
742     } },
743     { NULLFUNC, &list_member_menu, 2, {
744       {"members", "Member Menu - Change/Show Members of a List."},
745       {"list name", "Name of list: "}
746     } },
747   }
748 };
749
750
751 /*
752  * Miscellaneous Menu
753  */
754
755 Menu misc_menu = {
756   NULLFUNC,
757   NULLFUNC,
758   "Miscellaneous Menu",
759   4,
760   {
761     SIMPLEFUNC("statistics", "Show database statistics", TableStats),
762     SIMPLEFUNC("clients", "Show active Moira clients", ShowClients),
763     { ShowValue, NULLMENU, 2, {
764       {"getval", "Show a database variable value"},
765       {"name", "variable name: "},
766     } },
767     { ShowAlias, NULLMENU, 3, {
768       {"getalias", "Show an alias relation"},
769       {"name", "Alias name: "},
770       {"type", "Alias type: "},
771     } },
772   }
773 };
774
775
776 /* ------------------------- Root Menu ------------------------- */
777
778 /*
779  * Moira top menu
780  */
781
782 Menu moira_top_menu = {
783   NULLFUNC,
784   NULLFUNC,
785   "Moira Database Manipulation",
786   12,
787   {
788     SUBMENU("cluster", "Cluster Menu", &cluster_menu),
789     SUBMENU("filesys", "Filesystem Menu", &filesys_menu),
790     SUBMENU("list", "Lists and Group Menu", &list_menu),
791     SUBMENU("machine", "Machine Menu", &machine_menu),
792     SUBMENU("network", "Network Menu", &subnet_menu),
793     SUBMENU("nfs", "NFS Physical Menu", &nfsphys_menu),
794     SUBMENU("palladium", "Palladium Printer Menu", &palladium_menu),
795     SUBMENU("printcap", "Printcap Printer Menu", &printer_menu),
796     SUBMENU("user", "User Menu", &user_menu),
797     SUBMENU("zephyr", "Zephyr ACLS Menu", &zephyr_menu),
798     SUBMENU("dcm", "DCM Menu", &dcm_menu),
799     SUBMENU("misc", "Miscellaneous Menu", &misc_menu)
800   }
801 };
This page took 0.10181 seconds and 5 git commands to generate.