[ 
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

Reply via email to