[ https://issues.apache.org/jira/browse/HDFS-17115?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17746018#comment-17746018 ]
ASF GitHub Bot commented on HDFS-17115: --------------------------------------- slfan1989 commented on code in PR #5875: URL: https://github.com/apache/hadoop/pull/5875#discussion_r1271380063 ########## hadoop-hdfs-project/hadoop-hdfs-httpfs/src/test/java/org/apache/hadoop/fs/http/client/BaseTestHttpFSWith.java: ########## @@ -2149,6 +2152,44 @@ private void testGetAllEEPolicies() throws Exception { } } + private void testGetECCodecs() throws Exception { + if (isLocalFS()) { + // do not test the testGetECCodecs for local FS. + return; + } + final Path path = new Path("/foo"); + FileSystem fs = FileSystem.get(path.toUri(), this.getProxiedFSConf()); + if (fs instanceof DistributedFileSystem) { + DistributedFileSystem dfs = + (DistributedFileSystem) FileSystem.get(path.toUri(), this.getProxiedFSConf()); + FileSystem httpFs = this.getHttpFSFileSystem(); + + Map<String, String> dfsAllErasureCodingCodecs = dfs.getAllErasureCodingCodecs(); + Map<String, String> diffErasureCodingCodecs = null; + + if (httpFs instanceof HttpFSFileSystem) { + HttpFSFileSystem httpFS = (HttpFSFileSystem) httpFs; + diffErasureCodingCodecs = httpFS.getAllErasureCodingCodecs(); + } else if (httpFs instanceof WebHdfsFileSystem) { + WebHdfsFileSystem webHdfsFileSystem = (WebHdfsFileSystem) httpFs; + diffErasureCodingCodecs = webHdfsFileSystem.getAllErasureCodingCodecs(); + } else { + Assert.fail(fs.getClass().getSimpleName() + + " is not of type HttpFSFileSystem or WebHdfsFileSystem"); + } + + //Validate testGetECCodecs are the same as DistributedFileSystem + Assert.assertEquals(dfsAllErasureCodingCodecs.size(), diffErasureCodingCodecs.size()); + + for (Map.Entry<String, String> entry : dfsAllErasureCodingCodecs.entrySet()) { + Assert.assertTrue(diffErasureCodingCodecs.containsKey(entry.getKey())); + Assert.assertEquals(entry.getValue(), diffErasureCodingCodecs.get(entry.getKey())); Review Comment: extend? ########## hadoop-hdfs-project/hadoop-hdfs-httpfs/src/test/java/org/apache/hadoop/fs/http/client/BaseTestHttpFSWith.java: ########## @@ -2149,6 +2152,44 @@ private void testGetAllEEPolicies() throws Exception { } } + private void testGetECCodecs() throws Exception { + if (isLocalFS()) { + // do not test the testGetECCodecs for local FS. + return; + } + final Path path = new Path("/foo"); + FileSystem fs = FileSystem.get(path.toUri(), this.getProxiedFSConf()); + if (fs instanceof DistributedFileSystem) { + DistributedFileSystem dfs = + (DistributedFileSystem) FileSystem.get(path.toUri(), this.getProxiedFSConf()); + FileSystem httpFs = this.getHttpFSFileSystem(); + + Map<String, String> dfsAllErasureCodingCodecs = dfs.getAllErasureCodingCodecs(); + Map<String, String> diffErasureCodingCodecs = null; + + if (httpFs instanceof HttpFSFileSystem) { + HttpFSFileSystem httpFS = (HttpFSFileSystem) httpFs; + diffErasureCodingCodecs = httpFS.getAllErasureCodingCodecs(); + } else if (httpFs instanceof WebHdfsFileSystem) { + WebHdfsFileSystem webHdfsFileSystem = (WebHdfsFileSystem) httpFs; + diffErasureCodingCodecs = webHdfsFileSystem.getAllErasureCodingCodecs(); + } else { + Assert.fail(fs.getClass().getSimpleName() + + " is not of type HttpFSFileSystem or WebHdfsFileSystem"); + } + + //Validate testGetECCodecs are the same as DistributedFileSystem + Assert.assertEquals(dfsAllErasureCodingCodecs.size(), diffErasureCodingCodecs.size()); + + for (Map.Entry<String, String> entry : dfsAllErasureCodingCodecs.entrySet()) { + Assert.assertTrue(diffErasureCodingCodecs.containsKey(entry.getKey())); + Assert.assertEquals(entry.getValue(), diffErasureCodingCodecs.get(entry.getKey())); + } + } else { + Assert.fail(fs.getClass().getSimpleName() + " is not of type DistributedFileSystem."); Review Comment: use LambdaTestUtils.intercept > HttpFS Add Support getErasureCodeCodecs API > ------------------------------------------- > > Key: HDFS-17115 > URL: https://issues.apache.org/jira/browse/HDFS-17115 > Project: Hadoop HDFS > Issue Type: Improvement > Components: httpfs > Affects Versions: 3.4.0 > Reporter: Hualong Zhang > Assignee: Hualong Zhang > Priority: Major > Labels: pull-request-available > > We should ensure that *WebHDFS* remains synchronized with {*}HttpFS{*}, as > the former has already implemented the *getErasureCodeCodecs* interface. -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org