static char rcsid_module_c[] = "$Header$";
#endif lint
-/* This is the file menu.c for allmaint, the SMS client that allows
- * a user to maintaint most important parts of the SMS database.
- * It Contains: all menu definitions for allmaint.
+/* This is the file menus.c for the SMS Client, which allows a nieve
+ * user to quickly and easily maintain most parts of the SMS database.
+ * It Contains: All menu definitions.
*
* Created: 4/11/88
* By: Chris D. Peterson
* $Author$
* $Header$
*
- * Copyright 1987, 1988 by the Massachusetts Institute of Technology.
+ * Copyright 1988 by the Massachusetts Institute of Technology.
*
* For further information on copyright and distribution
* see the file mit-copyright.h
#include <menu.h>
#include "mit-copyright.h"
-#include "allmaint.h"
-#include "allmaint_funcs.h"
+#include "defs.h"
+#include "f_defs.h"
#include "globals.h"
-/*
- * Attachmaint Menus
+/* ------------------------- Second Tier Menus ------------------------- */
+
+/*
+ * Cluster Data Menu
*/
-Menu attachmaint_filemenu = {
- NULLFUNC,
- NULLFUNC,
- "Filesystem Maintenance",
+Menu cluster_data_menu = {
+ NULLFUNC,
+ NULLFUNC,
+ "Cluster Data Menu",
4,
{
- { GetFS, NULLMENU, 2, {
- {"get", "Get Filesystem Name Information"},
- {"name", "Name of Filesystem: "}
- } },
- { AddFS, NULLMENU, 2, {
- {"add", "Add New Filesystem to Database"},
- {"name", "name: "},
+ { ShowClusterData, NULLMENU, 3, {
+ {"show", "Show Data on a given Cluster"},
+ {"clus", "Cluster's Name: "},
+ {"label", "Label Identifing the data: "},
} },
- { ChangeFS, NULLMENU, 2, {
- {"change", "Update Filesystem Information"},
- {"name", "name: "},
+ { AddClusterData, NULLMENU, 4, {
+ {"add", "Add Data to a given Cluster"},
+ {"clus", "Cluster Name: "},
+ {"label", "Label Identifing the data: "},
+ {"data", "The data to be added: "},
} },
- { DeleteFS, NULLMENU, 2, {
- {"delete", "Delete Filesystem"},
- {"name", "Filesystem Name: "}
- } }
+ { RemoveClusterData, NULLMENU, 4, {
+ {"delete", "Remove Data to a given Cluster"},
+ {"clus", "Cluster's Name: "},
+ {"label", "Label Identifing the data: "},
+ {"data", "The data to be removed: "},
+ } },
+ SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode)
}
};
-Menu attachmaint_top_menu = {
- NULLFUNC,
- NULLFUNC,
- "Attach/Filesystem Maintenance",
- 6,
- {
- SUBMENU("filesystem", "Filesystem Work", &attachmaint_filemenu),
- { GetFSAlias, NULLMENU, 2, {
- {"check", "Check An Association"},
- {"name", "alias name : "}
- } },
- { CreateFSAlias, NULLMENU, 2, {
- {"alias", "Associate with a Filesystem"},
- {"name", "alias name : "},
- } },
- { DeleteFSAlias, NULLMENU, 2, {
- {"unalias", "Disassociate from a Filesystem"},
- {"name", "alias name : "},
- } },
- SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode),
- SIMPLEFUNC("help", "Help ..", AttachHelp)
- }
+/*
+ * List Information Menu
+ */
+
+Menu list_info_menu = {
+ NULLFUNC,
+ NULLFUNC,
+ "List Information Menu",
+ 5,
+ {
+ SIMPLEFUNC("member",
+ "Show all lists to which a given member belongs",
+ ListByMember),
+ SIMPLEFUNC("admin",
+ "Show all items which a given member can administer",
+ ListByAdministrator),
+ SIMPLEFUNC("groups", "Show all lists which are groups",
+ ListAllGroups),
+ SIMPLEFUNC("public", "Show all public mailing lists",
+ ListAllPublicMailLists),
+ SIMPLEFUNC("maillists", "Show all mailing lists",
+ ListAllMailLists)
+ }
+};
+
+/*
+ * List Member Menu
+ */
+
+Menu list_member_menu = {
+ ListmaintMemberMenuEntry,
+ ListmaintMemberMenuExit,
+ NULL,
+ 7,
+ {
+ SIMPLEFUNC("add", "Add a member to this list", AddMember),
+ SIMPLEFUNC("remove", "Remove a member from this list", DeleteMember),
+ SIMPLEFUNC("all", "Show the members of this list", ListAllMembers),
+ SIMPLEFUNC("user", "Show the members of type USER", ListUserMembers),
+ SIMPLEFUNC("list", "Show the members of type LIST", ListListMembers),
+ SIMPLEFUNC("string", "Show the members of type STRING",
+ ListStringMembers),
+ SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode)
+ }
};
/*
- * Clustermaint Menus
+ * Machine To Cluster Mappings Menu
*/
-Menu clustermaint_machine_menu = {
+Menu mappings_menu = {
NULLFUNC,
NULLFUNC,
- "Machine Maintenence",
- 7,
+ "Machine To Cluster Mappings Menu",
+ 4,
{
- { ShowMachineInfo, NULLMENU, 2, {
- {"show","Get machine information"},
- {"name","Machine's Name: "}
- } },
- { AddMachine, NULLMENU, 2, {
- {"add","Add a new machine"},
- {"name","Machine's Name: "},
- } },
- { UpdateMachine, NULLMENU, 2, {
- {"update","Update machine information"},
- {"name","Machine's Name: "},
- } },
- { DeleteMachine, NULLMENU, 2, {
- {"delete","Delete this machine"},
- {"name","Machine's Name: "}
- } },
{ MachineToClusterMap, NULLMENU, 3, {
{"map", "Show Machine to cluster mapping"},
{"name", "Machine's Name: "},
{"name","Machine's Name: "},
{"cluster", "Cluster's Name: "},
} },
+ SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode),
}
};
-Menu clustermaint_cluster_menu = {
+/*
+ * Post Office Box Menu
+ */
+
+Menu pobox_menu = {
NULLFUNC,
NULLFUNC,
- "Cluster Information",
+ "Post Office Box Menu",
+ 4,
+ {
+ {GetUserPOBox, NULLMENU, 2, {
+ {"show", "Show a user's post office box"},
+ {"login name", "login name: "}
+ } },
+ {SetUserPOBox, NULLMENU, 2, {
+ {"set", "Set (Add or Change) a user's post office box"},
+ {"login name", "login name: "}
+ } },
+ {RemoveUserPOBox, NULLMENU, 2, {
+ {"remove", "Remove a user's post office box"},
+ {"login name", "login name: "}
+ } },
+ SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode)
+ }
+};
+
+/*
+ * Quota Menu
+ */
+
+Menu quota_menu = {
+ NULLFUNC,
+ NULLFUNC,
+ "Quota Menu",
+ 7,
+ {
+ SIMPLEFUNC("shdef", "Show default user quota (in KB)", ShowDefaultQuota),
+ {ChangeDefaultQuota, NULLMENU, 2, {
+ {"chdef", "Change default user quota"},
+ {"quota", "New quota (in KB): "}
+ } },
+ SIMPLEFUNC("shquota", "Show a user's disk quota on a filesytem",
+ ShowUserQuota),
+ SIMPLEFUNC("addquota", "Add a new disk quota for user on a filesytem",
+ AddUserQuota),
+ SIMPLEFUNC("chquota", "Change a user's disk quota on a filesytem",
+ ChangeUserQuota),
+ SIMPLEFUNC("rmquota", "Remove a user's disk quota on a filesytem",
+ RemoveUserQuota),
+ SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode)
+ }
+};
+
+/* ------------------------- First Tier Menus ------------------------- */
+
+/*
+ * Cluster Menu
+ */
+
+Menu cluster_menu = {
+ NULLFUNC,
+ NULLFUNC,
+ "Cluster Menu",
7,
{
{ ShowClusterInfo, NULLMENU, 2, {
{"show", "Get cluster information"},
{"name", "Cluster's Name: "}
} },
- { MachinesInCluster, NULLMENU, 2, {
- {"machines", "List all machines in a cluster"},
- {"clus", "Cluster's Name: "}
- } },
{ AddCluster, NULLMENU, 2, {
{"add", "Add a new cluster"},
{"name","Cluster's Name: "},
{"delete", "Delete this cluster"},
{"name", "Cluster's Name: "}
} },
- { AddMachineToCluster, NULLMENU, 3, {
- {"addcluster","Add machines to a clusters"},
- {"name","Machine's Name: "},
- {"cluster", "Cluster's Name: "},
- } },
- { RemoveMachineFromCluster, NULLMENU, 3, {
- {"remcluster", "Remove machines from clusters"},
- {"name","Machine's Name: "},
- {"cluster", "Cluster's Name: "},
- } },
+ SUBMENU("mappings","Machine To Cluster Mappings Menu", &mappings_menu),
+ SUBMENU("c_data","Cluster Data Menu", &cluster_data_menu),
+ SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode)
}
};
-Menu clustermaint_data_menu = {
- NULLFUNC,
- NULLFUNC,
- "Cluster Data Maintenence",
- 3,
+/*
+ * Filesystem Menu
+ */
+
+Menu filesys_menu = {
+ NULLFUNC,
+ NULLFUNC,
+ "Filesystem Menu",
+ 10,
{
- { ShowClusterData, NULLMENU, 3, {
- {"show", "Show Data on a given Cluster"},
- {"clus", "Cluster's Name: "},
- {"label", "Label Identifing the data: "},
+ { GetFS, NULLMENU, 2, {
+ {"get", "Get Filesystem Name Information"},
+ {"name", "Name of Filesystem: "}
} },
- { AddClusterData, NULLMENU, 4, {
- {"add", "Add Data to a given Cluster"},
- {"clus", "Cluster Name: "},
- {"label", "Label Identifing the data: "},
- {"data", "The data to be added: "},
+ { AddFS, NULLMENU, 2, {
+ {"add", "Add New Filesystem to Database"},
+ {"name", "name: "},
} },
- { RemoveClusterData, NULLMENU, 4, {
- {"delete", "Remove Data to a given Cluster"},
- {"clus", "Cluster's Name: "},
- {"label", "Label Identifing the data: "},
- {"data", "The data to be removed: "},
- } }
- }
-};
-
-Menu clustermaint_top_menu = {
- NULLFUNC,
- NULLFUNC,
- "Cluster Maintenence",
- 5,
- {
- SUBMENU("machine", "Work on Machines", &clustermaint_machine_menu),
- SUBMENU("cluster", "Work on Clusters", &clustermaint_cluster_menu),
- SUBMENU("data", "Work with cluster data", &clustermaint_data_menu),
- {MachineToClusterMap, NULLMENU, 3, {
- {"map", "Machine to Cluster Mapping"},
- {"machine", "Machine Name: "},
- {"clus", "Cluster Name: "}
+ { ChangeFS, NULLMENU, 2, {
+ {"change", "Update Filesystem Information"},
+ {"name", "name: "},
+ } },
+ { DeleteFS, NULLMENU, 2, {
+ {"delete", "Delete Filesystem"},
+ {"name", "Filesystem Name: "}
+ } },
+ { GetFSAlias, NULLMENU, 2, {
+ {"check", "Check An Association"},
+ {"name", "alias name : "}
+ } },
+ { CreateFSAlias, NULLMENU, 2, {
+ {"alias", "Associate with a Filesystem"},
+ {"name", "alias name : "},
+ } },
+ { DeleteFSAlias, NULLMENU, 2, {
+ {"unalias", "Disassociate from a Filesystem"},
+ {"name", "alias name : "},
} },
- SIMPLEFUNC("verbose", "Toggle Delete Confirmation", ToggleVerboseMode),
+ SUBMENU("quotas","Quota Menu", "a_menu),
+ SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode),
+ SIMPLEFUNC("help", "Help ..", AttachHelp)
}
};
/*
- * Dcmmaint menus
+ * Machine Menu
*/
-/* Commenting out all DCM maint stuff.
-
-Menu dcmmaint_service_menu = {
- dcmmaint_service_menu_entry,
- dcmmaint_service_menu_exit,
- NULL,
- 5,
- {
- SIMPLEFUNC("show", "Show fields of service", show_service),
- SIMPLEFUNC("interval", "Change the interval field", change_interval),
- SIMPLEFUNC("target_path", "Change the target_path field",
- change_target_path),
- SIMPLEFUNC("script", "Change the script field", change_script),
- SIMPLEFUNC("dfgen",
- "Change the date of the latest generation of the db file",
- change_dfgen)
- }
-};
-
-Menu dcmmaint_host_info_menu = {
- dcmmaint_host_info_menu_entry,
- dcmmaint_host_info_menu_exit,
- NULL,
- 8,
- {
- SIMPLEFUNC("show", "Show values of entry", show_host_info),
- SIMPLEFUNC("last_time", "Change the last_time field", change_last_time),
- SIMPLEFUNC("success", "Change the success field", change_success),
- SIMPLEFUNC("override", "Change the override field", change_override),
- SIMPLEFUNC("enable", "Change the enable field", change_enable),
- SIMPLEFUNC("value1", "Change the value1 field", change_value1),
- SIMPLEFUNC("value2", "Change the value2 field", change_value2),
- SIMPLEFUNC("rvdacls", "Change the RVD ACLs (for RVD servers only)",
- update_rvd_server)
- }
-};
-
-Menu dcmmaint_top_menu = {
+Menu machine_menu = {
NULLFUNC,
NULLFUNC,
- "Data Control Manager Maintenance",
- 9,
+ "Machine Menu",
+ 6,
{
- SUBMENU("hi_change", "Modify a service-host entry",
- &dcmmaint_host_info_menu),
- SIMPLEFUNC("hi_add", "Create new service-host entry", do_host_info),
- SIMPLEFUNC("hi_delete", "Remove a service-host entry", do_host_info),
- SIMPLEFUNC("hi_list", "List service-host entries", do_host_info),
- SUBMENU("s_change", "Modify info for an existing service",
- &dcmmaint_service_menu),
- SIMPLEFUNC("s_add", "Create new service", do_service),
- SIMPLEFUNC("s_delete", "Remove a service", do_service),
- SIMPLEFUNC("s_list", "List services", do_service),
- SIMPLEFUNC("help", "How to use this program", instructions)
+ { ShowMachineInfo, NULLMENU, 2, {
+ {"show","Get machine information"},
+ {"name","Machine's Name: "}
+ } },
+ { AddMachine, NULLMENU, 2, {
+ {"add","Add a new machine"},
+ {"name","Machine's Name: "},
+ } },
+ { UpdateMachine, NULLMENU, 2, {
+ {"update","Update machine information"},
+ {"name","Machine's Name: "},
+ } },
+ { DeleteMachine, NULLMENU, 2, {
+ {"delete","Delete this machine"},
+ {"name","Machine's Name: "}
+ } },
+ SUBMENU("mappings","Machine To Cluster Mappings Menu", &mappings_menu),
+ SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode)
}
};
-Commenting out all DCM maint stuff. */
-
/*
- * Listmaint Menus
+ * List Menu
*/
-Menu listmaint_list_menu = {
+Menu list_menu = {
NULLFUNC,
NULLFUNC,
- "Lists",
- 5,
- {
- SIMPLEFUNC("member",
- "List all lists to which a given member belongs",
- ListByMember),
- SIMPLEFUNC("admin",
- "List all items which a given member can administer",
- ListByAdministrator),
- SIMPLEFUNC("groups", "List all lists which are groups",
- ListAllGroups),
- SIMPLEFUNC("public", "List all public mailing lists",
- ListAllPublicMailLists),
- SIMPLEFUNC("maillists", "List all mailing lists",
- ListAllMailLists)
- }
-};
-
-Menu listmaint_member_menu = {
- ListmaintMemberMenuEntry,
- ListmaintMemberMenuExit,
- NULL,
- 7,
- {
- SIMPLEFUNC("add", "Add a member to this list",
- AddMember),
- SIMPLEFUNC("remove", "Remove a member from this list",
- DeleteMember),
- SIMPLEFUNC("all", "Show the members of this list",
- ListAllMembers),
- SIMPLEFUNC("user", "Show the members of type USER",
- ListUserMembers),
- SIMPLEFUNC("list", "Show the members of type LIST",
- ListListMembers),
- SIMPLEFUNC("string", "Show the members of type STRING",
- ListStringMembers),
- SIMPLEFUNC("verbose", "Toggle Verbosity of Delete",
- ToggleVerboseMode)
- }
-};
-
-Menu listmaint_top_menu = {
- NULLFUNC,
- NULLFUNC,
- "List Maintenance Menu",
- 8,
+ "List Menu",
+ 10,
{
{ ShowListInfo, NULLMENU, 2, {
{"show", "Display information about a list"},
{"list name", "Name of list: "}
} },
- { NULLFUNC, &listmaint_member_menu, 2, {
+ { NULLFUNC, &list_member_menu, 2, {
{"add", "Create new List"},
{"list name", "Name of list: "}
} },
{"delete", "Delete a List"},
{"list name", "Name of list: "}
} },
- { NULLFUNC, &listmaint_member_menu, 2, {
- {"members", "Change/Display the membership of a list"},
- {"list name", "Name of list: "}
- } },
SIMPLEFUNC("query_remove",
"Interactively remove an item from all lists",
InterRemoveItemFromLists),
- SUBMENU("list_lists", "Display inventory of lists",
- &listmaint_list_menu),
- SIMPLEFUNC("verbose", "Toggle Verbosity of Delete",
- ToggleVerboseMode),
- SIMPLEFUNC("help", "How to use this program", ListHelp)
+ { NULLFUNC, &list_member_menu, 2, {
+ {"members", "Member Menu - Change/Show Members of a List."},
+ {"list name", "Name of list: "}
+ } },
+ SUBMENU("list_info", "List Info Menu",
+ &list_info_menu),
+ SUBMENU("quotas","Quota Menu", "a_menu),
+ SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode),
+ SIMPLEFUNC("help", "Print Help", ListHelp)
}
};
/*
- * NFSmaint menus.
+ * NFS Physical Menu
*/
-Menu nfsmaint_top_menu = {
+Menu nfsphys_menu = {
NULLFUNC,
NULLFUNC,
- "NFS Maintenence",
- 5,
+ "NFS Physical Menu",
+ 6,
{
{ ShowNFSService, NULLMENU, 2, {
{ "show", "Show an NFS server" },
{ "delete", "Delete NFS server"},
{"machine", "Machine Name: "},
} },
+ SUBMENU("quotas","Quota Menu", "a_menu),
SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode),
/* SIMPLEFUNC("help", "Help", NFSHelp), */
}
};
/*
- * Portmaint menus.
- */
-
-/* Queries have not been implemented yet :-(
-
-Menu servmenu = {
- NULLFUNC,
- NULLFUNC,
- "Server Maintenence",
- 8,
- {
- { getserv, NULLMENU, 2, {
- {"get", "Services Info"},
- {"serv", "Service Name: "}
- } },
- { addserv, NULLMENU, 4, {
- {"add", "Add Service"},
- {"srv", "Name: "},
- {"proto", "Protocol: "},
- {"port", "Port: "}
- } },
- { updserv, NULLMENU, 4, {
- {"update", "Update Service"},
- {"srv", "Name: "},
- {"proto", "Protocol: "},
- {"port", "Port: "}
- } },
- {delserv, NULLMENU, 3, {
- {"delete", "Delete Service"},
- {"serv", "Service Name: "},
- {"proto", "Protocol: "}
- } },
- { getassc, NULLMENU, 2, {
- {"get_alias", "Get All Aliases for Service"},
- {"srv", "Service Name: "}
- } },
- { alas, NULLMENU, 3, {
- {"+", "Add Alias"},
- {"srv", "Service Name: "},
- {"als", "Alias: "}
- } },
- { alas, NULLMENU, 3, {
- {"-", "Delete Alias"},
- {"srv", "Service Name: "},
- {"als", "Alias: "}
- } },
- SIMPLEFUNC("toggle", "Toggle Verbosity of Delete", toggle_verb)
- }
-};
-
-*/
-/*
- * smsmaint - TBS
- */
-
-/*
- * Usermaint menu.
+ * User Menu
*/
-Menu usermaint_pobox_menu = {
+Menu user_menu = {
NULLFUNC,
NULLFUNC,
- "Edit User Post Office Boxes",
- 3,
- {
- {GetUserPOBox, NULLMENU, 2, {
- {"show", "Show a user's post office box"},
- {"login name", "login name: "}
- } },
- {SetUserPOBox, NULLMENU, 2, {
- {"set", "Set (Add or Change) a user's post office box"},
- {"login name", "login name: "}
- } },
- {RemoveUserPOBox, NULLMENU, 2, {
- {"remove", "Remove a user's post office box"},
- {"login name", "login name: "}
- } },
- }
-};
-
-Menu usermaint_quota_menu = {
- NULLFUNC,
- NULLFUNC,
- "Edit User and Default Quotas",
- 6,
- {
- SIMPLEFUNC("shdef", "Show default user quota (in KB)", ShowDefaultQuota),
- {ChangeDefaultQuota, NULLMENU, 2, {
- {"chdef", "Change default user quota"},
- {"quota", "New quota (in KB): "}
- } },
- SIMPLEFUNC("shquota", "Show a user's disk quota on a filesytem",
- ShowUserQuota),
- SIMPLEFUNC("addquota", "Add a new disk quota for user on a filesytem",
- AddUserQuota),
- SIMPLEFUNC("chquota", "Change a user's disk quota on a filesytem",
- ChangeUserQuota),
- SIMPLEFUNC("rmquota", "Remove a user's disk quota on a filesytem",
- RemoveUserQuota),
- }
-};
-
-Menu usermaint_top_menu = {
- NULLFUNC,
- NULLFUNC,
- "SMS User Maintenance",
- 9,
+ "User Menu",
+ 11,
{
{ShowUserByLogin, NULLMENU, 2, {
{"login", "Show user information by login name"},
{"udelete", "Delete user by uid"},
{"uid", "User ID (not MIT ID!): "}
} },
- SUBMENU("pobox", "User PO Boxes", &usermaint_pobox_menu),
- SUBMENU("quota", "User Quotas", &usermaint_quota_menu),
+ SUBMENU("pobox", "Post Office Box Menu", &pobox_menu),
+ SUBMENU("quota", "Quota Menu", "a_menu),
+ SIMPLEFUNC("verbose", "Toggle Verbosity of Delete", ToggleVerboseMode)
}
};
+/* ------------------------- Root Menu ------------------------- */
+
/*
* Sms top menu
*/
NULLFUNC,
NULLFUNC,
"Sms Database Manipulation",
- 5,
+ 6,
{
- SUBMENU("attachmaint","open the attachmaint menu",&attachmaint_top_menu),
- SUBMENU("clustermaint","open the clustermaint menu",
- &clustermaint_top_menu),
-/* SUBMENU("dcmmaint","open the dcmmaint menu",&dcmmaint_top_menu), */
- SUBMENU("listmaint","open the listmaint menu",&listmaint_top_menu),
- SUBMENU("nfsmaint","open the nfsmaint menu",&nfsmaint_top_menu),
-/* SUBMENU("portmaint","open the portmaint menu",&portmaint_top_menu), */
-/* SUBMENU("smsmaint","open the smsmaint menu",&smsmaint_top_menu), */
- SUBMENU("usermaint","open the usermaint menu",&usermaint_top_menu)
+ SUBMENU("cluster","Cluster Menu",&cluster_menu),
+ SUBMENU("filesys","Filesystem Menu", &filesys_menu),
+ SUBMENU("list","Lists and Group Menu", &list_menu),
+ SUBMENU("machine","Machine Menu",&machine_menu),
+ SUBMENU("nfs","NFS Physical Menu", &nfsphys_menu),
+ SUBMENU("user","User Menu", &user_menu)
}
};