Whamcloud - gitweb
LU-8955 nodemap: add SELinux policy info to nodemap
[fs/lustre-release.git] / lustre / utils / lctl.c
index 788fc53..4ed25e8 100644 (file)
@@ -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/
 #include <stdio.h>
 #include <string.h>
 #include <libcfs/util/parser.h>
-#include <lnet/lnetctl.h>
+#include <linux/lnet/lnetctl.h>
 #include "obdctl.h"
-#include <lustre_ver.h>
+#include <linux/lustre/lustre_ver.h>
+#include <lustre/lustreapi.h>
 
 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 <device> <nid1>[,nid2,nid3]"},
+        "usage: replace_nids <device> <nid1>[,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> <PUT|ACK|GET|REPLY>...]\n"},
+        "                    [<-m | --message> <PUT|ACK|GET|REPLY>...]\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=<secs>\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] <target.keyword=val>\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 <target.keyword=val>\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]"
         "<param_path1=value1 param_path2=value2 ...>\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] <param_path1 param_path2 ...>\n"
@@ -245,6 +249,7 @@ command_t cmdlist[] = {
         "list pools and pools members\n"
         "usage: pool_list  <fsname>[.<poolname>] | <pathname>"},
 
+#ifdef HAVE_SERVER_SUPPORT
        /* Barrier commands */
        {"===  Barrier ==", NULL, 0, "barrier management"},
        {"barrier_freeze", jt_barrier_freeze, 0,
@@ -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 <fileset>"},
+       {"nodemap_set_sepol", jt_nodemap_set_sepol, 0,
+        "set SELinux policy info on a nodemap\n"
+        "usage: nodemap_set_sepol <SELinux policy info>"},
        {"nodemap_test_nid", jt_nodemap_test_nid, 0,
         "usage: nodemap_test_nid <nid>"},
        {"nodemap_test_id", jt_nodemap_test_id, 0,
@@ -355,6 +363,9 @@ command_t cmdlist[] = {
         "usage: setup <args...>"},
        {"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 <device|fsname>"},
        {"fork_lcfg", jt_lcfg_fork, 0,
         "copy configuration files for named filesystem with given name\n"
         "usage: fork_lcfg <fsname> <newname>"},
@@ -451,7 +462,7 @@ command_t cmdlist[] = {
         "get the version of an object on servers\n"
         "usage: getobjversion <fid>\n"
         "       getobjversion -i <id> -g <group>"},
-
+#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();
         }