HDFS-13858. RBF: Add check to have single valid argument to safemode command. Contributed by Ayush Saxena.
(cherry picked from commit 75691ad600
)
This commit is contained in:
parent
41732e7b28
commit
9265d1a61a
|
@ -218,6 +218,10 @@ public class RouterAdmin extends Configured implements Tool {
|
||||||
"Successfully clear quota for mount point " + argv[i]);
|
"Successfully clear quota for mount point " + argv[i]);
|
||||||
}
|
}
|
||||||
} else if ("-safemode".equals(cmd)) {
|
} else if ("-safemode".equals(cmd)) {
|
||||||
|
if (argv.length > 2) {
|
||||||
|
throw new IllegalArgumentException(
|
||||||
|
"Too many arguments, Max=1 argument allowed only");
|
||||||
|
}
|
||||||
manageSafeMode(argv[i]);
|
manageSafeMode(argv[i]);
|
||||||
} else if ("-nameservice".equals(cmd)) {
|
} else if ("-nameservice".equals(cmd)) {
|
||||||
String subcmd = argv[i];
|
String subcmd = argv[i];
|
||||||
|
@ -712,6 +716,8 @@ public class RouterAdmin extends Configured implements Tool {
|
||||||
} else if (cmd.equals("get")) {
|
} else if (cmd.equals("get")) {
|
||||||
boolean result = getSafeMode();
|
boolean result = getSafeMode();
|
||||||
System.out.println("Safe Mode: " + result);
|
System.out.println("Safe Mode: " + result);
|
||||||
|
} else {
|
||||||
|
throw new IllegalArgumentException("Invalid argument: " + cmd);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -519,6 +519,7 @@ public class TestRouterAdminCLI {
|
||||||
assertTrue(routerContext.getRouter().getSafemodeService().isInSafeMode());
|
assertTrue(routerContext.getRouter().getSafemodeService().isInSafeMode());
|
||||||
|
|
||||||
System.setOut(new PrintStream(out));
|
System.setOut(new PrintStream(out));
|
||||||
|
System.setErr(new PrintStream(err));
|
||||||
assertEquals(0, ToolRunner.run(admin,
|
assertEquals(0, ToolRunner.run(admin,
|
||||||
new String[] {"-safemode", "get"}));
|
new String[] {"-safemode", "get"}));
|
||||||
assertTrue(out.toString().contains("true"));
|
assertTrue(out.toString().contains("true"));
|
||||||
|
@ -534,6 +535,19 @@ public class TestRouterAdminCLI {
|
||||||
assertEquals(0, ToolRunner.run(admin,
|
assertEquals(0, ToolRunner.run(admin,
|
||||||
new String[] {"-safemode", "get"}));
|
new String[] {"-safemode", "get"}));
|
||||||
assertTrue(out.toString().contains("false"));
|
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
|
@Test
|
||||||
|
|
Loading…
Reference in New Issue