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 3ecb4c2caba70..a549beca8cd43 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 @@ -369,6 +369,8 @@ public int run(String[] argv) throws Exception { try { if (removeMount(argv[i])) { System.out.println("Successfully removed mount point " + argv[i]); + } else { + exitCode = -1; } } catch (IOException e) { exitCode = -1; @@ -812,7 +814,7 @@ public boolean removeMount(String path) throws IOException { mountTable.removeMountTableEntry(request); boolean removed = response.getStatus(); if (!removed) { - System.out.println("Cannot remove mount point " + path); + System.err.println("Cannot remove mount point " + path); } return removed; } 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 761fad2fb7ae4..909367caf5767 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 @@ -433,10 +433,11 @@ public void testRemoveMountTable() throws Exception { // remove an invalid mount table String invalidPath = "/invalid"; System.setOut(new PrintStream(out)); + System.setErr(new PrintStream(err)); argv = new String[] {"-rm", invalidPath}; - assertEquals(0, ToolRunner.run(admin, argv)); - assertTrue(out.toString().contains( - "Cannot remove mount point " + invalidPath)); + assertEquals(-1, ToolRunner.run(admin, argv)); + assertEquals("DFS Router Admin should report error for failure to remove mount point", + "Cannot remove mount point " + invalidPath + "\n", err.toString()); } @Test @@ -726,8 +727,11 @@ public void testMountTablePermissions() throws Exception { // add new mount table with only write permission argv = new String[] {"-add", "/testpath2-2", "ns0", "/testdir2-2", "-owner", TEST_USER, "-group", TEST_USER, "-mode", "0255"}; + System.setErr(new PrintStream(err)); assertEquals(0, ToolRunner.run(admin, argv)); verifyExecutionResult("/testpath2-2", false, -1, 0); + assertEquals("DFS Router Admin should report error for failure to add mount point", + "Cannot add mount point /testpath2-2\n", err.toString()); // set mount table entry with read and write permission argv = new String[] {"-add", "/testpath2-3", "ns0", "/testdir2-3",