#include <lnet/lnetctl.h>
#include "obdctl.h"
#include <libcfs/libcfsutil.h>
-
-static int jt_quit(int argc, char **argv) {
- Parser_quit(argc, argv);
- return 0;
-}
+#include <lustre/lustre_idl.h>
static int jt_noop(int argc, char **argv) {
return 0;
{"lustre_build_version", jt_get_version, 0,
"print the build version of lustre\n"
"usage: lustre_build_version"},
- {"exit", jt_quit, 0, "quit"},
- {"quit", jt_quit, 0, "quit"},
+ {"exit", Parser_quit, 0, "quit"},
+ {"quit", Parser_quit, 0, "quit"},
+ {"--version", Parser_version, 0,
+ "output build version of the utility and exit"},
- /* Network configuration commands */
- {"===== network config =====", jt_noop, 0, "network config"},
+ /* Network configuration commands */
+ {"===== network config =====", jt_noop, 0, "network config"},
{"--net", jt_opt_net, 0,"run <command> after setting network to <net>\n"
"usage: --net <tcp/elan/o2ib/...> <command>"},
{"network", jt_ptl_network, 0, "configure LNET"
"abort recovery on a restarting MDT or OST device\n"},
{"set_timeout", jt_lcfg_set_timeout, 0,
"usage: conf_param obd_timeout=<secs>\n"},
-#if LUSTRE_VERSION >= OBD_OCD_VERSION(3,0,53,0)
-#warning "remove conf_param option"
-#else
+#if LUSTRE_VERSION_CODE < OBD_OCD_VERSION(3, 0, 53, 0)
{"conf_param", jt_lcfg_mgsparam, 0,"set a permanent config parameter.\n"
"This command must be run on the MGS node\n"
"usage: conf_param [-d] <target.keyword=val>\n"
{"=== Pools ==", jt_noop, 0, "pool management"},
{"pool_new", jt_pool_cmd, 0,
"add a new pool\n"
- "usage pool_new <fsname>.<poolname>"},
- {"pool_add", jt_pool_cmd, 0,
+ "usage: pool_new <fsname>.<poolname>"},
+ {"pool_add", jt_pool_cmd, 0,
"add the named OSTs to the pool\n"
- "usage pool_add <fsname>.<poolname> <ostname indexed list>"},
+ "usage: pool_add <fsname>.<poolname> <ostname indexed list>"},
{"pool_remove", jt_pool_cmd, 0,
"remove the named OST from the pool\n"
- "usage pool_remove <fsname>.<poolname> <ostname indexed list>"},
+ "usage: pool_remove <fsname>.<poolname> <ostname indexed list>"},
{"pool_destroy", jt_pool_cmd, 0,
"destroy a pool\n"
- "usage pool_destroy <fsname>.<poolname>"},
+ "usage: pool_destroy <fsname>.<poolname>"},
{"pool_list", jt_pool_cmd, 0,
"list pools and pools members\n"
- "usage pool_list <fsname>[.<poolname>] | <pathname>"},
+ "usage: pool_list <fsname>[.<poolname>] | <pathname>"},
+
+ /* Nodemap commands */
+ {"=== Nodemap ===", jt_noop, 0, "nodemap management"},
+ {"nodemap_activate", jt_nodemap_activate, 0,
+ "activate nodemap idmapping functions\n"
+ "usage: nodemap_activate"},
+ {"nodemap_add", jt_nodemap_add, 0,
+ "add a new nodemap\n"
+ "usage: nodemap_add <nodemap_name>"},
+ {"nodemap_del", jt_nodemap_del, 0,
+ "remove a nodemap\n"
+ "usage: nodemap_del <nodemap_name>"},
+ {"nodemap_add_range", jt_nodemap_add_range, 0,
+ "add a range to a nodemap\n"
+ "usage: nodemap_add_range <NID range>"},
+ {"nodemap_del_range", jt_nodemap_del_range, 0,
+ "add a range to a nodemap\n"
+ "usage: nodemap_del_range <NID range>"},
+ {"nodemap_modify", jt_nodemap_modify, 0,
+ "modify a nodemap parameters"
+ "usage: nodemap_modify nodemap_name param value"},
+ {"nodemap_add_idmap", jt_nodemap_add_idmap, 0,
+ "add a UID or GID mapping to a nodemap"},
+ {"nodemap_del_idmap", jt_nodemap_del_idmap, 0,
+ "delete a UID or GID mapping from a nodemap"},
+ {"nodemap_test_nid", jt_nodemap_test_nid, 0,
+ "usage: nodemap_test_nid <nid>"},
+ {"nodemap_test_id", jt_nodemap_test_id, 0,
+ "Usage: nodemap_test_id --nid <nid> --idtype [uid|gid] --id <id>"},
/* Changelog commands */
{"=== Changelogs ==", jt_noop, 0, "changelog user management"},
{"==== LFSCK ====", jt_noop, 0, "LFSCK"},
{"lfsck_start", jt_lfsck_start, 0, "start LFSCK\n"
"usage: lfsck_start <-M | --device [MDT,OST]_device>\n"
- " [-e | --error error_handle] [-h | --help]\n"
- " [-n | --dryrun switch] [-r | --reset]\n"
- " [-s | --speed speed_limit]\n"
- " [-t | --type lfsck_type[,lfsck_type...]]"},
+ " [-A | --all] [-c | --create_ostobj [on | off]]\n"
+ " [-e | --error {continue | abort}] [-h | --help]\n"
+ " [-n | --dryrun [on | off]] [-o | --orphan]\n"
+ " [-r | --reset] [-s | --speed speed_limit]\n"
+ " [-t | --type lfsck_type[,lfsck_type...]]\n"
+ " [-w | --window_size size]"},
{"lfsck_stop", jt_lfsck_stop, 0, "stop lfsck(s)\n"
- "usage: lfsck_stop <-M | --device [MDT,OST]_device> [-h | --help]"},
+ "usage: lfsck_stop <-M | --device [MDT,OST]_device>\n"
+ " [-A | --all] [-h | --help]"},
{"==== obsolete (DANGEROUS) ====", jt_noop, 0, "obsolete (DANGEROUS)"},
/* some test scripts still use these */
if (dbg_initialize(argc, argv) < 0)
exit(3);
- Parser_init("lctl > ", cmdlist);
+ Parser_init("lctl > ", cmdlist);
if (argc > 1) {
rc = Parser_execarg(argc - 1, argv + 1, cmdlist);