You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kudu.apache.org by al...@apache.org on 2020/11/28 22:25:03 UTC

[kudu] 02/02: [tools] add missing top-level entries into TestModeHelp

This is an automated email from the ASF dual-hosted git repository.

alexey pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kudu.git

commit 42425c044078a904089f360b0fd5e0c81d88dc2d
Author: Alexey Serbin <al...@apache.org>
AuthorDate: Fri Nov 27 21:23:56 2020 -0800

    [tools] add missing top-level entries into TestModeHelp
    
    This patch adds missing entries into the ToolTest.TestModeHelp scenario
    for the existing top-level commands of the kudu CLI tool, extending
    the coverage of the scenario to all currently existing top-level
    kudu CLI commands.
    
    I also did a minor clean-up on the code: rearranged the entries in the
    scenario's code to match the sequence of those in the output of the
    tool when run with no arguments or with --help flag.
    
    Change-Id: I04c6744429e7a6a87ed6e87c1f5cab9c67d0f327
    Reviewed-on: http://gerrit.cloudera.org:8080/16790
    Tested-by: Alexey Serbin <as...@cloudera.com>
    Reviewed-by: Grant Henke <gr...@apache.org>
---
 src/kudu/tools/kudu-tool-test.cc      | 81 +++++++++++++++++++----------------
 src/kudu/tools/tool_action_master.cc  |  2 +-
 src/kudu/tools/tool_action_tserver.cc |  3 +-
 3 files changed, 46 insertions(+), 40 deletions(-)

