From f6a477013598f69068a7e77bf735614b99fc59a5 Mon Sep 17 00:00:00 2001 From: xiaojunxiang Date: Mon, 2 Oct 2023 01:54:08 +0800 Subject: [PATCH] HDFS-17213. RBF: In RouterAdmin class, "if else" is not as elegant as "switch case" in the admin command parameters section. --- .../hdfs/tools/federation/RouterAdmin.java | 107 +++++++++--------- .../federation/router/TestRouterAdminCLI.java | 36 ++++++ 2 files changed, 90 insertions(+), 53 deletions(-) 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 b627ca35c87bd..bf95b7ce63657 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 @@ -161,59 +161,60 @@ private static String getUsage(String cmd) { } return usage.toString(); } - if (cmd.equals("-add")) { - return "\t[-add " - + "[-readonly] [-faulttolerant] " - + "[-order HASH|LOCAL|RANDOM|HASH_ALL|SPACE] " - + "-owner -group -mode ]"; - } else if (cmd.equals(ADD_ALL_COMMAND)) { - return "\t[" + ADD_ALL_COMMAND + " " - + " " - + "[-readonly] [-faulttolerant] " + "[-order HASH|LOCAL|RANDOM|HASH_ALL|SPACE] " - + "-owner -group -mode " - + " , " - + " " - + "[-readonly] [-faulttolerant] " + "[-order HASH|LOCAL|RANDOM|HASH_ALL|SPACE] " - + "-owner -group -mode " - + " , ...]"; - } else if (cmd.equals("-update")) { - return "\t[-update " - + " [ ] " - + "[-readonly true|false] [-faulttolerant true|false] " - + "[-order HASH|LOCAL|RANDOM|HASH_ALL|SPACE] " - + "-owner -group -mode ]"; - } else if (cmd.equals("-rm")) { - return "\t[-rm ]"; - } else if (cmd.equals("-ls")) { - return "\t[-ls [-d] ]"; - } else if (cmd.equals("-getDestination")) { - return "\t[-getDestination ]"; - } else if (cmd.equals("-setQuota")) { - return "\t[-setQuota -nsQuota -ssQuota " - + "]"; - } else if (cmd.equals("-setStorageTypeQuota")) { - return "\t[-setStorageTypeQuota -storageType " - + "]"; - } else if (cmd.equals("-clrQuota")) { - return "\t[-clrQuota ]"; - } else if (cmd.equals("-clrStorageTypeQuota")) { - return "\t[-clrStorageTypeQuota ]"; - } else if (cmd.equals("-safemode")) { - return "\t[-safemode enter | leave | get]"; - } else if (cmd.equals("-nameservice")) { - return "\t[-nameservice enable | disable ]"; - } else if (cmd.equals("-getDisabledNameservices")) { - return "\t[-getDisabledNameservices]"; - } else if (cmd.equals("-refresh")) { - return "\t[-refresh]"; - } else if (cmd.equals("-refreshRouterArgs")) { - return "\t[-refreshRouterArgs [arg1..argn]]"; - } else if (cmd.equals("-refreshSuperUserGroupsConfiguration")) { - return "\t[-refreshSuperUserGroupsConfiguration]"; - } else if (cmd.equals("-refreshCallQueue")) { - return "\t[-refreshCallQueue]"; - } else if (cmd.equals(DUMP_COMMAND)) { - return "\t[" + DUMP_COMMAND + "]"; + switch (cmd) { + case "-add": + return "\t[-add " + + "[-readonly] [-faulttolerant] " + + "[-order HASH|LOCAL|RANDOM|HASH_ALL|SPACE] " + + "-owner -group -mode ]"; + case ADD_ALL_COMMAND: + return "\t[" + ADD_ALL_COMMAND + " " + + " " + + "[-readonly] [-faulttolerant] " + "[-order HASH|LOCAL|RANDOM|HASH_ALL|SPACE] " + + "-owner -group -mode " + + " , " + + " " + + "[-readonly] [-faulttolerant] " + "[-order HASH|LOCAL|RANDOM|HASH_ALL|SPACE] " + + "-owner -group -mode " + + " , ...]"; + case "-update": + return "\t[-update " + + " [ ] " + + "[-readonly true|false] [-faulttolerant true|false] " + + "[-order HASH|LOCAL|RANDOM|HASH_ALL|SPACE] " + + "-owner -group -mode ]"; + case "-rm": + return "\t[-rm ]"; + case "-ls": + return "\t[-ls [-d] ]"; + case "-getDestination": + return "\t[-getDestination ]"; + case "-setQuota": + return "\t[-setQuota -nsQuota -ssQuota " + + "]"; + case "-setStorageTypeQuota": + return "\t[-setStorageTypeQuota -storageType " + + "]"; + case "-clrQuota": + return "\t[-clrQuota ]"; + case "-clrStorageTypeQuota": + return "\t[-clrStorageTypeQuota ]"; + case "-safemode": + return "\t[-safemode enter | leave | get]"; + case "-nameservice": + return "\t[-nameservice enable | disable ]"; + case "-getDisabledNameservices": + return "\t[-getDisabledNameservices]"; + case "-refresh": + return "\t[-refresh]"; + case "-refreshRouterArgs": + return "\t[-refreshRouterArgs [arg1..argn]]"; + case "-refreshSuperUserGroupsConfiguration": + return "\t[-refreshSuperUserGroupsConfiguration]"; + case "-refreshCallQueue": + return "\t[-refreshCallQueue]"; + case DUMP_COMMAND: + return "\t[" + DUMP_COMMAND + "]"; } return getUsage(null); } 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 a0ccf80578ef1..007d111d8a46e 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 @@ -1925,6 +1925,42 @@ public void testAddMultipleMountPointsFailure() throws Exception { err.toString().contains("Cannot add mount points: [/testAddMultiMountPoints-01")); } + @Test + public void testGetUsage() throws Exception { + System.setOut(new PrintStream(out)); + System.setErr(new PrintStream(err)); + + assertEquals(-1, ToolRunner.run(admin, new String[]{})); + assertEquals(-1, ToolRunner.run(admin, new String[]{"-helloworld"})); + + assertEquals(-1, ToolRunner.run(admin, new String[]{"-add", "-err"})); + assertEquals(-1, ToolRunner.run(admin, new String[]{"-addAll", "-err"})); + assertEquals(-1, ToolRunner.run(admin, new String[]{"-update", "-err"})); + assertEquals(-1, ToolRunner.run(admin, new String[]{"-rm"})); + assertEquals(-1, ToolRunner.run(admin, new String[]{"-ls", "/a", "b", "/c"})); + assertEquals(-1, ToolRunner.run(admin, new String[]{"-getDestination"})); + assertEquals(-1, ToolRunner.run(admin, new String[]{"-setQuota", "-err"})); + assertEquals(-1, ToolRunner.run(admin, + new String[]{"-setStorageTypeQuota", "-err"})); + assertEquals(-1, ToolRunner.run(admin, new String[]{"-clrQuota", "-err"})); + assertEquals(-1, ToolRunner.run(admin, + new String[]{"-clrStorageTypeQuota", "-err"})); + assertEquals(-1, ToolRunner.run(admin, new String[]{"-safemode", "-err"})); + assertEquals(-1, ToolRunner.run(admin, new String[]{"-nameservice", "-err"})); + assertEquals(-1, ToolRunner.run(admin, new String[]{"-refreshRouterArgs"})); + assertEquals(-1, ToolRunner.run(admin, + new String[]{"-refreshSuperUserGroupsConfiguration", "-err"})); + assertEquals(-1, ToolRunner.run(admin, + new String[]{"-refreshCallQueue", "-err"})); + assertEquals(-1, ToolRunner.run(admin, new String[]{"-dumpState", "-err"})); + assertEquals(-1, ToolRunner.run(admin, + new String[]{"-getDisabledNameservices", "-err"})); + + assertEquals(0, ToolRunner.run(admin, new String[]{"-refresh"})); + assertEquals(0, ToolRunner.run(admin, new String[]{"-ls", "/"})); + assertEquals(0, ToolRunner.run(admin, new String[]{"-getDestination", "/"})); + } + private void addMountTable(String src, String nsId, String dst) throws Exception { String[] argv = new String[] {"-add", src, nsId, dst};