diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES-HDFS-6581.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES-HDFS-6581.txt index c7045c22304..6675775065d 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES-HDFS-6581.txt +++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES-HDFS-6581.txt @@ -62,4 +62,6 @@ HDFS-7100. Make eviction scheme pluggable. (Arpit Agarwal) + HDFS-7108. Fix unit test failures in SimulatedFsDataset. (Arpit Agarwal) + diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/SimulatedFSDataset.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/SimulatedFSDataset.java index 312da1fe64b..d1284fe03a3 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/SimulatedFSDataset.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/SimulatedFSDataset.java @@ -420,9 +420,66 @@ false, getCapacity(), getUsed(), getFree(), } } + static class SimulatedVolume implements FsVolumeSpi { + private final SimulatedStorage storage; + + SimulatedVolume(final SimulatedStorage storage) { + this.storage = storage; + } + + @Override + public String getStorageID() { + return storage.getStorageUuid(); + } + + @Override + public String[] getBlockPoolList() { + return new String[0]; + } + + @Override + public long getAvailable() throws IOException { + return storage.getCapacity() - storage.getUsed(); + } + + @Override + public String getBasePath() { + return null; + } + + @Override + public String getPath(String bpid) throws IOException { + return null; + } + + @Override + public File getFinalizedDir(String bpid) throws IOException { + return null; + } + + @Override + public StorageType getStorageType() { + return null; + } + + @Override + public boolean isTransientStorage() { + return false; + } + + @Override + public void reserveSpaceForRbw(long bytesToReserve) { + } + + @Override + public void releaseReservedSpace(long bytesToRelease) { + } + } + private final Map> blockMap = new HashMap>(); private final SimulatedStorage storage; + private final SimulatedVolume volume; private final String datanodeUuid; public SimulatedFSDataset(DataStorage storage, Configuration conf) { @@ -439,6 +496,7 @@ public SimulatedFSDataset(DataStorage storage, Configuration conf) { this.storage = new SimulatedStorage( conf.getLong(CONFIG_PROPERTY_CAPACITY, DEFAULT_CAPACITY), conf.getEnum(CONFIG_PROPERTY_STATE, DEFAULT_STATE)); + this.volume = new SimulatedVolume(this.storage); } public synchronized void injectBlocks(String bpid, @@ -1138,7 +1196,7 @@ public RollingLogs createRollingLogs(String bpid, String prefix) { @Override public FsVolumeSpi getVolume(ExtendedBlock b) { - throw new UnsupportedOperationException(); + return volume; } @Override