From a2c2913f5464f7f94f997160da574ff56c7ead3f Mon Sep 17 00:00:00 2001 From: Uma Maheswara Rao G Date: Sun, 20 Oct 2013 15:34:08 +0000 Subject: [PATCH] Merge HDFS-5331 make SnapshotDiff.java to a o.a.h.util.Tool interface implementation. Contributed by Vinay. git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1533918 13f79535-47bb-0310-9956-ffa450edef68 --- hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt | 3 +++ .../hdfs/tools/snapshot/SnapshotDiff.java | 23 +++++++++++++------ 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt index 9959c4b380d..6e91cb6d67a 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt +++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt @@ -136,6 +136,9 @@ Release 2.2.1 - UNRELEASED HDFS-5360. Improvement of usage message of renameSnapshot and deleteSnapshot. (Shinichi Yamashita via wang) + HDFS-5331. make SnapshotDiff.java to a o.a.h.util.Tool interface implementation. + (Vinayakumar B via umamahesh) + OPTIMIZATIONS BUG FIXES diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/snapshot/SnapshotDiff.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/snapshot/SnapshotDiff.java index c130703cf1d..21c63ba5a86 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/snapshot/SnapshotDiff.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/snapshot/SnapshotDiff.java @@ -20,12 +20,14 @@ import java.io.IOException; import org.apache.hadoop.classification.InterfaceAudience; -import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.conf.Configured; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.hdfs.DistributedFileSystem; import org.apache.hadoop.hdfs.protocol.HdfsConstants; import org.apache.hadoop.hdfs.protocol.SnapshotDiffReport; +import org.apache.hadoop.util.Tool; +import org.apache.hadoop.util.ToolRunner; /** * A tool used to get the difference report between two snapshots, or between @@ -38,7 +40,7 @@ * */ @InterfaceAudience.Private -public class SnapshotDiff { +public class SnapshotDiff extends Configured implements Tool { private static String getSnapshotName(String name) { if (Path.CUR_DIR.equals(name)) { // current directory return ""; @@ -57,7 +59,8 @@ private static String getSnapshotName(String name) { return name.substring(i + HdfsConstants.DOT_SNAPSHOT_DIR.length() + 1); } - public static void main(String[] argv) throws IOException { + @Override + public int run(String[] argv) throws Exception { String description = "SnapshotDiff :\n" + "\tGet the difference between two snapshots, \n" + "\tor between a snapshot and the current tree of a directory.\n" + @@ -67,15 +70,14 @@ public static void main(String[] argv) throws IOException { if(argv.length != 3) { System.err.println("Usage: \n" + description); - System.exit(1); + return 1; } - Configuration conf = new Configuration(); - FileSystem fs = FileSystem.get(conf); + FileSystem fs = FileSystem.get(getConf()); if (! (fs instanceof DistributedFileSystem)) { System.err.println( "SnapshotDiff can only be used in DistributedFileSystem"); - System.exit(1); + return 1; } DistributedFileSystem dfs = (DistributedFileSystem) fs; @@ -89,7 +91,14 @@ public static void main(String[] argv) throws IOException { } catch (IOException e) { String[] content = e.getLocalizedMessage().split("\n"); System.err.println("snapshotDiff: " + content[0]); + return 1; } + return 0; + } + + public static void main(String[] argv) throws Exception { + int rc = ToolRunner.run(new SnapshotDiff(), argv); + System.exit(rc); } }