|
@@ -20,11 +20,13 @@ package org.apache.hadoop.hdfs.web;
|
|
|
import com.google.common.collect.Lists;
|
|
|
import com.google.common.collect.Maps;
|
|
|
import org.apache.hadoop.fs.ContentSummary;
|
|
|
+import org.apache.hadoop.fs.ContentSummary.Builder;
|
|
|
import org.apache.hadoop.fs.FileChecksum;
|
|
|
import org.apache.hadoop.fs.FileStatus;
|
|
|
import org.apache.hadoop.fs.MD5MD5CRC32CastagnoliFileChecksum;
|
|
|
import org.apache.hadoop.fs.MD5MD5CRC32FileChecksum;
|
|
|
import org.apache.hadoop.fs.MD5MD5CRC32GzipFileChecksum;
|
|
|
+import org.apache.hadoop.fs.StorageType;
|
|
|
import org.apache.hadoop.fs.XAttrCodec;
|
|
|
import org.apache.hadoop.fs.permission.AclEntry;
|
|
|
import org.apache.hadoop.fs.permission.AclStatus;
|
|
@@ -316,14 +318,22 @@ class JsonUtilClient {
|
|
|
final long quota = ((Number) m.get("quota")).longValue();
|
|
|
final long spaceConsumed = ((Number) m.get("spaceConsumed")).longValue();
|
|
|
final long spaceQuota = ((Number) m.get("spaceQuota")).longValue();
|
|
|
-
|
|
|
- return new ContentSummary.Builder()
|
|
|
- .length(length)
|
|
|
- .fileCount(fileCount)
|
|
|
- .directoryCount(directoryCount)
|
|
|
- .quota(quota)
|
|
|
- .spaceConsumed(spaceConsumed)
|
|
|
- .spaceQuota(spaceQuota).build();
|
|
|
+ final Map<?, ?> typem = (Map<?, ?>) m.get("typeQuota");
|
|
|
+
|
|
|
+ Builder contentSummaryBuilder = new ContentSummary.Builder().length(length)
|
|
|
+ .fileCount(fileCount).directoryCount(directoryCount).quota(quota)
|
|
|
+ .spaceConsumed(spaceConsumed).spaceQuota(spaceQuota);
|
|
|
+ if (typem != null) {
|
|
|
+ for (StorageType t : StorageType.getTypesSupportingQuota()) {
|
|
|
+ Map<?, ?> type = (Map<?, ?>) typem.get(t.toString());
|
|
|
+ if (type != null) {
|
|
|
+ contentSummaryBuilder = contentSummaryBuilder.typeQuota(t,
|
|
|
+ ((Number) type.get("quota")).longValue()).typeConsumed(t,
|
|
|
+ ((Number) type.get("consumed")).longValue());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return contentSummaryBuilder.build();
|
|
|
}
|
|
|
|
|
|
/** Convert a Json map to a MD5MD5CRC32FileChecksum. */
|