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