diff --git a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/tools/federation/RouterAdmin.java b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/tools/federation/RouterAdmin.java index deadf3d313..b8e7c796a1 100644 --- a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/tools/federation/RouterAdmin.java +++ b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/tools/federation/RouterAdmin.java @@ -135,7 +135,7 @@ private String getUsage(String cmd) { "-setStorageTypeQuota", "-clrQuota", "-clrStorageTypeQuota", "-safemode", "-nameservice", "-getDisabledNameservices", "-refresh", "-refreshRouterArgs", - "-refreshSuperUserGroupsConfiguration"}; + "-refreshSuperUserGroupsConfiguration", "-refreshCallQueue"}; StringBuilder usage = new StringBuilder(); usage.append("Usage: hdfs dfsrouteradmin :\n"); for (int i = 0; i < commands.length; i++) { @@ -185,6 +185,8 @@ private String getUsage(String cmd) { return "\t[-refreshRouterArgs [arg1..argn]]"; } else if (cmd.equals("-refreshSuperUserGroupsConfiguration")) { return "\t[-refreshSuperUserGroupsConfiguration]"; + } else if (cmd.equals("-refreshCallQueue")) { + return "\t[-refreshCallQueue]"; } return getUsage(null); } @@ -222,6 +224,10 @@ private void validateMax(String[] arg) { if (arg.length > 1) { throw new IllegalArgumentException("No arguments allowed"); } + } else if (arg[0].equals("-refreshCallQueue")) { + if (arg.length > 1) { + throw new IllegalArgumentException("No arguments allowed"); + } } } diff --git a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouterAdminCLI.java b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouterAdminCLI.java index 4134b49d9a..b9dff65b28 100644 --- a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouterAdminCLI.java +++ b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouterAdminCLI.java @@ -1744,9 +1744,19 @@ public void testErrorFaultTolerant() throws Exception { public void testRefreshCallQueue() throws Exception { System.setOut(new PrintStream(out)); + System.setErr(new PrintStream(err)); + String[] argv = new String[]{"-refreshCallQueue"}; assertEquals(0, ToolRunner.run(admin, argv)); assertTrue(out.toString().contains("Refresh call queue successfully")); + + argv = new String[]{}; + assertEquals(-1, ToolRunner.run(admin, argv)); + assertTrue(out.toString().contains("-refreshCallQueue")); + + argv = new String[]{"-refreshCallQueue", "redundant"}; + assertEquals(-1, ToolRunner.run(admin, argv)); + assertTrue(err.toString().contains("No arguments allowed")); } private void addMountTable(String src, String nsId, String dst) diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/site/markdown/HDFSCommands.md b/hadoop-hdfs-project/hadoop-hdfs/src/site/markdown/HDFSCommands.md index 175c865f22..a1509d2d01 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/site/markdown/HDFSCommands.md +++ b/hadoop-hdfs-project/hadoop-hdfs/src/site/markdown/HDFSCommands.md @@ -458,6 +458,7 @@ Usage: [-refresh] [-refreshRouterArgs [arg1..argn]] [-refreshSuperUserGroupsConfiguration] + [-refreshCallQueue] | COMMAND\_OPTION | Description | |:---- |:---- | @@ -476,6 +477,7 @@ Usage: | `-refresh` | Update mount table cache of the connected router. | | `refreshRouterArgs` \ \ [arg1..argn] | To trigger a runtime-refresh of the resource specified by \ on \. For example, to enable white list checking, we just need to send a refresh command other than restart the router server. | | `-refreshSuperUserGroupsConfiguration` | Refresh superuser proxy groups mappings on Router. | +| `-refreshCallQueue` | Reload the call queue from config for Router. | The commands for managing Router-based federation. See [Mount table management](../hadoop-hdfs-rbf/HDFSRouterFederation.html#Mount_table_management) for more info.