X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Futils%2Flctl.c;h=4ed25e89c9245fed1db292a32933991d17f72e04;hp=0184412685af0ce7037bfa6141d883f5f0fb0fb7;hb=1f6cb3534e74f0c9462008c8088b5734b64ed41c;hpb=d73849a05e3ed1baf07b1fd80ffa055299539b4a diff --git a/lustre/utils/lctl.c b/lustre/utils/lctl.c index 0184412..4ed25e8 100644 --- a/lustre/utils/lctl.c +++ b/lustre/utils/lctl.c @@ -23,7 +23,7 @@ * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * Use is subject to license terms. * - * Copyright (c) 2012, 2016, Intel Corporation. + * Copyright (c) 2012, 2017, Intel Corporation. */ /* * This file is part of Lustre, http://www.lustre.org/ @@ -42,9 +42,10 @@ #include #include #include -#include +#include #include "obdctl.h" -#include +#include +#include static int lctl_list_commands(int argc, char **argv); @@ -93,7 +94,7 @@ command_t cmdlist[] = { "usage: which_nid NID [NID...]"}, {"replace_nids", jt_replace_nids, 0, "replace primary NIDs for a device\n" - "usage: replace_nids [,nid2,nid3]"}, + "usage: replace_nids [,nid2,nid3:nid4,nid5:nid6]"}, {"interface_list", jt_ptl_print_interfaces, 0, "print network interface entries\n" "usage: interface_list"}, @@ -114,9 +115,10 @@ command_t cmdlist[] = { "usage: net_drop_add <-s | --source NID>\n" " <-d | --dest NID>\n" " <<-r | --rate DROP_RATE> |\n" - " <-i | --interval SECONDS>>\n" + " <-i | --interval SECONDS>>\n" " [<-p | --portal> PORTAL...]\n" - " [<-m | --message> ...]\n"}, + " [<-m | --message> ...]\n" + " [< -e | --health_error]\n"}, {"net_drop_del", jt_ptl_drop_del, 0, "remove LNet drop rule\n" "usage: net_drop_del <[-a | --all] |\n" " <-s | --source NID>\n" @@ -162,10 +164,11 @@ command_t cmdlist[] = { {"set_timeout", jt_lcfg_set_timeout, 0, "usage: conf_param obd_timeout=\n"}, #if LUSTRE_VERSION_CODE < OBD_OCD_VERSION(3, 0, 53, 0) - {"conf_param", jt_lcfg_mgsparam, 0,"set a permanent config parameter.\n" + {"conf_param", jt_lcfg_confparam, 0, + "set a permanent config parameter.\n" "This command must be run on the MGS node\n" "usage: conf_param [-d] \n" - " -d Remove the permanent setting."}, + " -d Delete the permanent setting from the configuration."}, #endif {"local_param", jt_lcfg_param, 0, "set a temporary, local param\n" "usage: local_param \n"}, @@ -180,12 +183,13 @@ command_t cmdlist[] = { " (Especially useful when using patterns.)\n" " -R Get parameters recursively from the specified entry.\n"}, {"set_param", jt_lcfg_setparam, 0, "set the Lustre or LNET parameter\n" - "usage: set_param [-n] [-P] [-d]" + "usage: set_param [-n] [-P] [-d] [-F]" "\n" "Set the value of the Lustre or LNET parameter at the specified path.\n" " -n Disable printing of the key name when printing values.\n" " -P Set the parameter permanently, filesystem-wide.\n" - " -d Remove the permanent setting (only with -P option).\n"}, + " -d Remove the permanent setting (only with -P option).\n" + " -F Read permanent configuration from a YAML file.\n"}, {"list_param", jt_lcfg_listparam, 0, "list the Lustre or LNET parameter name\n" "usage: list_param [-F|-R|-D] \n" @@ -245,6 +249,7 @@ command_t cmdlist[] = { "list pools and pools members\n" "usage: pool_list [.] | "}, +#ifdef HAVE_SERVER_SUPPORT /* Barrier commands */ {"=== Barrier ==", NULL, 0, "barrier management"}, {"barrier_freeze", jt_barrier_freeze, 0, @@ -255,7 +260,7 @@ command_t cmdlist[] = { "usage: barrier_thaw "}, {"barrier_stat", jt_barrier_stat, 0, "query write barrier status on MDTs\n" - "usage: barrier_stat "}, + "usage: barrier_stat [--state|-s] [--timeout|-t] "}, {"barrier_rescan", jt_barrier_rescan, 0, "rescan the system to filter out inactive MDT(s) for barrier\n" "usage: barrier_rescan [timeout (in seconds)]"}, @@ -297,7 +302,7 @@ command_t cmdlist[] = { "usage: snapshot_umount <-F | --fsname fsname> [-h | --help]\n" " <-n | --name ssname>\n" " [-r | --rsh remote_shell]"}, - +#endif /* HAVE_SERVER_SUPPORT */ /* Nodemap commands */ {"=== Nodemap ===", NULL, 0, "nodemap management"}, {"nodemap_activate", jt_nodemap_activate, 0, @@ -325,6 +330,9 @@ command_t cmdlist[] = { {"nodemap_set_fileset", jt_nodemap_set_fileset, 0, "set a fileset on a nodemap\n" "usage: nodemap_set_fileset "}, + {"nodemap_set_sepol", jt_nodemap_set_sepol, 0, + "set SELinux policy info on a nodemap\n" + "usage: nodemap_set_sepol "}, {"nodemap_test_nid", jt_nodemap_test_nid, 0, "usage: nodemap_test_nid "}, {"nodemap_test_id", jt_nodemap_test_id, 0, @@ -355,6 +363,9 @@ command_t cmdlist[] = { "usage: setup "}, {"cleanup", jt_obd_cleanup, 0, "cleanup previously setup device\n" "usage: cleanup [force | failover]"}, + {"clear_conf", jt_lcfg_clear, 0, + "drop unused config logs for a device or filesystem\n" + "usage: clear_conf "}, {"fork_lcfg", jt_lcfg_fork, 0, "copy configuration files for named filesystem with given name\n" "usage: fork_lcfg "}, @@ -451,7 +462,7 @@ command_t cmdlist[] = { "get the version of an object on servers\n" "usage: getobjversion \n" " getobjversion -i -g "}, - +#ifdef HAVE_SERVER_SUPPORT /* LFSCK commands */ {"==== LFSCK ====", NULL, 0, "LFSCK"}, {"lfsck_start", jt_lfsck_start, 0, "start LFSCK\n" @@ -471,7 +482,7 @@ command_t cmdlist[] = { "usage: lfsck_query [-M | --device MDT_device] [-h | --help]\n" " [-t | --type lfsck_type[,lfsck_type...]]\n" " [-w | --wait]"}, - +#endif /* HAVE_SERVER_SUPPORT */ {"==== obsolete (DANGEROUS) ====", NULL, 0, "obsolete (DANGEROUS)"}, /* some test scripts still use these */ {"cfg_device", jt_obd_device, 0, @@ -545,7 +556,9 @@ int lctl_main(int argc, char **argv) Parser_init("lctl > ", cmdlist); if (argc > 1) { + llapi_set_command_name(argv[1]); rc = Parser_execarg(argc - 1, argv + 1, cmdlist); + llapi_clear_command_name(); } else { rc = Parser_commands(); }