]> andersk Git - moira.git/blob - clients/moira/menus.c
added DCM & printcap menus
[moira.git] / clients / moira / menus.c
1 #if (!defined(lint) && !defined(SABER))
2   static char rcsid_module_c[] = "$Header$";
3 #endif lint
4
5 /*      This is the file menus.c for the SMS Client, which allows a nieve
6  *      user to quickly and easily maintain most parts of the SMS 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, 4, {
55       {"delete", "Remove Data to a given Cluster"},
56       {"clus", "Cluster's Name: "},
57       {"label", "Label Identifing the data: "},
58       {"data", "The data to be removed: "},
59     } }, 
60     SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode)
61   }
62 };
63
64 /*
65  * List Information Menu
66  */
67
68 Menu list_info_menu = {
69     NULLFUNC,
70     NULLFUNC,
71     "List Information Menu",
72     5,
73     {
74         SIMPLEFUNC("member",
75                    "Show all lists to which a given member belongs",
76                    ListByMember),
77         SIMPLEFUNC("admin",
78                    "Show all items which a given member can administer",
79                    ListByAdministrator),
80         SIMPLEFUNC("groups", "Show all lists which are groups",
81                    ListAllGroups),
82         SIMPLEFUNC("public", "Show all public mailing lists",
83                    ListAllPublicMailLists),
84         SIMPLEFUNC("maillists", "Show all mailing lists",
85                    ListAllMailLists)
86     }
87 };
88
89 /*
90  * List Member Menu
91  */
92
93 Menu list_member_menu = {
94     ListmaintMemberMenuEntry,
95     ListmaintMemberMenuExit,
96     NULL,
97     7,
98     {
99         SIMPLEFUNC("add", "Add a member to this list", AddMember),
100         SIMPLEFUNC("remove", "Remove a member from this list", DeleteMember),
101         SIMPLEFUNC("all", "Show the members of this list", ListAllMembers),
102         SIMPLEFUNC("user", "Show the members of type USER", ListUserMembers),
103         SIMPLEFUNC("list", "Show the members of type LIST", ListListMembers),
104         SIMPLEFUNC("string", "Show the members of type STRING", 
105                    ListStringMembers),
106         SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode)
107     } 
108 };
109
110 /*
111  *  Machine To Cluster Mappings Menu
112  */
113
114 Menu mappings_menu = {
115   NULLFUNC,
116   NULLFUNC,
117   "Machine To Cluster Mappings Menu",
118   4,
119   {
120     { MachineToClusterMap, NULLMENU, 3, {
121       {"map", "Show Machine to cluster mapping"},
122       {"name", "Machine's Name: "},
123       {"cluster", "Cluster's Name: "},
124     } },
125     { AddMachineToCluster, NULLMENU, 3, {
126       {"addcluster","Add machines to a clusters"},
127       {"name","Machine's Name: "},
128       {"cluster", "Cluster's Name: "},
129     } },
130     { RemoveMachineFromCluster, NULLMENU, 3, {
131       {"remcluster", "Remove machines from clusters"},
132       {"name","Machine's Name: "},
133       {"cluster", "Cluster's Name: "},
134     } },
135     SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode),
136   }
137 };
138
139 /* 
140  * Post Office Box Menu
141  */
142
143 Menu pobox_menu = {
144   NULLFUNC,
145   NULLFUNC,
146   "Post Office Box Menu",
147   4,
148   {
149     {GetUserPOBox, NULLMENU, 2, {
150       {"show", "Show a user's post office box"},
151       {"login name", "login name: "}
152     } },
153     {SetUserPOBox, NULLMENU, 2, {
154       {"set", "Set (Add or Change) a user's post office box"},
155       {"login name", "login name: "}
156     } },
157     {RemoveUserPOBox, NULLMENU, 2, {
158       {"remove", "Remove a user's post office box"},
159       {"login name", "login name: "}
160     } },
161     SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode)
162   }
163 };
164    
165 /*
166  * Quota Menu
167  */
168  
169 Menu quota_menu = {
170   NULLFUNC,
171   NULLFUNC,
172   "Quota Menu",
173   7,
174   {
175     SIMPLEFUNC("shdef", "Show default user quota (in KB)", ShowDefaultQuota),
176     {ChangeDefaultQuota, NULLMENU, 2, {
177       {"chdef", "Change default user quota"},
178       {"quota", "New quota (in KB): "}
179     } },
180     SIMPLEFUNC("shquota", "Show a user's disk quota on a filesytem",
181                ShowUserQuota),
182     SIMPLEFUNC("addquota", "Add a new disk quota for user on a filesytem",
183                AddUserQuota),
184     SIMPLEFUNC("chquota", "Change a user's disk quota on a filesytem",
185                ChangeUserQuota),
186     SIMPLEFUNC("rmquota", "Remove a user's disk quota on a filesytem",
187                RemoveUserQuota),
188     SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode)
189   } 
190 };
191
192 Menu service_menu = {
193     NULLFUNC,
194     NULLFUNC,
195     "DCM Service Menu",
196     6,
197     {
198         { showserv, NULLMENU, 2, {
199             { "showserv", "Show service information" },
200             { "service name", "Name of service: " },
201         } },
202         { addserv, NULLMENU, 2, {
203             { "addserv", "Add a new service" },
204             { "service name", "Name of service: " },
205         } },
206         { updateserv, NULLMENU, 2, {
207             { "updateserv", "Update service information" },
208             { "service name", "Name of service: " },
209         } },
210         { resetsrverr, NULLMENU, 2, {
211             { "resetsrverr", "Reset service error" },
212             { "service name", "Name of service: " },
213         } },
214         { resetsrvc, NULLMENU, 2, {
215             { "resetsrvc", "Reset service state" },
216             { "service name", "Name of service: " },
217         } },
218         { delserv, NULLMENU, 2, {
219             { "delserv", "Delete service info" },
220             { "service name", "Name of service: " },
221         } },
222     }
223 };
224
225 Menu host_menu = {
226     NULLFUNC,
227     NULLFUNC,
228     "DCM Host Menu",
229     7,
230     {
231         { showhost, NULLMENU, 3, {
232             { "showhost", "Show service/host tuple information" },
233             { "service name", "Name of service: " },
234             { "host name", "Name of machine: " },
235         } },
236         { addhost, NULLMENU, 3, {
237             { "addhost", "Add a new service/host tuple" },
238             { "service name", "Name of service: " },
239             { "host name", "Name of machine: " },
240         } },
241         { updatehost, NULLMENU, 3, {
242             { "updatehost", "Update a service/host tuple" },
243             { "service name", "Name of service: " },
244             { "host name", "Name of machine: " },
245         } },
246         { resethosterr, NULLMENU, 3, {
247             { "resethosterr", "Reset service/host error" },
248             { "service name", "Name of service: " },
249             { "host name", "Name of machine: " },
250         } },
251         { resethost, NULLMENU, 3, {
252             { "resethost", "Reset service/host state" },
253             { "service name", "Name of service: " },
254             { "host name", "Name of machine: " },
255         } },
256         { sethostor, NULLMENU, 3, {
257             { "override", "Set service/host override" },
258             { "service name", "Name of service: " },
259             { "host name", "Name of machine: " },
260         } },
261         { delhost, NULLMENU, 3, {
262             { "delhost", "Delete service/host tuple" },
263             { "service name", "Name of service: " },
264             { "host name", "Name of machine: " },
265         } },
266     }
267 };
268
269 /* ------------------------- First Tier Menus ------------------------- */
270
271 /* 
272  * Cluster Menu
273  */
274
275 Menu cluster_menu = {
276   NULLFUNC,
277   NULLFUNC,
278   "Cluster Menu",
279   7,
280   {
281     { ShowClusterInfo, NULLMENU, 2, {
282       {"show", "Get cluster information"},
283       {"name", "Cluster's Name: "}
284     } },
285     { AddCluster, NULLMENU, 2, {
286       {"add", "Add a new cluster"},
287       {"name","Cluster's Name: "},
288     } },
289     { UpdateCluster, NULLMENU, 2, {
290       {"update", "Update cluster information"},
291       {"name","Cluster's Name: "},
292     } },
293     { DeleteCluster, NULLMENU, 2, {
294       {"delete", "Delete this cluster"},
295       {"name", "Cluster's Name: "}
296     } },
297     SUBMENU("mappings","Machine To Cluster Mappings Menu", &mappings_menu),
298     SUBMENU("c_data","Cluster Data Menu", &cluster_data_menu),
299     SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode)
300   }
301 };
302
303 /* 
304  * Filesystem Menu
305  */
306
307 Menu filesys_menu = {
308   NULLFUNC, 
309   NULLFUNC, 
310   "Filesystem Menu",
311   10,
312   {
313     { GetFS, NULLMENU, 2, {
314       {"get", "Get Filesystem Name Information"},
315       {"name", "Name of Filesystem: "}
316     } },
317     { AddFS, NULLMENU, 2, {
318       {"add", "Add New Filesystem to Database"},
319       {"name", "name: "},
320     } },
321     { ChangeFS, NULLMENU, 2, {
322       {"change", "Update Filesystem Information"},
323       {"name", "name: "},
324     } },
325     { DeleteFS, NULLMENU, 2, {
326       {"delete", "Delete Filesystem"},
327       {"name", "Filesystem Name: "}
328     } },
329     { GetFSAlias, NULLMENU, 2, {
330       {"check", "Check An Association"},
331       {"name", "alias name : "}
332     } },
333     { CreateFSAlias, NULLMENU, 2, {
334       {"alias", "Associate with a Filesystem"},
335       {"name", "alias name : "},
336     } },
337     { DeleteFSAlias, NULLMENU, 2, {
338       {"unalias", "Disassociate from a Filesystem"},
339       {"name", "alias name : "},
340     } },
341     SUBMENU("quotas","Quota Menu", &quota_menu),
342     SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode),
343     SIMPLEFUNC("help", "Help ..", AttachHelp)
344   }
345 };
346
347 /*
348  * Machine Menu
349  */
350
351 Menu machine_menu = {
352   NULLFUNC,
353   NULLFUNC,
354   "Machine Menu",
355   6,
356   {
357     { ShowMachineInfo, NULLMENU, 2, {
358       {"show","Get machine information"},
359       {"name","Machine's Name: "}
360     } },
361     { AddMachine, NULLMENU, 2, {
362       {"add","Add a new machine"},
363       {"name","Machine's Name: "},
364     } },
365     { UpdateMachine, NULLMENU, 2, {
366       {"update","Update machine information"},
367       {"name","Machine's Name: "},
368     } },
369     { DeleteMachine, NULLMENU, 2, {
370       {"delete","Delete this machine"},
371       {"name","Machine's Name: "}
372     } },
373     SUBMENU("mappings","Machine To Cluster Mappings Menu", &mappings_menu),
374     SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode)
375   }
376 };
377
378 /*
379  * List Menu
380  */
381
382 Menu list_menu = {
383     NULLFUNC,
384     NULLFUNC,
385     "List Menu",
386     10,
387     {
388         { ShowListInfo, NULLMENU, 2, {
389             {"show", "Display information about a list"},
390             {"list name", "Name of list: "}
391         } },
392         { NULLFUNC, &list_member_menu, 2, {
393             {"add", "Create new List"},
394             {"list name", "Name of list: "}
395         } },
396         { UpdateList, NULLMENU, 2, {
397             {"update", "Update characteristics of a list"},
398             {"list name", "Name of list: "}
399         } },
400         { DeleteList, NULLMENU, 2, {
401             {"delete", "Delete a List"},
402             {"list name", "Name of list: "}
403         } },
404         SIMPLEFUNC("query_remove",
405                    "Interactively remove an item from all lists",
406                    InterRemoveItemFromLists),
407         { NULLFUNC, &list_member_menu, 2, {
408             {"members", "Member Menu - Change/Show Members of a List."},
409             {"list name", "Name of list: "}
410         } },
411         SUBMENU("list_info", "List Info Menu",
412                 &list_info_menu),
413         SUBMENU("quotas","Quota Menu", &quota_menu),    
414         SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode),
415         SIMPLEFUNC("help", "Print Help", ListHelp)
416     } 
417 };
418
419 /*
420  * NFS Physical Menu
421  */
422
423 Menu nfsphys_menu = {
424   NULLFUNC,
425   NULLFUNC,
426   "NFS Physical Menu",
427   6,
428   {
429     { ShowNFSService, NULLMENU, 2, {
430       { "show", "Show an NFS server" },
431       { "machine", "Machine Name: "},
432     } },
433     { AddNFSService, NULLMENU, 2, {
434       { "add", "Add NFS server" },
435       { "machine", "Machine Name: "},
436     } },
437     { UpdateNFSService, NULLMENU, 2, {
438       { "update", "Update NFS server"},
439       { "machine", "Machine Name: "},
440     } },
441     { DeleteNFSService, NULLMENU, 2, {
442       { "delete", "Delete NFS server"},
443       {"machine", "Machine Name: "},
444     } },
445     SUBMENU("quotas","Quota Menu", &quota_menu),
446     SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode),
447 /*    SIMPLEFUNC("help", "Help", NFSHelp), */
448   }
449 };
450
451 /*
452  * User Menu
453  */
454
455 Menu user_menu = {
456   NULLFUNC,
457   NULLFUNC,
458   "User Menu",
459   11,
460   {
461     {ShowUserByLogin, NULLMENU, 2, {
462        {"login", "Show user information by login name"},
463        {"login name", "Desired login name: "}
464      } },
465     {ShowUserByName, NULLMENU, 3, {
466       {"name", "Show user information by name"},
467       {"first", "First name: "},
468       {"last", "Last name: "}
469     } },
470     {ShowUserByClass, NULLMENU, 2, {
471        {"class", "Show names of users in a given class"},
472        {"login name", "Desired class: "}
473      } },    
474     {UpdateUser, NULLMENU, 2, {
475       {"modify", "Change all user fields"},
476       {"login", "Login name: "}
477     } },
478 /*    SIMPLEFUNC("chpw", "Change a user's password", change_user_password), */
479     SIMPLEFUNC("adduser", "Add a new user to the database", 
480                AddNewUser),
481     SIMPLEFUNC("register", "Register a user", RegisterUser),
482     {DeactivateUser, NULLMENU, 2, {
483       {"deactivate", "Deactivate user"},
484       {"login", "Login name: "},
485     } },
486     {DeleteUser, NULLMENU, 2, {
487       {"expunge", "Expunge user"},
488       {"login", "Login name: "}
489     } },
490 /*    {DeleteUserByUid, NULLMENU, 2, {
491       {"udelete", "Delete user by uid"},
492       {"uid", "User ID (not MIT ID!): "}
493     } }, */
494     SUBMENU("pobox", "Post Office Box Menu", &pobox_menu),
495     SUBMENU("quota", "Quota Menu", &quota_menu),
496     SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode)
497   }
498 };
499
500 Menu dcm_menu = {
501     NULLFUNC,
502     NULLFUNC,
503     "DCM Menu",
504     6,
505     {
506         SIMPLEFUNC("enable", "Enable/disable DCM", EnableDcm),
507         SUBMENU("service", "DCM Service Menu", &service_menu),
508         SUBMENU("host", "DCM Host Menu", &host_menu),
509         SIMPLEFUNC("active", "Display entries currently being updated",
510                    InProgress),
511         SIMPLEFUNC("failed", "Display entries with errors to be reset",
512                    DcmFailed),
513         SIMPLEFUNC("dcm", "Invoke a DCM update now", Dcm),
514     }
515 };
516
517 /* 
518  * Printer Menu
519  */
520
521 Menu printer_menu = {
522   NULLFUNC, 
523   NULLFUNC, 
524   "Printer Menu",
525   4,
526   {
527     { GetPcap, NULLMENU, 2, {
528       {"get", "Get Printcap Entry Information"},
529       {"name", "Name of Printer: "}
530     } },
531     { AddPcap, NULLMENU, 2, {
532       {"add", "Add New Printcap Entry to Database"},
533       {"name", "name: "},
534     } },
535     { ChngPcap, NULLMENU, 2, {
536       {"change", "Update Printer Information"},
537       {"name", "name: "},
538     } },
539     { DeletePcap, NULLMENU, 2, {
540       {"delete", "Delete Printcap Entry"},
541       {"name", "Printer Name: "}
542     } }
543   }
544 };
545
546 /* ------------------------- Root Menu ------------------------- */
547
548 /* 
549  * Sms top menu
550  */
551
552 Menu sms_top_menu = {
553   NULLFUNC,
554   NULLFUNC,
555   "Sms Database Manipulation",
556   8,
557   {
558     SUBMENU("cluster","Cluster Menu",&cluster_menu),
559     SUBMENU("filesys","Filesystem Menu", &filesys_menu),
560     SUBMENU("list","Lists and Group Menu", &list_menu),
561     SUBMENU("machine","Machine Menu",&machine_menu),
562     SUBMENU("nfs","NFS Physical Menu", &nfsphys_menu),
563     SUBMENU("user","User Menu", &user_menu),
564     SUBMENU("printer", "Printer Menu", &printer_menu),
565     SUBMENU("dcm", "DCM Menu", &dcm_menu)
566   }
567 };  
This page took 0.077661 seconds and 5 git commands to generate.