diff --git a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/protocol/SnapshotStatus.java b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/protocol/SnapshotStatus.java index 8c0dabd34a..3e2a7ae445 100644 --- a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/protocol/SnapshotStatus.java +++ b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/protocol/SnapshotStatus.java @@ -174,60 +174,6 @@ private static int maxLength(int n, Object value) { return Math.max(n, String.valueOf(value).length()); } - /** - * To be used to for collection of snapshot jmx. - */ - public static class Bean { - private final String path; - private final int snapshotID; - private final long modificationTime; - private final short permission; - private final String owner; - private final String group; - private final boolean isDeleted; - - - public Bean(String path, int snapshotID, long - modificationTime, short permission, String owner, String group, - boolean isDeleted) { - this.path = path; - this.snapshotID = snapshotID; - this.modificationTime = modificationTime; - this.permission = permission; - this.owner = owner; - this.group = group; - this.isDeleted = isDeleted; - } - - public String getPath() { - return path; - } - - public int getSnapshotID() { - return snapshotID; - } - - public long getModificationTime() { - return modificationTime; - } - - public short getPermission() { - return permission; - } - - public String getOwner() { - return owner; - } - - public String getGroup() { - return group; - } - - public boolean isDeleted() { - return isDeleted; - } - } - static String getSnapshotPath(String snapshottableDir, String snapshotRelativePath) { String parentFullPathStr = diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocol/SnapshotInfo.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocol/SnapshotInfo.java index 676e8276f2..ef547788f1 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocol/SnapshotInfo.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocol/SnapshotInfo.java @@ -82,18 +82,20 @@ public String toString() { } public static class Bean { - private final String snapshotID; + private final int snapshotID; private final String snapshotDirectory; private final long modificationTime; + private final String status; - public Bean(String snapshotID, String snapshotDirectory, - long modificationTime) { + public Bean(int snapshotID, String snapshotDirectory, + long modificationTime, boolean isMarkedAsDeleted) { this.snapshotID = snapshotID; this.snapshotDirectory = snapshotDirectory; this.modificationTime = modificationTime; + this.status = isMarkedAsDeleted ? "DELETED" : "ACTIVE"; } - public String getSnapshotID() { + public int getSnapshotID() { return snapshotID; } @@ -104,5 +106,9 @@ public String getSnapshotDirectory() { public long getModificationTime() { return modificationTime; } + + public String getStatus() { + return status; + } } } diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/snapshot/SnapshotManager.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/snapshot/SnapshotManager.java index 7569fc64e6..3866125503 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/snapshot/SnapshotManager.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/snapshot/SnapshotManager.java @@ -746,16 +746,19 @@ public static SnapshottableDirectoryStatus.Bean toBean(INodeDirectory d) { d.getDirectorySnapshottableFeature().getNumSnapshots(), d.getDirectorySnapshottableFeature().getSnapshotQuota(), d.getModificationTime(), - Short.valueOf(Integer.toOctalString( - d.getFsPermissionShort())), + Short.parseShort(Integer.toOctalString(d.getFsPermissionShort())), d.getUserName(), d.getGroupName()); } public static SnapshotInfo.Bean toBean(Snapshot s) { + Snapshot.Root dir = s.getRoot(); return new SnapshotInfo.Bean( - s.getRoot().getLocalName(), s.getRoot().getFullPathName(), - s.getRoot().getModificationTime()); + s.getId(), + dir.getFullPathName(), + dir.getModificationTime(), + dir.isMarkedAsDeleted() + ); } private List getSnapshottableDirsForGc() { diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/hdfs/dfshealth.html b/hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/hdfs/dfshealth.html index fcf4e0d058..8b03185d3d 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/hdfs/dfshealth.html +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/hdfs/dfshealth.html @@ -287,6 +287,7 @@ Snapshot ID Snapshot Directory Modification Time + Status {#Snapshots} @@ -294,6 +295,7 @@ {snapshotID} {snapshotDirectory} {modificationTime|date_tostring} + {status} {/Snapshots}