diff --git a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/store/impl/MountTableStoreImpl.java b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/store/impl/MountTableStoreImpl.java index 680752b8efe32..a9b0174e6a803 100644 --- a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/store/impl/MountTableStoreImpl.java +++ b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/store/impl/MountTableStoreImpl.java @@ -117,7 +117,9 @@ public AddMountTableEntryResponse addMountTableEntry( AddMountTableEntryResponse response = AddMountTableEntryResponse.newInstance(); response.setStatus(status); - updateCacheAllRouters(); + if (status) { + updateCacheAllRouters(); + } return response; } else { AddMountTableEntryResponse response = @@ -139,7 +141,9 @@ public UpdateMountTableEntryResponse updateMountTableEntry( UpdateMountTableEntryResponse response = UpdateMountTableEntryResponse.newInstance(); response.setStatus(status); - updateCacheAllRouters(); + if (status) { + updateCacheAllRouters(); + } return response; } else { UpdateMountTableEntryResponse response = @@ -170,7 +174,9 @@ public RemoveMountTableEntryResponse removeMountTableEntry( RemoveMountTableEntryResponse response = RemoveMountTableEntryResponse.newInstance(); response.setStatus(status); - updateCacheAllRouters(); + if (status) { + updateCacheAllRouters(); + } return response; } 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..75c79dd2c2ec0 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 @@ -167,8 +167,9 @@ public void testAddMountTable() throws Exception { assertEquals(0, ToolRunner.run(admin, argv)); assertEquals(-1, ToolRunner.run(admin, argv)); - stateStore.loadCache(MountTableStoreImpl.class, true); + verifyMountTableContents(src, dest); + GetMountTableEntriesRequest getRequest = GetMountTableEntriesRequest .newInstance(src); GetMountTableEntriesResponse getResponse = client.getMountTableManager() @@ -207,6 +208,15 @@ public void testAddMountTable() throws Exception { assertTrue(mountTable.isFaultTolerant()); } + private void verifyMountTableContents(String src, String dest) throws Exception { + String[] argv = new String[] {"-ls", "/"}; + System.setOut(new PrintStream(out)); + assertEquals(0, ToolRunner.run(admin, argv)); + String response = out.toString(); + assertTrue("The response should have " + src + ": " + response, response.contains(src)); + assertTrue("The response should have " + dest + ": " + response, response.contains(dest)); + } + @Test public void testAddMountTableNotNormalized() throws Exception { String nsId = "ns0";