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 xg...@apache.org on 2016/12/05 18:47:32 UTC
[14/29] hadoop git commit: HADOOP-13840. Implement getUsed() for
ViewFileSystem. Contributed by Manoj Govindassamy.
HADOOP-13840. Implement getUsed() for ViewFileSystem. Contributed by Manoj Govindassamy.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/1f7613be
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/1f7613be
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/1f7613be
Branch: refs/heads/YARN-5734
Commit: 1f7613be958bbdb735fd2b49e3f0b48e2c8b7c13
Parents: 7226a71
Author: Andrew Wang <wa...@apache.org>
Authored: Wed Nov 30 17:55:12 2016 -0800
Committer: Andrew Wang <wa...@apache.org>
Committed: Wed Nov 30 17:55:12 2016 -0800
----------------------------------------------------------------------
.../apache/hadoop/fs/viewfs/ViewFileSystem.java | 18 ++++++++++++
.../fs/viewfs/ViewFileSystemBaseTest.java | 29 ++++++++++++++++++++
2 files changed, 47 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/1f7613be/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/viewfs/ViewFileSystem.java
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/viewfs/ViewFileSystem.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/viewfs/ViewFileSystem.java
index ed1bda2..8be666c 100644
--- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/viewfs/ViewFileSystem.java
+++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/viewfs/ViewFileSystem.java
@@ -859,6 +859,24 @@ public class ViewFileSystem extends FileSystem {
}
/**
+ * Return the total size of all files under "/", if {@link
+ * Constants#CONFIG_VIEWFS_LINK_MERGE_SLASH} is supported and is a valid
+ * mount point. Else, throw NotInMountpointException.
+ *
+ * @throws IOException
+ */
+ @Override
+ public long getUsed() throws IOException {
+ InodeTree.ResolveResult<FileSystem> res = fsState.resolve(
+ getUriPath(InodeTree.SlashPath), true);
+ if (res.isInternalDir()) {
+ throw new NotInMountpointException(InodeTree.SlashPath, "getUsed");
+ } else {
+ return res.targetFileSystem.getUsed();
+ }
+ }
+
+ /**
* An instance of this class represents an internal dir of the viewFs
* that is internal dir of the mount table.
* It is a read only mount tables and create, mkdir or delete operations
http://git-wip-us.apache.org/repos/asf/hadoop/blob/1f7613be/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/viewfs/ViewFileSystemBaseTest.java
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/viewfs/ViewFileSystemBaseTest.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/viewfs/ViewFileSystemBaseTest.java
index 06f9868..9a0bf02 100644
--- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/viewfs/ViewFileSystemBaseTest.java
+++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/viewfs/ViewFileSystemBaseTest.java
@@ -1108,4 +1108,33 @@ abstract public class ViewFileSystemBaseTest {
}
});
}
+
+ @Test
+ public void testUsed() throws IOException {
+ try {
+ fsView.getUsed();
+ fail("ViewFileSystem getUsed() should fail for slash root path when the" +
+ " slash root mount point is not configured.");
+ } catch (NotInMountpointException e) {
+ // expected exception.
+ }
+ long usedSpaceByPathViaViewFs = fsView.getUsed(new Path("/user"));
+ long usedSpaceByPathViaTargetFs =
+ fsTarget.getUsed(new Path(targetTestRoot, "user"));
+ assertEquals("Space used not matching between ViewFileSystem and " +
+ "the mounted FileSystem!",
+ usedSpaceByPathViaTargetFs, usedSpaceByPathViaViewFs);
+
+ Path mountDataRootPath = new Path("/data");
+ String fsTargetFileName = "debug.log";
+ Path fsTargetFilePath = new Path(targetTestRoot, "data/debug.log");
+ Path mountDataFilePath = new Path(mountDataRootPath, fsTargetFileName);
+ fileSystemTestHelper.createFile(fsTarget, fsTargetFilePath);
+
+ usedSpaceByPathViaViewFs = fsView.getUsed(mountDataFilePath);
+ usedSpaceByPathViaTargetFs = fsTarget.getUsed(fsTargetFilePath);
+ assertEquals("Space used not matching between ViewFileSystem and " +
+ "the mounted FileSystem!",
+ usedSpaceByPathViaTargetFs, usedSpaceByPathViaViewFs);
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org