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