1 #if (!defined(lint) && !defined(SABER))
2 static char rcsid_module_c[] = "$Header$";
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.
10 * By: Chris D. Peterson
16 * Copyright 1988 by the Massachusetts Institute of Technology.
18 * For further information on copyright and distribution
19 * see the file mit-copyright.h
25 #include "mit-copyright.h"
31 /* ------------------------- Second Tier Menus ------------------------- */
37 Menu cluster_data_menu = {
43 { ShowClusterData, NULLMENU, 3, {
44 {"show", "Show Data on a given Cluster"},
45 {"clus", "Cluster's Name: "},
46 {"label", "Label Identifing the data: "},
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: "},
54 { RemoveClusterData, NULLMENU, 3, {
55 {"delete", "Remove Data from a given Cluster"},
56 {"clus", "Cluster's Name: "},
57 {"label", "Label Identifing the data: "},
59 SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode)
64 * List Information Menu
67 Menu list_info_menu = {
70 "List Information Menu",
74 "Show all lists to which a given member belongs",
77 "Show all items which a given member can administer",
79 SIMPLEFUNC("public", "Show all public mailing lists",
80 ListAllPublicMailLists),
88 Menu list_member_menu = {
89 ListmaintMemberMenuEntry,
90 ListmaintMemberMenuExit,
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",
101 SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode)
106 * Machine To Cluster Mappings Menu
109 Menu mappings_menu = {
112 "Machine To Cluster Mappings Menu",
115 { MachineToClusterMap, NULLMENU, 3, {
116 {"map", "Show Machine to cluster mapping"},
117 {"name", "Machine's Name: "},
118 {"cluster", "Cluster's Name: "},
120 { AddMachineToCluster, NULLMENU, 3, {
121 {"addcluster", "Add machine to a cluster"},
122 {"name", "Machine's Name: "},
123 {"cluster", "Cluster's Name: "},
125 { RemoveMachineFromCluster, NULLMENU, 3, {
126 {"remcluster", "Remove machines from clusters"},
127 {"name", "Machine's Name: "},
128 {"cluster", "Cluster's Name: "},
130 SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode),
135 * Post Office Box Menu
141 "Post Office Box Menu",
144 {GetUserPOBox, NULLMENU, 2, {
145 {"show", "Show a user's post office box"},
146 {"login name", "login name: "}
148 {SetUserPOBox, NULLMENU, 2, {
149 {"set", "Set (Add or Change) a user's post office box"},
150 {"login name", "login name: "}
152 {RemoveUserPOBox, NULLMENU, 2, {
153 {"remove", "Remove a user's post office box"},
154 {"login name", "login name: "}
156 SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode)
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): "}
175 SIMPLEFUNC("getquota", "Show a quota on a filesystem",
177 SIMPLEFUNC("getfsquotas", "Show all quotas on a filesystem",
179 SIMPLEFUNC("addquota", "Add a new disk quota on a filesystem",
181 SIMPLEFUNC("upquota", "Change a quota on a filesystem",
183 SIMPLEFUNC("delquota", "Delete a quota on a filesystem",
185 SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode)
189 Menu fsgroup_menu = {
192 "Filesystem Group Menu",
195 { GetFS, NULLMENU, 2, {
196 {"get", "Get individual or group filesystem information"},
197 {"name", "Name of Filesystem: "}
199 { AddFSToGroup, NULLMENU, 3, {
200 {"add", "Add a new filesystem to an FS group"},
201 {"group", "FS Group name: "},
202 {"filsys", "Filesystem name: "}
204 { RemoveFSFromGroup, NULLMENU, 3, {
205 {"remove", "Remove a filesystem from an FS group"},
206 {"group", "FS Group name: "},
207 {"filsys", "Filesystem name: "}
209 { ChangeFSGroupOrder, NULLMENU, 2, {
210 {"order", "Change the order of filesystems in a group"},
211 {"group", "FS Group name: "}
213 SIMPLEFUNC("help", "Info on Filesystem Groups", FSGroupHelp),
214 SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode)
218 Menu service_menu = {
224 { showserv, NULLMENU, 2, {
225 { "showserv", "Show service information" },
226 { "service name", "Name of service: " },
228 { addserv, NULLMENU, 2, {
229 { "addserv", "Add a new service" },
230 { "service name", "Name of service: " },
232 { updateserv, NULLMENU, 2, {
233 { "updateserv", "Update service information" },
234 { "service name", "Name of service: " },
236 { resetsrverr, NULLMENU, 2, {
237 { "resetsrverr", "Reset service error" },
238 { "service name", "Name of service: " },
240 { resetsrvc, NULLMENU, 2, {
241 { "resetsrvc", "Reset service state" },
242 { "service name", "Name of service: " },
244 { delserv, NULLMENU, 2, {
245 { "delserv", "Delete service info" },
246 { "service name", "Name of service: " },
257 { showhost, NULLMENU, 3, {
258 { "showhost", "Show service/host tuple information" },
259 { "service name", "Name of service: " },
260 { "host name", "Name of machine: " },
262 { addhost, NULLMENU, 3, {
263 { "addhost", "Add a new service/host tuple" },
264 { "service name", "Name of service: " },
265 { "host name", "Name of machine: " },
267 { updatehost, NULLMENU, 3, {
268 { "updatehost", "Update a service/host tuple" },
269 { "service name", "Name of service: " },
270 { "host name", "Name of machine: " },
272 { resethosterr, NULLMENU, 3, {
273 { "resethosterr", "Reset service/host error" },
274 { "service name", "Name of service: " },
275 { "host name", "Name of machine: " },
277 { resethost, NULLMENU, 3, {
278 { "resethost", "Reset service/host state" },
279 { "service name", "Name of service: " },
280 { "host name", "Name of machine: " },
282 { sethostor, NULLMENU, 3, {
283 { "override", "Set service/host override" },
284 { "service name", "Name of service: " },
285 { "host name", "Name of machine: " },
287 { delhost, NULLMENU, 3, {
288 { "delhost", "Delete service/host tuple" },
289 { "service name", "Name of service: " },
290 { "host name", "Name of machine: " },
295 /* ------------------------- First Tier Menus ------------------------- */
301 Menu cluster_menu = {
307 { ShowClusterInfo, NULLMENU, 2, {
308 {"show", "Get cluster information"},
309 {"name", "Cluster's Name: "}
311 { AddCluster, NULLMENU, 2, {
312 {"add", "Add a new cluster"},
313 {"name", "Cluster's Name: "},
315 { UpdateCluster, NULLMENU, 2, {
316 {"update", "Update cluster information"},
317 {"name", "Cluster's Name: "},
319 { DeleteCluster, NULLMENU, 2, {
320 {"delete", "Delete this cluster"},
321 {"name", "Cluster's Name: "}
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)
333 Menu filesys_menu = {
339 { GetFS, NULLMENU, 2, {
340 {"get", "Get Filesystem Name Information"},
341 {"name", "Name of Filesystem: "}
343 { GetFSM, NULLMENU, 2, {
344 {"getmach", "Get Filesystems by Machine"},
345 {"name", "Name of Server: "}
347 { AddFS, NULLMENU, 2, {
348 {"add", "Add New Filesystem to Database"},
351 { ChangeFS, NULLMENU, 2, {
352 {"change", "Update Filesystem Information"},
355 { DeleteFS, NULLMENU, 2, {
356 {"delete", "Delete Filesystem"},
357 {"name", "Filesystem Name: "}
359 SUBMENU("fsgroups", "File System Groups Menu", &fsgroup_menu),
360 { GetFSAlias, NULLMENU, 2, {
361 {"check", "Check An Association"},
362 {"name", "alias name : "}
364 { CreateFSAlias, NULLMENU, 2, {
365 {"alias", "Associate with a Filesystem"},
366 {"name", "alias name : "},
368 { DeleteFSAlias, NULLMENU, 2, {
369 {"unalias", "Disassociate from a Filesystem"},
370 {"name", "alias name : "},
372 SUBMENU("quotas", "Quota Menu", "a_menu),
373 /* SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode), */
374 /* SIMPLEFUNC("help", "Help ..", AttachHelp) */
384 { ShowSubnetInfo, NULLMENU, 2, {
385 {"show", "Get network information"},
386 {"name", "Network's Name: "}
388 { AddSubnet, NULLMENU, 2, {
389 {"add", "Add a new network"},
390 {"name", "Network's Name: "},
392 { UpdateSubnet, NULLMENU, 2, {
393 {"update", "Update network information"},
394 {"name", "Network's Name: "},
396 { DeleteSubnet, NULLMENU, 2, {
397 {"delete", "Delete this network"},
398 {"name", "Network's Name: "}
400 SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode)
410 { ShowCname, NULLMENU, 3, {
411 {"show", "Get host alias information"},
412 {"alias", "Alias Name (Cname): "},
413 {"host", "Canonical Host Name: "}
415 { AddCname, NULLMENU, 3, {
416 {"add", "Add a new host alias"},
417 {"alias", "Alias Name (Cname): "},
418 {"host", "Canonical Host Name: "}
420 { DeleteCname, NULLMENU, 3, {
421 {"delete", "Delete this alias"},
422 {"alias", "Alias Name (Cname): "},
423 {"host", "Canonical Host Name: "}
425 SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode)
433 Menu machine_menu = {
439 { ShowMachineInfo, NULLMENU, 2, {
440 {"show", "Get machine information"},
441 {"name", "Machine's Name: "}
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): "}
450 { AddMachine, NULLMENU, 2, {
451 {"add", "Add a new machine"},
452 {"network", "Network assignment: "},
454 { UpdateMachine, NULLMENU, 2, {
455 {"update", "Update machine information"},
456 {"name", "Machine's Name: "},
458 { DeleteMachine, NULLMENU, 2, {
459 {"delete", "Delete this machine"},
460 {"name", "Machine's Name: "}
462 SUBMENU("cnames", "Alias names for machines", &cname_menu),
463 SUBMENU("mappings", "Machine To Cluster Mappings Menu", &mappings_menu),
477 { ShowListInfo, NULLMENU, 2, {
478 {"show", "Display information about a list"},
479 {"list name", "Name of list: "}
481 { NULLFUNC, &list_member_menu, 2, {
482 {"add", "Create new List"},
483 {"list name", "Name of list: "}
485 { UpdateList, NULLMENU, 2, {
486 {"update", "Update characteristics of a list"},
487 {"list name", "Name of list: "}
489 { DeleteList, NULLMENU, 2, {
490 {"delete", "Delete a List"},
491 {"list name", "Name of list: "}
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: "}
500 SUBMENU("list_info", "List Info Menu",
502 SUBMENU("quotas", "Quota Menu", "a_menu),
503 /* SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode), */
504 SIMPLEFUNC("help", "Print Help", ListHelp)
512 Menu nfsphys_menu = {
518 { ShowNFSService, NULLMENU, 2, {
519 { "show", "Show an NFS server" },
520 { "machine", "Machine Name: "},
522 { AddNFSService, NULLMENU, 2, {
523 { "add", "Add NFS server" },
524 { "machine", "Machine Name: "},
526 { UpdateNFSService, NULLMENU, 2, {
527 { "update", "Update NFS server"},
528 { "machine", "Machine Name: "},
530 { DeleteNFSService, NULLMENU, 2, {
531 { "delete", "Delete NFS server"},
532 {"machine", "Machine Name: "},
534 SUBMENU("quotas", "Quota Menu", "a_menu),
535 SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode),
536 /* SIMPLEFUNC("help", "Help", NFSHelp), */
543 "User Kerberos Mapping Menu",
546 { GetKrbmap, NULLMENU, 3, {
547 { "show", "Show Kerberos Mappings" },
548 { "user", "User login name: " },
549 { "principal", "Principal: " },
551 { AddKrbmap, NULLMENU, 3, {
552 { "add", "Add Kerberos Mapping" },
553 { "user", "User login name: " },
554 { "principal", "Principal (this is case sensitive): " },
556 { DeleteKrbmap, NULLMENU, 3, {
557 { "delete", "Delete Kerberos Mapping" },
558 { "user", "User login name: " },
559 { "principal", "Principal: " },
567 "MIT On-line Directory Preferences Menu",
570 { GetDirFlags, NULLMENU, 2, {
571 { "show", "Show Directory Preferences" },
572 { "login", "Login name: " },
574 { SetDirFlags, NULLMENU, 2, {
575 { "change", "Change Directory Preference" },
576 { "login", "Login name: " },
591 {ShowUserByLogin, NULLMENU, 2, {
592 {"login", "Show user information by login name"},
593 {"login name", "Desired login name: "}
595 {ShowUserByName, NULLMENU, 3, {
596 {"name", "Show user information by name"},
597 {"first", "First name: "},
598 {"last", "Last name: "}
600 {ShowUserByClass, NULLMENU, 2, {
601 {"class", "Show names of users in a given class"},
602 {"login name", "Desired class: "}
604 {ShowUserById, NULLMENU, 2, {
605 {"id", "Show user information by ID number"},
606 {"ID number", "ID number: "}
608 {UpdateUser, NULLMENU, 2, {
609 {"modify", "Change all user fields"},
610 {"login", "Login name: "}
612 SIMPLEFUNC("adduser", "Add a new user to the database",
614 SIMPLEFUNC("register", "Register a user", RegisterUser),
615 {DeactivateUser, NULLMENU, 2, {
616 {"deactivate", "Deactivate user"},
617 {"login", "Login name: "},
619 {DeleteUser, NULLMENU, 2, {
620 {"expunge", "Expunge user"},
621 {"login", "Login name: "}
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),
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",
640 SIMPLEFUNC("failed", "Display entries with errors to be reset", DcmFailed),
641 SIMPLEFUNC("dcm", "Invoke a DCM update now", Dcm),
646 * Printcap Printer Menu
649 Menu printer_menu = {
655 { GetPcap, NULLMENU, 2, {
656 {"get", "Get Printcap Entry Information"},
657 {"name", "Name of Printer: "}
659 { AddPcap, NULLMENU, 2, {
660 {"add", "Add New Printcap Entry to Database"},
663 { ChngPcap, NULLMENU, 2, {
664 {"change", "Update Printer Information"},
667 { DeletePcap, NULLMENU, 2, {
668 {"delete", "Delete Printcap Entry"},
669 {"name", "Printer Name: "}
676 * Palladium Printer Menu
679 Menu palladium_menu = {
685 { GetPalladium, NULLMENU, 2, {
686 {"get", "Get Palladium Server/Supervisor Information"},
687 {"name", "Name of Printer: "}
689 { AddPalladium, NULLMENU, 2, {
690 {"add", "Add New Palladium Server/Supervisor to Database"},
691 {"name", "Supervisor/server name: "},
693 { ChngPalladium, NULLMENU, 2, {
694 {"change", "Update Palladium Server/Supervisor Information"},
697 { DeletePalladium, NULLMENU, 2, {
698 {"delete", "Delete Palladium Server/Supervisor Entry"},
699 {"name", "Printer Name: "}
701 { ShowPalladiumAlias, NULLMENU, 3, {
702 {"getprinter", "Show Logical Printers"},
703 {"newname", "Printer name: "},
704 {"server", "Supervisor or Server name: "},
706 { AddPalladiumAlias, NULLMENU, 3, {
707 {"addprinter", "Add Logical Printer"},
708 {"newname", "New printer: "},
709 {"server", "Supervisor or Server name: "},
711 { DeletePalladiumAlias, NULLMENU, 3, {
712 {"delprinter", "Remove Logical Printer"},
713 {"newname", "Printer name: "},
714 {"server", "Supervisor or Server name: "},
731 { GetZephyr, NULLMENU, 2, {
732 {"get", "Get Zephyr Class Information"},
733 {"name", "Name of class: "}
735 { AddZephyr, NULLMENU, 2, {
736 {"add", "Add New Zephyr class restrictions"},
737 {"name", "Class name: "},
739 { ChngZephyr, NULLMENU, 2, {
740 {"change", "Update Zephyr class restrictions"},
741 {"name", "Class name: "},
743 { DeleteZephyr, NULLMENU, 2, {
744 {"delete", "Delete Zephyr class restriction"},
745 {"name", "Class Name: "}
747 { NULLFUNC, &list_member_menu, 2, {
748 {"members", "Member Menu - Change/Show Members of a List."},
749 {"list name", "Name of list: "}
762 "Miscellaneous Menu",
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: "},
771 { ShowAlias, NULLMENU, 3, {
772 {"getalias", "Show an alias relation"},
773 {"name", "Alias name: "},
774 {"type", "Alias type: "},
780 /* ------------------------- Root Menu ------------------------- */
786 Menu moira_top_menu = {
789 "Moira Database Manipulation",
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)