You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by ay...@apache.org on 2020/09/28 18:30:32 UTC
[hadoop] branch trunk updated: HDFS-15591. RBF: Fix webHdfs file
display error. Contributed by wangzhaohui.
This is an automated email from the ASF dual-hosted git repository.
ayushsaxena pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/hadoop.git
The following commit(s) were added to refs/heads/trunk by this push:
new fc8a6dd HDFS-15591. RBF: Fix webHdfs file display error. Contributed by wangzhaohui.
fc8a6dd is described below
commit fc8a6dd8a92f8e18436d1a73d6e8ef808c583aee
Author: Ayush Saxena <ay...@apache.org>
AuthorDate: Mon Sep 28 23:55:31 2020 +0530
HDFS-15591. RBF: Fix webHdfs file display error. Contributed by wangzhaohui.
---
.../federation/router/RouterClientProtocol.java | 7 +++--
.../federation/router/TestRouterMountTable.java | 31 ++++++++++++++++++++++
2 files changed, 36 insertions(+), 2 deletions(-)
diff --git a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterClientProtocol.java b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterClientProtocol.java
index fb3eb18..e52c0c9 100644
--- a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterClientProtocol.java
+++ b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterClientProtocol.java
@@ -1983,7 +1983,8 @@ public class RouterClientProtocol implements ClientProtocol {
* @param date Map with the dates.
* @return New HDFS file status representing a mount point.
*/
- private HdfsFileStatus getMountPointStatus(
+ @VisibleForTesting
+ HdfsFileStatus getMountPointStatus(
String name, int childrenNum, long date) {
long modTime = date;
long accessTime = date;
@@ -2034,6 +2035,8 @@ public class RouterClientProtocol implements ClientProtocol {
}
}
long inodeId = 0;
+ Path path = new Path(name);
+ String nameStr = path.getName();
return new HdfsFileStatus.Builder()
.isdir(true)
.mtime(modTime)
@@ -2042,7 +2045,7 @@ public class RouterClientProtocol implements ClientProtocol {
.owner(owner)
.group(group)
.symlink(new byte[0])
- .path(DFSUtil.string2Bytes(name))
+ .path(DFSUtil.string2Bytes(nameStr))
.fileId(inodeId)
.children(childrenNum)
.flags(flags)
diff --git a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouterMountTable.java b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouterMountTable.java
index f945ded..a346c1a 100644
--- a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouterMountTable.java
+++ b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouterMountTable.java
@@ -343,6 +343,37 @@ public class TestRouterMountTable {
}
/**
+ * Verify the getMountPointStatus result of passing in different parameters.
+ */
+ @Test
+ public void testGetMountPointStatus() throws IOException {
+ MountTable addEntry = MountTable.newInstance("/testA/testB/testC/testD",
+ Collections.singletonMap("ns0", "/testA/testB/testC/testD"));
+ assertTrue(addMountTable(addEntry));
+ RouterClientProtocol clientProtocol = new RouterClientProtocol(
+ nnFs0.getConf(), routerContext.getRouter().getRpcServer());
+ String src = "/";
+ String child = "testA";
+ Path childPath = new Path(src, child);
+ HdfsFileStatus dirStatus =
+ clientProtocol.getMountPointStatus(childPath.toString(), 0, 0);
+ assertEquals(child, dirStatus.getLocalName());
+
+ String src1 = "/testA";
+ String child1 = "testB";
+ Path childPath1 = new Path(src1, child1);
+ HdfsFileStatus dirStatus1 =
+ clientProtocol.getMountPointStatus(childPath1.toString(), 0, 0);
+ assertEquals(child1, dirStatus1.getLocalName());
+
+ String src2 = "/testA/testB";
+ String child2 = "testC";
+ Path childPath2 = new Path(src2, child2);
+ HdfsFileStatus dirStatus2 =
+ clientProtocol.getMountPointStatus(childPath2.toString(), 0, 0);
+ assertEquals(child2, dirStatus2.getLocalName());
+ }
+ /**
* GetListing of testPath through router.
*/
private void getListing(String testPath)
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org