]> andersk Git - moira.git/blob - clients/moira/menus.c
Implement support for container related queries.
[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 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
95 /*
96  * List Member Menu
97  */
98
99 Menu list_member_menu = {
100   ListmaintMemberMenuEntry,
101   ListmaintMemberMenuExit,
102   NULL,
103   8,
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),
112     SUBMENU("tags", "List Member Tags Menu", &list_tags_menu),
113     SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode)
114   }
115 };
116
117 /*
118  *  Machine To Cluster Mappings Menu
119  */
120
121 Menu mappings_menu = {
122   NULLFUNC,
123   NULLFUNC,
124   "Machine To Cluster Mappings Menu",
125   4,
126   {
127     { MachineToClusterMap, NULLMENU, 3, {
128       {"map", "Show Machine to cluster mapping"},
129       {"name", "Machine's Name: "},
130       {"cluster", "Cluster's Name: "},
131     } },
132     { AddMachineToCluster, NULLMENU, 3, {
133       {"addcluster", "Add machine to a cluster"},
134       {"name", "Machine's Name: "},
135       {"cluster", "Cluster's Name: "},
136     } },
137     { RemoveMachineFromCluster, NULLMENU, 3, {
138       {"remcluster", "Remove machines from clusters"},
139       {"name", "Machine's Name: "},
140       {"cluster", "Cluster's Name: "},
141     } },
142     SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode),
143   }
144 };
145
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
178 /*
179  * Post Office Box Menu
180  */
181
182 Menu pobox_menu = {
183   NULLFUNC,
184   NULLFUNC,
185   "Post Office Box Menu",
186   5,
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     } },
196     {SplitUserPOBox, NULLMENU, 2, {
197       {"split", "Split a user's post office box"},
198       {"login name", "login name: "}
199     } },
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 };
207
208 /*
209  * Quota Menu
210  */
211
212 Menu quota_menu = {
213   NULLFUNC,
214   NULLFUNC,
215   "Quota Menu",
216   8,
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     } },
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),
233     SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode)
234   }
235 };
236
237 Menu fsgroup_menu = {
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   }
264 };
265
266 Menu service_menu = {
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   }
297 };
298
299 Menu host_menu = {
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   }
341 };
342
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
371 /* ------------------------- First Tier Menus ------------------------- */
372
373 /*
374  * Cluster Menu
375  */
376
377 Menu cluster_menu = {
378   NULLFUNC,
379   NULLFUNC,
380   "Cluster Menu",
381   7,
382   {
383     { ShowClusterInfo, NULLMENU, 2, {
384       {"show", "Get cluster information"},
385       {"name", "Cluster's Name: "}
386     } },
387     { AddCluster, NULLMENU, 2, {
388       {"add", "Add a new cluster"},
389       {"name", "Cluster's Name: "},
390     } },
391     { UpdateCluster, NULLMENU, 2, {
392       {"update", "Update cluster information"},
393       {"name", "Cluster's Name: "},
394     } },
395     { DeleteCluster, NULLMENU, 2, {
396       {"delete", "Delete this cluster"},
397       {"name", "Cluster's Name: "}
398     } },
399     SUBMENU("mappings", "Machine To Cluster Mappings Menu", &mappings_menu),
400     SUBMENU("c_data", "Cluster Data Menu", &cluster_data_menu),
401     SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode)
402   }
403 };
404
405 /*
406  * Filesystem Menu
407  */
408
409 Menu filesys_menu = {
410   NULLFUNC,
411   NULLFUNC,
412   "Filesystem Menu",
413   10,
414   {
415     { GetFS, NULLMENU, 2, {
416       {"get", "Get Filesystem Name Information"},
417       {"name", "Name of Filesystem: "}
418     } },
419     { GetFSM, NULLMENU, 2, {
420       {"getmach", "Get Filesystems by Machine"},
421       {"name", "Name of Server: "}
422     } },
423     { AddFS, NULLMENU, 2, {
424       {"add", "Add New Filesystem to Database"},
425       {"name", "name: "},
426     } },
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     } },
435     SUBMENU("fsgroups", "File System Groups Menu", &fsgroup_menu),
436     { GetFSAlias, NULLMENU, 2, {
437       {"check", "Check An Association"},
438       {"name", "Alias name: "}
439     } },
440     { CreateFSAlias, NULLMENU, 2, {
441       {"alias", "Associate with a Filesystem"},
442       {"name", "Alias name: "},
443     } },
444     { DeleteFSAlias, NULLMENU, 2, {
445       {"unalias", "Disassociate from a Filesystem"},
446       {"name", "Alias name: "},
447     } },
448     SUBMENU("quotas", "Quota Menu", &quota_menu),
449 /*    SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode), */
450 /*    SIMPLEFUNC("help", "Help ..", AttachHelp) */
451   }
452 };
453
454 Menu subnet_menu = {
455   NULLFUNC,
456   NULLFUNC,
457   "Network Menu",
458   5,
459   {
460     { ShowSubnetInfo, NULLMENU, 2, {
461       {"show", "Get network information"},
462       {"name", "Network's Name: "}
463     } },
464     { AddSubnet, NULLMENU, 2, {
465       {"add", "Add a new network"},
466       {"name", "Network's Name: "},
467     } },
468     { UpdateSubnet, NULLMENU, 2, {
469       {"update", "Update network information"},
470       {"name", "Network's Name: "},
471     } },
472     { DeleteSubnet, NULLMENU, 2, {
473       {"delete", "Delete this network"},
474       {"name", "Network's Name: "}
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, {
487       {"show", "Get host alias information"},
488       {"alias", "Alias Name (Cname): "},
489       {"host", "Canonical Host Name: "}
490     } },
491     { AddCname, NULLMENU, 3, {
492       {"add", "Add a new host alias"},
493       {"alias", "Alias Name (Cname): "},
494       {"host", "Canonical Host Name: "}
495     } },
496     { DeleteCname, NULLMENU, 3, {
497       {"delete", "Delete this alias"},
498       {"alias", "Alias Name (Cname): "},
499       {"host", "Canonical Host Name: "}
500     } },
501     SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode)
502   }
503 };
504
505 /*
506  * Machine Menu
507  */
508
509 Menu machine_menu = {
510   NULLFUNC,
511   NULLFUNC,
512   "Machine Menu",
513   8,
514   {
515     { ShowMachineInfo, NULLMENU, 2, {
516       {"show", "Get machine information"},
517       {"name", "Machine's Name: "}
518     } },
519     { ShowMachineQuery, NULLMENU, 5, {
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): "}
525     } },
526     SIMPLEFUNC("owner", "Lookup machines by owner", MachineByOwner),
527     { AddMachine, NULLMENU, 2, {
528       {"add", "Add a new machine"},
529       {"network", "Network assignment: "},
530     } },
531     { UpdateMachine, NULLMENU, 2, {
532       {"update", "Update machine information"},
533       {"name", "Machine's Name: "},
534     } },
535     { DeleteMachine, NULLMENU, 2, {
536       {"delete", "Delete this machine"},
537       {"name", "Machine's Name: "}
538     } },
539     SUBMENU("cnames", "Alias names for machines", &cname_menu),
540     SUBMENU("mappings", "Machine To Cluster Mappings Menu", &mappings_menu),
541   }
542 };
543
544 /*
545  * List Menu
546  */
547
548 Menu list_menu = {
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", &quota_menu),
580 /*      SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode), */
581     SIMPLEFUNC("help", "Print Help", ListHelp)
582   }
583 };
584
585 /*
586  * NFS Physical Menu
587  */
588
589 Menu nfsphys_menu = {
590   NULLFUNC,
591   NULLFUNC,
592   "NFS Physical Menu",
593   6,
594   {
595     { ShowNFSService, NULLMENU, 2, {
596       { "show", "Show an NFS server" },
597       { "machine", "Machine Name: "},
598     } },
599     { AddNFSService, NULLMENU, 2, {
600       { "add", "Add NFS server" },
601       { "machine", "Machine Name: "},
602     } },
603     { UpdateNFSService, NULLMENU, 2, {
604       { "update", "Update NFS server"},
605       { "machine", "Machine Name: "},
606     } },
607     { DeleteNFSService, NULLMENU, 2, {
608       { "delete", "Delete NFS server"},
609       {"machine", "Machine Name: "},
610     } },
611     SUBMENU("quotas", "Quota Menu", &quota_menu),
612     SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode),
613 /*    SIMPLEFUNC("help", "Help", NFSHelp), */
614   }
615 };
616
617 Menu krbmap_menu = {
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   }
639 };
640
641 /*
642  * User Menu
643  */
644
645 Menu user_menu = {
646   NULLFUNC,
647   NULLFUNC,
648   "User Menu",
649   12,
650   {
651     {ShowUserByLogin, NULLMENU, 2, {
652        {"login", "Show user information by login name"},
653        {"login name", "Desired login name: "}
654      } },
655     {ShowUserByName, NULLMENU, 3, {
656       {"name", "Show user information by name"},
657       {"first", "First name: "},
658       {"last", "Last name: "}
659     } },
660     {ShowUserByClass, NULLMENU, 2, {
661       {"class", "Show names of users in a given class"},
662       {"login name", "Desired class: "}
663     } },
664     {ShowUserById, NULLMENU, 2, {
665       {"id", "Show user information by ID number"},
666       {"ID number", "ID number: "}
667     } },
668     {UpdateUser, NULLMENU, 2, {
669       {"modify", "Change all user fields"},
670       {"login", "Login name: "}
671     } },
672     SIMPLEFUNC("adduser", "Add a new user to the database",
673                AddNewUser),
674     SIMPLEFUNC("register", "Register a user", RegisterUser),
675     {DeactivateUser, NULLMENU, 2, {
676       {"deactivate", "Deactivate user"},
677       {"login", "Login name: "},
678     } },
679     {DeleteUser, NULLMENU, 2, {
680       {"expunge", "Expunge user"},
681       {"login", "Login name: "}
682     } },
683     SUBMENU("pobox", "Post Office Box Menu", &pobox_menu),
684     SUBMENU("krbmap", "User Kerberos Mappings", &krbmap_menu),
685     SUBMENU("reservations", "User Reservations Menu", &reservations_menu),
686   }
687 };
688
689 Menu dcm_menu = {
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),
702     }
703 };
704
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
730 /*
731  * Printer Menu
732  */
733
734 Menu printer_menu = {
735   NULLFUNC,
736   NULLFUNC,
737   "Printer Menu",
738   11,
739   {
740     { GetPrn, NULLMENU, 2, {
741       {"get", "Get Printer Information"},
742       {"name", "Name of Printer: "}
743     } },
744     { GetPrnByHostname, NULLMENU, 2, {
745       {"hostname", "Look up Printer Information by Printer Hostname"},
746       {"name", "Hostname of Printer: "}
747     } },
748     { GetPrnByEthernet, NULLMENU, 2, {
749       {"ether", "Look up Printer Information by Ethernet address"},
750       {"hwaddr", "Ethernet address of Printer: "}
751     } },
752     { GetPrnByRM, NULLMENU, 2, {
753       {"rm", "Look up Printer Information by Print Spooler"},
754       {"name", "Hostname of spooler: "}
755     } },
756     { GetPrnByLocation, NULLMENU, 2, {
757       {"loc", "Look up Printer Information by Location"},
758       {"location", "Location: "}
759     } },
760     { GetPrnByContact, NULLMENU, 2, {
761       {"contact", "Look up Printer Information by Contact Info"},
762       {"contact", "Contact: "}
763     } },
764     { AddPrn, NULLMENU, 2, {
765       {"add", "Add New Printer to Database"},
766       {"name", "name: "},
767     } },
768     { ChngPrn, NULLMENU, 2, {
769       {"change", "Update Printer Information"},
770       {"name", "name: "},
771     } },
772     { DeletePrn, NULLMENU, 2, {
773       {"delete", "Delete Printer"},
774       {"name", "Printer Name: "}
775     } },
776     { UpdateHWAddr, NULLMENU, 2, {
777       {"hwaddr", "Update Printer Hardware Address"},
778       {"name", "Printer hostname: "}
779     } },
780     SUBMENU("server", "Print Servers Menu", &printserver_menu),
781   }
782 };
783
784 /*
785  * Zephyr Menu
786  */
787
788 Menu zephyr_menu = {
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   }
815 };
816
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 };
844
845 /*
846  * Container Menu
847  */
848
849 Menu container_menu = {
850   NULLFUNC,
851   NULLFUNC,
852   "Container Menu",
853   7,
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     } },
875     SUBMENU("mappings", "Machine to Container Mappings Menu", &cmappings_menu),
876     SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode)
877   }
878 };
879
880 /*
881  * Miscellaneous Menu
882  */
883
884 Menu misc_menu = {
885   NULLFUNC,
886   NULLFUNC,
887   "Miscellaneous Menu",
888   4,
889   {
890     SIMPLEFUNC("statistics", "Show database statistics", TableStats),
891     SIMPLEFUNC("clients", "Show active Moira clients", ShowClients),
892     { ShowValue, NULLMENU, 2, {
893       {"getval", "Show a database variable value"},
894       {"name", "variable name: "},
895     } },
896     { ShowAlias, NULLMENU, 3, {
897       {"getalias", "Show an alias relation"},
898       {"name", "Alias name: "},
899       {"type", "Alias type: "},
900     } },
901   }
902 };
903
904
905 /* ------------------------- Root Menu ------------------------- */
906
907 /*
908  * Moira top menu
909  */
910
911 Menu moira_top_menu = {
912   NULLFUNC,
913   NULLFUNC,
914   "Moira Database Manipulation",
915   13,
916   {
917     SUBMENU("cluster", "Cluster Menu", &cluster_menu),
918     SUBMENU("filesys", "Filesystem Menu", &filesys_menu),
919     SUBMENU("list", "Lists and Group Menu", &list_menu),
920     SUBMENU("machine", "Machine Menu", &machine_menu),
921     SUBMENU("network", "Network Menu", &subnet_menu),
922     SUBMENU("nfs", "NFS Physical Menu", &nfsphys_menu),
923     SUBMENU("printer", "Printer Menu", &printer_menu),
924     SUBMENU("user", "User Menu", &user_menu),
925     SUBMENU("zephyr", "Zephyr ACLS Menu", &zephyr_menu),
926     SUBMENU("dcm", "DCM Menu", &dcm_menu),
927     SUBMENU("acl", "Generic ACL Menu", &acl_menu),
928     SUBMENU("container", "Container Menu", &container_menu),
929     SUBMENU("misc", "Miscellaneous Menu", &misc_menu)
930   }
931 };
This page took 0.106912 seconds and 5 git commands to generate.