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