HDFS-13786. EC: Display erasure coding policy for sub-directories is not working. Contributed by Ayush Saxena.
(cherry picked from commit 2b0f977241
)
This commit is contained in:
parent
e05b38f132
commit
b3f29e3504
|
@ -191,6 +191,8 @@ public class ContentSummaryComputationContext {
|
||||||
.getEnabledPolicyByName(ecPolicyName)
|
.getEnabledPolicyByName(ecPolicyName)
|
||||||
.getName();
|
.getName();
|
||||||
}
|
}
|
||||||
|
} else if (inode.getParent() != null) {
|
||||||
|
return getErasureCodingPolicyName(inode.getParent());
|
||||||
}
|
}
|
||||||
} catch (IOException ioe) {
|
} catch (IOException ioe) {
|
||||||
LOG.warn("Encountered error getting ec policy for "
|
LOG.warn("Encountered error getting ec policy for "
|
||||||
|
|
|
@ -19,6 +19,7 @@ package org.apache.hadoop.hdfs;
|
||||||
|
|
||||||
import org.apache.hadoop.conf.Configuration;
|
import org.apache.hadoop.conf.Configuration;
|
||||||
import org.apache.hadoop.fs.CommonConfigurationKeys;
|
import org.apache.hadoop.fs.CommonConfigurationKeys;
|
||||||
|
import org.apache.hadoop.fs.ContentSummary;
|
||||||
import org.apache.hadoop.fs.CreateFlag;
|
import org.apache.hadoop.fs.CreateFlag;
|
||||||
import org.apache.hadoop.fs.FileSystem;
|
import org.apache.hadoop.fs.FileSystem;
|
||||||
import org.apache.hadoop.fs.Path;
|
import org.apache.hadoop.fs.Path;
|
||||||
|
@ -153,6 +154,19 @@ public class TestErasureCodingPolicies {
|
||||||
assertNotNull(files[1].getErasureCodingPolicy());
|
assertNotNull(files[1].getErasureCodingPolicy());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testContentSummaryOfECSubdir() throws IOException {
|
||||||
|
final Path testDir = new Path("/ec");
|
||||||
|
fs.mkdir(testDir, FsPermission.getDirDefault());
|
||||||
|
fs.setErasureCodingPolicy(testDir, ecPolicy.getName());
|
||||||
|
final Path fPath = new Path("ec/file");
|
||||||
|
fs.create(fPath).close();
|
||||||
|
final Path subdir = new Path("/ec/sub");
|
||||||
|
fs.mkdir(subdir, FsPermission.getDirDefault());
|
||||||
|
ContentSummary contentSummary = fs.getContentSummary(subdir);
|
||||||
|
assertEquals(ecPolicy.getName(),contentSummary.getErasureCodingPolicy());
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testBasicSetECPolicy()
|
public void testBasicSetECPolicy()
|
||||||
throws IOException, InterruptedException {
|
throws IOException, InterruptedException {
|
||||||
|
|
Loading…
Reference in New Issue