HDFS-13858. RBF: Add check to have single valid argument to safemode command. Contributed by Ayush Saxena.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/75691ad6 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/75691ad6 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/75691ad6 Branch: refs/heads/HDFS-12090 Commit: 75691ad600473d4d315434b0876d6d10d3050a6b Parents: 3974427 Author: Vinayakumar B <vinayakum...@apache.org> Authored: Tue Aug 28 09:21:07 2018 +0530 Committer: Vinayakumar B <vinayakum...@apache.org> Committed: Tue Aug 28 09:21:07 2018 +0530 ---------------------------------------------------------------------- .../hadoop/hdfs/tools/federation/RouterAdmin.java | 6 ++++++ .../server/federation/router/TestRouterAdminCLI.java | 14 ++++++++++++++ 2 files changed, 20 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/75691ad6/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/tools/federation/RouterAdmin.java ---------------------------------------------------------------------- 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 91e1669..f88d0a6 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 @@ -218,6 +218,10 @@ public class RouterAdmin extends Configured implements Tool { "Successfully clear quota for mount point " + argv[i]); } } else if ("-safemode".equals(cmd)) { + if (argv.length > 2) { + throw new IllegalArgumentException( + "Too many arguments, Max=1 argument allowed only"); + } manageSafeMode(argv[i]); } else if ("-nameservice".equals(cmd)) { String subcmd = argv[i]; @@ -712,6 +716,8 @@ public class RouterAdmin extends Configured implements Tool { } else if (cmd.equals("get")) { boolean result = getSafeMode(); System.out.println("Safe Mode: " + result); + } else { + throw new IllegalArgumentException("Invalid argument: " + cmd); } } http://git-wip-us.apache.org/repos/asf/hadoop/blob/75691ad6/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouterAdminCLI.java ---------------------------------------------------------------------- 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 2da5fb9..2682e9a 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 @@ -519,6 +519,7 @@ public class TestRouterAdminCLI { assertTrue(routerContext.getRouter().getSafemodeService().isInSafeMode()); System.setOut(new PrintStream(out)); + System.setErr(new PrintStream(err)); assertEquals(0, ToolRunner.run(admin, new String[] {"-safemode", "get"})); assertTrue(out.toString().contains("true")); @@ -534,6 +535,19 @@ public class TestRouterAdminCLI { assertEquals(0, ToolRunner.run(admin, new String[] {"-safemode", "get"})); assertTrue(out.toString().contains("false")); + + out.reset(); + assertEquals(-1, ToolRunner.run(admin, + new String[] {"-safemode", "get", "-random", "check" })); + assertTrue(err.toString(), err.toString() + .contains("safemode: Too many arguments, Max=1 argument allowed only")); + err.reset(); + + assertEquals(-1, + ToolRunner.run(admin, new String[] {"-safemode", "check" })); + assertTrue(err.toString(), + err.toString().contains("safemode: Invalid argument: check")); + err.reset(); } @Test --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org