]> andersk Git - moira.git/blob - clients/moira/menus.c
This is an intermidiate version that has attach.c and cluster.c pretty well
[moira.git] / clients / moira / menus.c
1 #ifndef lint
2   static char rcsid_module_c[] = "$Header$";
3 #endif lint
4
5 /*      This is the file menu.c for allmaint, the SMS client that allows
6  *      a user to maintaint most important parts of the SMS database.
7  *      It Contains: all menu definitions for allmaint.
8  *      
9  *      Created:        4/11/88
10  *      By:             Chris D. Peterson
11  *
12  *      $Source$
13  *      $Author$
14  *      $Header$
15  *      
16  *      Copyright 1987, 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 "allmaint.h"
27 #include "allmaint_funcs.h"
28 #include "globals.h"
29
30 /*
31  * Attachmaint Menus
32  */
33
34 Menu attachmaint_filemenu = {
35   NULLFUNC, 
36   NULLFUNC, 
37   "Filesystem Maintenance",
38   4,
39   {
40     { GetFS, NULLMENU, 2, {
41       {"get", "Get Filesystem Name Information"},
42       {"name", "Name of Filesystem: "}
43     } },
44     { AddFS, NULLMENU, 2, {
45       {"add", "Add New Filesystem to Database"},
46       {"name", "name: "},
47     } },
48     { ChangeFS, NULLMENU, 2, {
49       {"change", "Update Filesystem Information"},
50       {"name", "name: "},
51     } },
52     { DeleteFS, NULLMENU, 2, {
53       {"delete", "Delete Filesystem"},
54       {"name", "Filesystem Name: "}
55     } } 
56   }
57 };
58
59 Menu attachmaint_top_menu = {
60   NULLFUNC, 
61   NULLFUNC, 
62   "Attach/Filesystem Maintenance", 
63   6,
64   {
65     SUBMENU("filesystem", "Filesystem Work", &attachmaint_filemenu),
66     { GetFSAlias, NULLMENU, 2, {
67       {"check", "Check An Association"},
68       {"name", "alias name : "}
69     } },
70     { CreateFSAlias, NULLMENU, 2, {
71       {"alias", "Associate with a Filesystem"},
72       {"name", "alias name : "},
73     } },
74     { DeleteFSAlias, NULLMENU, 2, {
75       {"unalias", "Disassociate from a Filesystem"},
76       {"name", "alias name : "},
77     } },
78     SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode),
79     SIMPLEFUNC("help", "Help ..", AttachHelp)
80   }
81 };
82
83 /*
84  * Clustermaint Menus
85  */
86
87 Menu clustermaint_machine_menu = {
88   NULLFUNC,
89   NULLFUNC,
90   "Machine Maintenence",
91   7,
92   {
93     { ShowMachineInfo, NULLMENU, 2, {
94       {"show","Get machine information"},
95       {"name","Machine's Name: "}
96     } },
97     { AddMachine, NULLMENU, 2, {
98       {"add","Add a new machine"},
99       {"name","Machine's Name: "},
100     } },
101     { UpdateMachine, NULLMENU, 2, {
102       {"update","Update machine information"},
103       {"name","Machine's Name: "},
104     } },
105     { DeleteMachine, NULLMENU, 2, {
106       {"delete","Delete this machine"},
107       {"name","Machine's Name: "}
108     } },
109     { MachineToClusterMap, NULLMENU, 3, {
110       {"map", "Show Machine to cluster mapping"},
111       {"name", "Machine's Name: "},
112       {"cluster", "Cluster's Name: "},
113     } },
114     { AddMachineToCluster, NULLMENU, 3, {
115       {"addcluster","Add machines to a clusters"},
116       {"name","Machine's Name: "},
117       {"cluster", "Cluster's Name: "},
118     } },
119     { RemoveMachineFromCluster, NULLMENU, 3, {
120       {"remcluster", "Remove machines from clusters"},
121       {"name","Machine's Name: "},
122       {"cluster", "Cluster's Name: "},
123     } },
124   }
125 };
126
127 Menu clustermaint_cluster_menu = {
128   NULLFUNC,
129   NULLFUNC,
130   "Cluster Information",
131   7,
132   {
133     { ShowClusterInfo, NULLMENU, 2, {
134       {"show", "Get cluster information"},
135       {"name", "Cluster's Name: "}
136     } },
137     { MachinesInCluster, NULLMENU, 2, {
138       {"machines", "List all machines in a cluster"},
139       {"clus", "Cluster's Name: "}
140     } },
141     { AddCluster, NULLMENU, 2, {
142       {"add", "Add a new cluster"},
143       {"name","Cluster's Name: "},
144     } },
145     { UpdateCluster, NULLMENU, 2, {
146       {"update", "Update cluster information"},
147       {"name","Cluster's Name: "},
148     } },
149     { DeleteCluster, NULLMENU, 2, {
150       {"delete", "Delete this cluster"},
151       {"name", "Cluster's Name: "}
152     } },
153     { AddMachineToCluster, NULLMENU, 3, {
154       {"addcluster","Add machines to a clusters"},
155       {"name","Machine's Name: "},
156       {"cluster", "Cluster's Name: "},
157     } },
158     { RemoveMachineFromCluster, NULLMENU, 3, {
159       {"remcluster", "Remove machines from clusters"},
160       {"name","Machine's Name: "},
161       {"cluster", "Cluster's Name: "},
162     } },
163   }
164 };
165
166 Menu clustermaint_data_menu = {
167   NULLFUNC,
168   NULLFUNC,
169   "Cluster Data Maintenence",
170   3,
171   {
172     { ShowClusterData, NULLMENU, 3, {
173       {"show", "Show Data on a given Cluster"},
174       {"clus", "Cluster's Name: "},
175       {"label", "Label Identifing the data: "},
176     } },
177     { AddClusterData, NULLMENU, 4, {
178       {"add", "Add Data to a given Cluster"},
179       {"clus", "Cluster Name: "},
180       {"label", "Label Identifing the data: "},
181       {"data", "The data to be added: "},
182     } },
183     { RemoveClusterData, NULLMENU, 4, {
184       {"delete", "Remove Data to a given Cluster"},
185       {"clus", "Cluster's Name: "},
186       {"label", "Label Identifing the data: "},
187       {"data", "The data to be removed: "},
188     } } 
189   }
190 };
191
192 Menu clustermaint_top_menu = {
193   NULLFUNC,
194   NULLFUNC,
195   "Cluster Maintenence",
196   5,
197   {
198     SUBMENU("machine", "Work on Machines", &clustermaint_machine_menu),
199     SUBMENU("cluster", "Work on Clusters", &clustermaint_cluster_menu),
200     SUBMENU("data", "Work with cluster data", &clustermaint_data_menu),
201     {MachineToClusterMap, NULLMENU, 3, {
202       {"map", "Machine to Cluster Mapping"},
203       {"machine", "Machine Name: "},
204       {"clus", "Cluster Name: "}
205     } },
206     SIMPLEFUNC("verbose", "Toggle Delete Confirmation", ToggleVerboseMode),
207   }
208 };
209
210 /*
211  * Dcmmaint menus
212  */
213
214 /* Commenting out all DCM maint stuff. 
215
216 Menu dcmmaint_service_menu = {
217   dcmmaint_service_menu_entry,
218   dcmmaint_service_menu_exit,
219   NULL,
220   5,
221   {
222     SIMPLEFUNC("show", "Show fields of service", show_service),
223     SIMPLEFUNC("interval", "Change the interval field", change_interval),
224     SIMPLEFUNC("target_path", "Change the target_path field",
225                change_target_path),
226     SIMPLEFUNC("script", "Change the script field", change_script),
227     SIMPLEFUNC("dfgen",
228                "Change the date of the latest generation of the db file", 
229                change_dfgen)
230   }
231 };
232
233 Menu dcmmaint_host_info_menu = {
234   dcmmaint_host_info_menu_entry,
235   dcmmaint_host_info_menu_exit,
236   NULL,
237   8,
238   {
239     SIMPLEFUNC("show", "Show values of entry", show_host_info),
240     SIMPLEFUNC("last_time", "Change the last_time field", change_last_time),
241     SIMPLEFUNC("success", "Change the success field", change_success),
242     SIMPLEFUNC("override", "Change the override field", change_override),
243     SIMPLEFUNC("enable", "Change the enable field", change_enable),
244     SIMPLEFUNC("value1", "Change the value1 field", change_value1),
245     SIMPLEFUNC("value2", "Change the value2 field", change_value2),
246     SIMPLEFUNC("rvdacls", "Change the RVD ACLs (for RVD servers only)",
247                update_rvd_server)
248   }
249 };
250
251 Menu dcmmaint_top_menu = {
252   NULLFUNC,
253   NULLFUNC,
254   "Data Control Manager Maintenance",
255   9,
256   {
257     SUBMENU("hi_change", "Modify a service-host entry", 
258             &dcmmaint_host_info_menu),
259     SIMPLEFUNC("hi_add", "Create new service-host entry", do_host_info),
260     SIMPLEFUNC("hi_delete", "Remove a service-host entry", do_host_info),
261     SIMPLEFUNC("hi_list", "List service-host entries", do_host_info),
262     SUBMENU("s_change", "Modify info for an existing service",
263             &dcmmaint_service_menu),
264     SIMPLEFUNC("s_add", "Create new service", do_service),
265     SIMPLEFUNC("s_delete", "Remove a service", do_service),
266     SIMPLEFUNC("s_list", "List services", do_service),
267     SIMPLEFUNC("help", "How to use this program", instructions)
268   }
269 };
270
271 Commenting out all DCM maint stuff. */
272
273 /*
274  * Listmaint Menus 
275  */
276
277 Menu listmaint_list_menu = {
278     NULLFUNC,
279     NULLFUNC,
280     "Lists",
281     5,
282     {
283         SIMPLEFUNC("member",
284                    "List all lists to which a given member belongs",
285                    ListByMember),
286         SIMPLEFUNC("administrator",
287                    "List all lists which a given user can administer",
288                    ListByAdministrator),
289         SIMPLEFUNC("groups", "List all lists which are groups",
290                    ListAllGroups),
291         SIMPLEFUNC("public", "List all public mailing lists",
292                    ListAllPublicMailLists),
293         SIMPLEFUNC("maillists", "List all mailing lists",
294                    ListAllMailLists)
295     }
296 };
297
298 Menu listmaint_member_menu = {
299     ListmaintMemberMenuEntry,
300     ListmaintMemberMenuExit,
301     NULL,
302     6,
303     {
304         SIMPLEFUNC("add", "Add a member to the list",
305                    AddMember),
306         SIMPLEFUNC("delete", "Delete a member from the list",
307                    DeleteMember),
308         SIMPLEFUNC("all", "Show the members of the list",
309                    ListAllMembers),
310         SIMPLEFUNC("user", "Show the members of type USER",
311                    ListUserMembers),
312         SIMPLEFUNC("list", "Show the members of type LIST",
313                    ListListMembers),
314         SIMPLEFUNC("string", "Show the members of type STRING",
315                    ListStringMembers)
316     } 
317 };
318     
319 Menu listmaint_top_menu = {
320     NULLFUNC,
321     NULLFUNC,
322     "List Maintenance Menu",
323     8,
324     {
325         { ShowListInfo, NULLMENU, 2, {
326             {"show", "Display information about a list"},
327             {"list name", "Name of list: "}
328         } },
329         { NULLFUNC, &listmaint_member_menu, 2, {
330             {"add", "Create new List"},
331             {"list name", "Name of list (do not use wildcards): "}
332         } },
333         { UpdateList, NULLMENU, 2, {
334             {"update", "Update characteristics of a list"},
335             {"list name", "Name of list: "}
336         } },
337         { DeleteList, NULLMENU, 2, {
338             {"delete", "Delete a List"},
339             {"list name", "Name of list: "}
340         } },
341         { NULLFUNC, &listmaint_member_menu, 2, {
342             {"members", "Change/Display the membership of a list"},
343             {"list name", "Name of list (do not use wildcards): "}
344         } },
345         SIMPLEFUNC("query_remove",
346                    "Interactively remove an item from all lists",
347                    InterRemoveItemFromLists),
348         SUBMENU("list_lists", "Display inventory of lists",
349                 &listmaint_list_menu),
350         SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", 
351                    ToggleVerboseMode),
352         SIMPLEFUNC("help", "How to use this program", ListHelp)
353     } 
354 };
355
356 /*
357  * NFSmaint menus.
358  */
359
360 Menu nfsmaint_top_menu = {
361   NULLFUNC,
362   NULLFUNC,
363   "NFS Maintenence",
364   5,
365   {
366     { ShowNFSService, NULLMENU, 3, {
367       { "show", "Show an NFS server" },
368       { "machine", "Machine Name: "},
369       { "device", "Directory: "}
370     } },
371     { AddNFSService, NULLMENU, 3, {
372       { "add", "Add NFS server" },
373       { "machine", "Machine Name: "},
374       { "device", "Directory: "}
375     } },
376     { UpdateNFSService, NULLMENU, 3, {
377       { "update", "Update NFS server"},
378       { "machine", "Machine Name: "},
379       { "device", "Directory: "}
380     } },
381     { DeleteNFSService, NULLMENU, 3, {
382       { "delete", "Delete NFS server"},
383       {"machine", "Machine Name: "},
384       {"device", "Directory: "}
385     } },
386     SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode),
387 /*    SIMPLEFUNC("help", "Help", NFSHelp), */
388   }
389 };
390
391 /*
392  * Portmaint menus.
393  */
394
395 /* Queries have not been implemented yet :-( 
396
397 Menu servmenu = {
398   NULLFUNC,
399   NULLFUNC,
400   "Server Maintenence",
401   8,
402   {
403     { getserv, NULLMENU, 2, {
404       {"get", "Services Info"},
405       {"serv", "Service Name: "}
406     } },
407     { addserv, NULLMENU, 4, {
408       {"add", "Add Service"},
409       {"srv", "Name: "},
410       {"proto", "Protocol: "},
411       {"port", "Port: "}
412     } },
413     { updserv, NULLMENU, 4, {
414       {"update", "Update Service"},
415       {"srv", "Name: "},
416       {"proto", "Protocol: "},
417       {"port", "Port: "}
418     } },
419     {delserv, NULLMENU, 3, {
420       {"delete", "Delete Service"},
421       {"serv", "Service Name: "},
422       {"proto", "Protocol: "}
423     } },
424     {  getassc, NULLMENU, 2, {
425       {"get_alias", "Get All Aliases for Service"},
426       {"srv", "Service Name: "}
427     } },
428     { alas, NULLMENU, 3, {
429       {"+", "Add Alias"},
430       {"srv", "Service Name: "},
431       {"als", "Alias: "}
432     } },
433     { alas, NULLMENU, 3, {
434       {"-", "Delete Alias"},
435       {"srv", "Service Name: "},
436       {"als", "Alias: "}
437     } },
438     SIMPLEFUNC("toggle", "Toggle Verbosity of Delete", toggle_verb)
439   }
440 };
441
442 */
443 /*
444  * smsmaint - TBS
445  */
446
447 /* 
448  * Usermaint menu.
449  */
450
451 Menu usermaint_quota_menu = {
452   NULLFUNC,
453   NULLFUNC,
454   "Edit User Quotas and Server Machines",
455   6,
456   {
457     SIMPLEFUNC("shdef", "Show default user quota (in KB)", ShowDefaultQuota),
458     {ShowUserQuota, NULLMENU, 2, {
459        {"shquota", "Show a user's quota (in KB)"},
460        {"login", "Login name: "}
461      } },
462     {ChangeDefaultQuota, NULLMENU, 2, {
463       {"chdef", "Change default user quota"},
464       {"quota", "New quota (in KB): "}
465     } },
466     {ChangeUserQuota, NULLMENU, 2, {
467       {"chquota", "Change a user's disk quota"},
468       {"user", "Login name: "}
469     } },
470     {AddUserLocker, NULLMENU, 5, {
471       {"create", "Create a quota & locker for a user"},
472       {"login", "User's login name: "},
473       {"machine", "Server host name: "},
474       {"device", "Directory on host: /[dir]/[login] "},
475       {"quota", "Quota in KB: "}
476     } },
477     {DeleteUserLocker, NULLMENU, 2, {
478       {"del", "Delete a user's quota & locker - BROKEN 6/10/88 CDP"},
479       {"login", "User's login: "}
480     } }
481   } 
482 };
483
484 Menu usermaint_top_menu = {
485   NULLFUNC,
486   NULLFUNC,
487   "SMS User Maintenance",
488   8,
489   {
490     {ShowUserByLogin, NULLMENU, 2, {
491        {"login", "Show user information by login name"},
492        {"login name", "Desired login name: "}
493      } },
494     {ShowUserByName, NULLMENU, 3, {
495       {"full", "Show user information by name"},
496       {"first", "First name: "},
497       {"last", "Last name: "}
498     } },
499     {ShowUserByClass, NULLMENU, 2, {
500        {"login", "Show names of users in a given class"},
501        {"login name", "Desired class: "}
502      } },    
503     {ModifyUser, NULLMENU, 2, {
504       {"modify", "Change all user fields"},
505       {"login", "Login name: "}
506     } },
507 /*    SIMPLEFUNC("chpw", "Change a user's password", change_user_password), */
508     {ChangeUserPOBox, NULLMENU, 2, {
509       {"chpobox", "Change a user's post office box"},
510       {"login name", "login name: "}
511     } },
512 /*    {enter_user, NULLMENU, 6, {
513       {"enter", "Enter unregistered user"},
514       {"first", "User's first name: "},
515       {"middle", "User's middle initial: "},
516       {"last", "User's last name: "},
517       {"mit_id", "User's MIT ID: "},
518       {"mit_year", "User's MIT year: "}
519     } },
520     {reg_user, NULLMENU, 5, {
521       {"register", "Register unregistered user"},
522       {"first", "User's first name: "},
523       {"last", "User's last name: "},
524       {"mit_id", "User's MIT ID: "},
525       {"login", "Login name to assign: "}
526     } },
527  */
528     {DeleteUser, NULLMENU, 2, {
529       {"delete", "Delete user"},
530       {"login", "Login name: "}
531     } },
532     {DeleteUserByUid, NULLMENU, 2, {
533       {"udelete", "Delete user by uid"},
534       {"uid", "User ID (not MIT ID!): "}
535     } },
536     SUBMENU("quota", "User Quotas", &usermaint_quota_menu),
537   }
538 };
539
540 /* 
541  * Sms top menu
542  */
543
544 Menu sms_top_menu = {
545   NULLFUNC,
546   NULLFUNC,
547   "Sms Database Manipulation",
548   5,
549   {
550     SUBMENU("attachmaint","open the attachmaint menu",&attachmaint_top_menu),
551     SUBMENU("clustermaint","open the clustermaint menu",
552             &clustermaint_top_menu),
553 /*    SUBMENU("dcmmaint","open the dcmmaint menu",&dcmmaint_top_menu), */
554     SUBMENU("listmaint","open the listmaint menu",&listmaint_top_menu),
555     SUBMENU("nfsmaint","open the nfsmaint menu",&nfsmaint_top_menu),
556 /*    SUBMENU("portmaint","open the portmaint menu",&portmaint_top_menu), */
557 /*    SUBMENU("smsmaint","open the smsmaint menu",&smsmaint_top_menu), */
558     SUBMENU("usermaint","open the usermaint menu",&usermaint_top_menu)
559   }
560 };  
561        
This page took 0.397778 seconds and 5 git commands to generate.