|
@@ -25,41 +25,40 @@ import java.util.Arrays;
|
|
|
import java.util.EnumSet;
|
|
|
import java.util.List;
|
|
|
|
|
|
-import com.google.common.base.Preconditions;
|
|
|
import org.apache.hadoop.fs.ContentSummary;
|
|
|
import org.apache.hadoop.fs.CreateFlag;
|
|
|
import org.apache.hadoop.fs.FsServerDefaults;
|
|
|
import org.apache.hadoop.fs.Path;
|
|
|
-import org.apache.hadoop.hdfs.StorageType;
|
|
|
import org.apache.hadoop.fs.permission.FsPermission;
|
|
|
import org.apache.hadoop.ha.HAServiceProtocol.HAServiceState;
|
|
|
import org.apache.hadoop.ha.proto.HAServiceProtocolProtos;
|
|
|
import org.apache.hadoop.hdfs.DFSUtil;
|
|
|
+import org.apache.hadoop.hdfs.StorageType;
|
|
|
import org.apache.hadoop.hdfs.protocol.Block;
|
|
|
import org.apache.hadoop.hdfs.protocol.ClientProtocol;
|
|
|
import org.apache.hadoop.hdfs.protocol.CorruptFileBlocks;
|
|
|
import org.apache.hadoop.hdfs.protocol.DatanodeID;
|
|
|
import org.apache.hadoop.hdfs.protocol.DatanodeInfo;
|
|
|
-import org.apache.hadoop.hdfs.protocol.PathBasedCacheDirective;
|
|
|
-import org.apache.hadoop.hdfs.protocol.SnapshotDiffReport;
|
|
|
import org.apache.hadoop.hdfs.protocol.DatanodeInfo.AdminStates;
|
|
|
import org.apache.hadoop.hdfs.protocol.DirectoryListing;
|
|
|
import org.apache.hadoop.hdfs.protocol.ExtendedBlock;
|
|
|
import org.apache.hadoop.hdfs.protocol.HdfsConstants.DatanodeReportType;
|
|
|
import org.apache.hadoop.hdfs.protocol.HdfsConstants.SafeModeAction;
|
|
|
-import org.apache.hadoop.hdfs.protocol.SnapshotDiffReport.DiffReportEntry;
|
|
|
-import org.apache.hadoop.hdfs.protocol.SnapshotDiffReport.DiffType;
|
|
|
import org.apache.hadoop.hdfs.protocol.HdfsFileStatus;
|
|
|
import org.apache.hadoop.hdfs.protocol.HdfsLocatedFileStatus;
|
|
|
import org.apache.hadoop.hdfs.protocol.LocatedBlock;
|
|
|
import org.apache.hadoop.hdfs.protocol.LocatedBlocks;
|
|
|
+import org.apache.hadoop.hdfs.protocol.PathBasedCacheDirective;
|
|
|
+import org.apache.hadoop.hdfs.protocol.SnapshotDiffReport;
|
|
|
+import org.apache.hadoop.hdfs.protocol.SnapshotDiffReport.DiffReportEntry;
|
|
|
+import org.apache.hadoop.hdfs.protocol.SnapshotDiffReport.DiffType;
|
|
|
import org.apache.hadoop.hdfs.protocol.SnapshottableDirectoryStatus;
|
|
|
import org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos;
|
|
|
import org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos.CreateFlagProto;
|
|
|
import org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos.DatanodeReportTypeProto;
|
|
|
import org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos.GetFsStatsResponseProto;
|
|
|
-import org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos.SafeModeActionProto;
|
|
|
import org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos.PathBasedCacheDirectiveInfoProto;
|
|
|
+import org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos.SafeModeActionProto;
|
|
|
import org.apache.hadoop.hdfs.protocol.proto.DatanodeProtocolProtos.BalancerBandwidthCommandProto;
|
|
|
import org.apache.hadoop.hdfs.protocol.proto.DatanodeProtocolProtos.BlockCommandProto;
|
|
|
import org.apache.hadoop.hdfs.protocol.proto.DatanodeProtocolProtos.BlockIdCommandProto;
|
|
@@ -98,8 +97,6 @@ import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.HdfsFileStatusProto.File
|
|
|
import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.LocatedBlockProto;
|
|
|
import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.LocatedBlockProto.Builder;
|
|
|
import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.LocatedBlocksProto;
|
|
|
-import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.StorageUuidsProto;
|
|
|
-import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.StorageTypeProto;
|
|
|
import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.NamenodeCommandProto;
|
|
|
import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.NamenodeRegistrationProto;
|
|
|
import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.NamenodeRegistrationProto.NamenodeRoleProto;
|
|
@@ -113,6 +110,8 @@ import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.SnapshotDiffReportProto;
|
|
|
import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.SnapshottableDirectoryListingProto;
|
|
|
import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.SnapshottableDirectoryStatusProto;
|
|
|
import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.StorageInfoProto;
|
|
|
+import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.StorageTypeProto;
|
|
|
+import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.StorageUuidsProto;
|
|
|
import org.apache.hadoop.hdfs.protocol.proto.JournalProtocolProtos.JournalInfoProto;
|
|
|
import org.apache.hadoop.hdfs.security.token.block.BlockKey;
|
|
|
import org.apache.hadoop.hdfs.security.token.block.BlockTokenIdentifier;
|
|
@@ -288,12 +287,16 @@ public class PBHelper {
|
|
|
public static BlockWithLocationsProto convert(BlockWithLocations blk) {
|
|
|
return BlockWithLocationsProto.newBuilder()
|
|
|
.setBlock(convert(blk.getBlock()))
|
|
|
+ .addAllDatanodeUuids(Arrays.asList(blk.getDatanodeUuids()))
|
|
|
.addAllStorageUuids(Arrays.asList(blk.getStorageIDs())).build();
|
|
|
}
|
|
|
|
|
|
public static BlockWithLocations convert(BlockWithLocationsProto b) {
|
|
|
- return new BlockWithLocations(convert(b.getBlock()), b.getStorageUuidsList()
|
|
|
- .toArray(new String[0]));
|
|
|
+ final List<String> datanodeUuids = b.getDatanodeUuidsList();
|
|
|
+ final List<String> storageUuids = b.getStorageUuidsList();
|
|
|
+ return new BlockWithLocations(convert(b.getBlock()),
|
|
|
+ datanodeUuids.toArray(new String[datanodeUuids.size()]),
|
|
|
+ storageUuids.toArray(new String[storageUuids.size()]));
|
|
|
}
|
|
|
|
|
|
public static BlocksWithLocationsProto convert(BlocksWithLocations blks) {
|
|
@@ -1535,6 +1538,21 @@ public class PBHelper {
|
|
|
return builder.build();
|
|
|
}
|
|
|
|
|
|
+ public static StorageReport convert(StorageReportProto p) {
|
|
|
+ return new StorageReport(p.getStorageUuid(), p.getFailed(),
|
|
|
+ p.getCapacity(), p.getDfsUsed(), p.getRemaining(),
|
|
|
+ p.getBlockPoolUsed());
|
|
|
+ }
|
|
|
+
|
|
|
+ public static StorageReport[] convertStorageReports(
|
|
|
+ List<StorageReportProto> list) {
|
|
|
+ final StorageReport[] report = new StorageReport[list.size()];
|
|
|
+ for (int i = 0; i < report.length; i++) {
|
|
|
+ report[i] = convert(list.get(i));
|
|
|
+ }
|
|
|
+ return report;
|
|
|
+ }
|
|
|
+
|
|
|
public static JournalInfo convert(JournalInfoProto info) {
|
|
|
int lv = info.hasLayoutVersion() ? info.getLayoutVersion() : 0;
|
|
|
int nsID = info.hasNamespaceID() ? info.getNamespaceID() : 0;
|