|
@@ -420,9 +420,66 @@ public class SimulatedFSDataset implements FsDatasetSpi<FsVolumeSpi> {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ 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<String, Map<Block, BInfo>> blockMap
|
|
|
= new HashMap<String, Map<Block,BInfo>>();
|
|
|
private final SimulatedStorage storage;
|
|
|
+ private final SimulatedVolume volume;
|
|
|
private final String datanodeUuid;
|
|
|
|
|
|
public SimulatedFSDataset(DataStorage storage, Configuration conf) {
|
|
@@ -439,6 +496,7 @@ public class SimulatedFSDataset implements FsDatasetSpi<FsVolumeSpi> {
|
|
|
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 class SimulatedFSDataset implements FsDatasetSpi<FsVolumeSpi> {
|
|
|
|
|
|
@Override
|
|
|
public FsVolumeSpi getVolume(ExtendedBlock b) {
|
|
|
- throw new UnsupportedOperationException();
|
|
|
+ return volume;
|
|
|
}
|
|
|
|
|
|
@Override
|