diff --git a/src/kudu/tools/kudu-tool-test.cc b/src/kudu/tools/kudu-tool-test.cc
index ab24435..31f25ef 100644
--- a/src/kudu/tools/kudu-tool-test.cc
+++ b/src/kudu/tools/kudu-tool-test.cc
@@ -984,16 +984,17 @@ TEST_F(ToolTest, TestTopLevelHelp) {
 
 TEST_F(ToolTest, TestModeHelp) {
   {
-    const vector<string> kFsModeRegexes = {
-        "check.*Check metadata consistency",
-        "downgrade.*Downgrade the metadata",
-        "fix.*Fix automatically-repairable metadata",
-        "list.*List the Kudu table HMS entries",
-        "precheck.*Check that the Kudu cluster is prepared",
+    const vector<string> kClusterModeRegexes = {
+        "ksck.*Check the health of a Kudu cluster",
+        "rebalance.*Move tablet replicas between tablet servers",
     };
-    NO_FATALS(RunTestHelp("hms", kFsModeRegexes));
-    NO_FATALS(RunTestHelp("hms not_a_mode", kFsModeRegexes,
-                          Status::InvalidArgument("unknown command 'not_a_mode'")));
+    NO_FATALS(RunTestHelp("cluster", kClusterModeRegexes));
+  }
+  {
+    const vector<string> kDiagnoseModeRegexes = {
+        "parse_stacks.*Parse sampled stack traces",
+    };
+    NO_FATALS(RunTestHelp("diagnose", kDiagnoseModeRegexes));
   }
   {
     const vector<string> kFsModeRegexes = {
@@ -1012,19 +1013,31 @@ TEST_F(ToolTest, TestModeHelp) {
         "block.*binary contents of a data block",
         "cfile.*contents of a CFile",
         "tree.*tree of a Kudu filesystem",
-        "uuid.*UUID of a Kudu filesystem"
+        "uuid.*UUID of a Kudu filesystem",
     };
     NO_FATALS(RunTestHelp("fs dump", kFsDumpModeRegexes));
 
   }
   {
+    const vector<string> kHmsModeRegexes = {
+        "check.*Check metadata consistency",
+        "downgrade.*Downgrade the metadata",
+        "fix.*Fix automatically-repairable metadata",
+        "list.*List the Kudu table HMS entries",
+        "precheck.*Check that the Kudu cluster is prepared",
+    };
+    NO_FATALS(RunTestHelp("hms", kHmsModeRegexes));
+    NO_FATALS(RunTestHelp("hms not_a_mode", kHmsModeRegexes,
+                          Status::InvalidArgument("unknown command 'not_a_mode'")));
+  }
+  {
     const vector<string> kLocalReplicaModeRegexes = {
         "cmeta.*Operate on a local tablet replica's consensus",
         "data_size.*Summarize the data size",
         "dump.*Dump a Kudu filesystem",
         "copy_from_remote.*Copy a tablet replica",
         "delete.*Delete tablet replicas from the local filesystem",
-        "list.*Show list of tablet replicas"
+        "list.*Show list of tablet replicas",
     };
     NO_FATALS(RunTestHelp("local_replica", kLocalReplicaModeRegexes));
   }
@@ -1034,7 +1047,7 @@ TEST_F(ToolTest, TestModeHelp) {
         "data_dirs.*Dump the data directories",
         "meta.*Dump the metadata",
         "rowset.*Dump the rowset contents",
-        "wals.*Dump all WAL"
+        "wals.*Dump all WAL",
     };
     NO_FATALS(RunTestHelp("local_replica dump", kLocalReplicaDumpModeRegexes));
   }
@@ -1042,7 +1055,7 @@ TEST_F(ToolTest, TestModeHelp) {
     const vector<string> kLocalReplicaCMetaRegexes = {
         "print_replica_uuids.*Print all tablet replica peer UUIDs",
         "rewrite_raft_config.*Rewrite a tablet replica",
-        "set_term.*Bump the current term"
+        "set_term.*Bump the current term",
     };
     NO_FATALS(RunTestHelp("local_replica cmeta", kLocalReplicaCMetaRegexes));
     // Try with a hyphen instead of an underscore.
@@ -1050,7 +1063,7 @@ TEST_F(ToolTest, TestModeHelp) {
   }
   {
     const vector<string> kLocalReplicaCopyFromRemoteRegexes = {
-        "Copy a tablet replica from a remote server"
+        "Copy a tablet replica from a remote server",
     };
     NO_FATALS(RunTestHelp("local_replica copy_from_remote --help",
                           kLocalReplicaCopyFromRemoteRegexes));
@@ -1059,22 +1072,11 @@ TEST_F(ToolTest, TestModeHelp) {
                           kLocalReplicaCopyFromRemoteRegexes));
   }
   {
-    const vector<string> kClusterModeRegexes = {
-        "ksck.*Check the health of a Kudu cluster",
-    };
-    NO_FATALS(RunTestHelp("cluster", kClusterModeRegexes));
-  }
-  {
-    const vector<string> kDiagnoseModeRegexes = {
-        "parse_stacks.*Parse sampled stack traces",
-    };
-    NO_FATALS(RunTestHelp("diagnose", kDiagnoseModeRegexes));
-  }
-  {
     const vector<string> kMasterModeRegexes = {
         "authz_cache.*Operate on the authz caches of the Kudu Masters",
         "dump_memtrackers.*Dump the memtrackers",
         "get_flags.*Get the gflags",
+        "run.*Run a Kudu Master",
         "set_flag.*Change a gflag value",
         "status.*Get the status",
         "timestamp.*Get the current timestamp",
@@ -1091,6 +1093,7 @@ TEST_F(ToolTest, TestModeHelp) {
   {
     const vector<string> kPbcModeRegexes = {
         "dump.*Dump a PBC",
+        "edit.*Edit a PBC \\(protobuf container\\) file",
     };
     NO_FATALS(RunTestHelp("pbc", kPbcModeRegexes));
   }
@@ -1098,7 +1101,7 @@ TEST_F(ToolTest, TestModeHelp) {
     const vector<string> kPerfRegexes = {
         "loadgen.*Run load generation with optional scan afterwards",
         "table_scan.*Show row count and scanning time cost of tablets in a table",
-        "tablet_scan.*Show row count of a local tablet"
+        "tablet_scan.*Show row count of a local tablet",
     };
     NO_FATALS(RunTestHelp("perf", kPerfRegexes));
   }
@@ -1109,7 +1112,7 @@ TEST_F(ToolTest, TestModeHelp) {
         "delete.*Delete a tablet replica",
         "dump.*Dump the data of a tablet replica",
         "list.*List all tablet replicas",
-        "unsafe_change_config.*Force the specified replica to adopt"
+        "unsafe_change_config.*Force the specified replica to adopt",
     };
     NO_FATALS(RunTestHelp("remote_replica", kRemoteReplicaModeRegexes));
   }
@@ -1135,42 +1138,44 @@ TEST_F(ToolTest, TestModeHelp) {
         "rename_table.*Rename a table",
         "scan.*Scan rows from a table",
         "set_extra_config.*Change a extra configuration value on a table",
-        "statistics.*Get table statistics"
+        "statistics.*Get table statistics",
     };
     NO_FATALS(RunTestHelp("table", kTableModeRegexes));
   }
   {
     const vector<string> kTabletModeRegexes = {
         "change_config.*Change.*Raft configuration",
-        "leader_step_down.*Change.*tablet's leader"
+        "leader_step_down.*Change.*tablet's leader",
+        "unsafe_replace_tablet.*Replace a tablet with an empty one",
     };
     NO_FATALS(RunTestHelp("tablet", kTabletModeRegexes));
   }
   {
-    const vector<string> kTestModeRegexes = {
-        "mini_cluster.*Spawn a control shell"
-    };
-    NO_FATALS(RunTestHelp("test", kTestModeRegexes));
-  }
-  {
     const vector<string> kChangeConfigModeRegexes = {
         "add_replica.*Add a new replica",
         "change_replica_type.*Change the type of an existing replica",
         "move_replica.*Move a tablet replica",
-        "remove_replica.*Remove an existing replica"
+        "remove_replica.*Remove an existing replica",
     };
     NO_FATALS(RunTestHelp("tablet change_config", kChangeConfigModeRegexes));
   }
   {
+    const vector<string> kTestModeRegexes = {
+        "mini_cluster.*Spawn a control shell"
+    };
+    NO_FATALS(RunTestHelp("test", kTestModeRegexes));
+  }
+  {
     const vector<string> kTServerModeRegexes = {
         "dump_memtrackers.*Dump the memtrackers",
         "get_flags.*Get the gflags",
         "set_flag.*Change a gflag value",
+        "run.*Run a Kudu Tablet Server",
         "state.*Operate on the state",
         "status.*Get the status",
         "quiesce.*Operate on the quiescing state",
         "timestamp.*Get the current timestamp",
-        "list.*List tablet servers"
+        "list.*List tablet servers",
     };
     NO_FATALS(RunTestHelp("tserver", kTServerModeRegexes));
   }
diff --git a/src/kudu/tools/tool_action_master.cc b/src/kudu/tools/tool_action_master.cc
index 05a2d75..d50e0a9 100644
--- a/src/kudu/tools/tool_action_master.cc
+++ b/src/kudu/tools/tool_action_master.cc
@@ -370,7 +370,7 @@ unique_ptr<Mode> BuildMasterMode() {
     unique_ptr<Action> run =
         ActionBuilder("run", &MasterRun)
         .ProgramName("kudu-master")
-        .Description("Runs a Kudu Master")
+        .Description("Run a Kudu Master")
         .ExtraDescription("Note: The master server is started in this process and "
                           "runs until interrupted.\n\n"
                           "The most common configuration flags are described below. "
diff --git a/src/kudu/tools/tool_action_tserver.cc b/src/kudu/tools/tool_action_tserver.cc
index 3c85bd2..0ea95a6 100644
--- a/src/kudu/tools/tool_action_tserver.cc
+++ b/src/kudu/tools/tool_action_tserver.cc
@@ -37,6 +37,7 @@
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/master/master.pb.h"
 #include "kudu/master/master.proxy.h"
+#include "kudu/rpc/response_callback.h"
 #include "kudu/rpc/rpc_controller.h"
 #include "kudu/tools/tool_action.h"
 #include "kudu/tools/tool_action_common.h"
@@ -323,7 +324,7 @@ unique_ptr<Mode> BuildTServerMode() {
   unique_ptr<Action> run =
       ActionBuilder("run", &TServerRun)
       .ProgramName("kudu-tserver")
-      .Description("Runs a Kudu Tablet Server")
+      .Description("Run a Kudu Tablet Server")
       .ExtraDescription("Note: The tablet server is started in this process and "
                         "runs until interrupted.\n\n"
                         "The most common configuration flags are described below. "