HDFS-10172. hdfs erasurecode command should remove the redundant -usage option. 
Contributed by Yuanbo Liu.


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/307db61a
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/307db61a
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/307db61a

Branch: refs/heads/HDFS-1312
Commit: 307db61aac9f4b51301ab9d4e74be7632c42d62f
Parents: 6b1c1cb
Author: Zhe Zhang <z...@apache.org>
Authored: Tue May 10 15:20:17 2016 -0700
Committer: Zhe Zhang <z...@apache.org>
Committed: Tue May 10 15:20:17 2016 -0700

----------------------------------------------------------------------
 .../src/main/java/org/apache/hadoop/fs/FsShell.java | 15 +++++++++++----
 .../apache/hadoop/hdfs/tools/erasurecode/ECCli.java | 14 +++++++++++++-
 .../src/test/resources/testErasureCodingConf.xml    | 16 ++++++++++++++++
 3 files changed, 40 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/307db61a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FsShell.java
----------------------------------------------------------------------
diff --git 
a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FsShell.java
 
b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FsShell.java
index c0a3bea..1de9374 100644
--- 
a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FsShell.java
+++ 
b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FsShell.java
@@ -50,12 +50,12 @@ public class FsShell extends Configured implements Tool {
 
   private FileSystem fs;
   private Trash trash;
+  private Help help;
   protected CommandFactory commandFactory;
 
   private final String usagePrefix =
     "Usage: hadoop fs [generic options]";
 
-  private Tracer tracer;
   static final String SHELL_HTRACE_PREFIX = "fs.shell.htrace.";
 
   /**
@@ -89,6 +89,13 @@ public class FsShell extends Configured implements Tool {
     }
     return this.trash;
   }
+
+  protected Help getHelp() throws IOException {
+    if (this.help == null){
+      this.help = new Help();
+    }
+    return this.help;
+  }
   
   protected void init() throws IOException {
     getConf().setQuietMode(true);
@@ -98,9 +105,6 @@ public class FsShell extends Configured implements Tool {
       commandFactory.addObject(new Usage(), "-usage");
       registerCommands(commandFactory);
     }
-    this.tracer = new Tracer.Builder("FsShell").
-        conf(TraceUtils.wrapHadoopConf(SHELL_HTRACE_PREFIX, getConf())).
-        build();
   }
 
   protected void registerCommands(CommandFactory factory) {
@@ -296,6 +300,9 @@ public class FsShell extends Configured implements Tool {
   public int run(String argv[]) throws Exception {
     // initialize FsShell
     init();
+    Tracer tracer = new Tracer.Builder("FsShell").
+        conf(TraceUtils.wrapHadoopConf(SHELL_HTRACE_PREFIX, getConf())).
+        build();
     int exitCode = -1;
     if (argv.length < 1) {
       printUsage(System.err);

http://git-wip-us.apache.org/repos/asf/hadoop/blob/307db61a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/erasurecode/ECCli.java
----------------------------------------------------------------------
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/erasurecode/ECCli.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/erasurecode/ECCli.java
index c7ce714..48574d3 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/erasurecode/ECCli.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/erasurecode/ECCli.java
@@ -23,6 +23,8 @@ import org.apache.hadoop.fs.shell.CommandFactory;
 import org.apache.hadoop.hdfs.HdfsConfiguration;
 import org.apache.hadoop.util.ToolRunner;
 
+import java.io.IOException;
+
 /**
  * CLI for the erasure code encoding operations.
  */
@@ -38,6 +40,16 @@ public class ECCli extends FsShell {
   }
 
   @Override
+  protected void init() throws IOException {
+    getConf().setQuietMode(true);
+    if (commandFactory == null) {
+      commandFactory = new CommandFactory(getConf());
+      commandFactory.addObject(getHelp(), "-help");
+      registerCommands(commandFactory);
+    }
+  }
+
+  @Override
   protected void registerCommands(CommandFactory factory) {
     factory.registerCommands(ECCommand.class);
   }
@@ -47,4 +59,4 @@ public class ECCli extends FsShell {
     int res = ToolRunner.run(conf, new ECCli(), args);
     System.exit(res);
   }
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/hadoop/blob/307db61a/hadoop-hdfs-project/hadoop-hdfs/src/test/resources/testErasureCodingConf.xml
----------------------------------------------------------------------
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/resources/testErasureCodingConf.xml 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/resources/testErasureCodingConf.xml
index 1c782c3..f8ee973 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/resources/testErasureCodingConf.xml
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/resources/testErasureCodingConf.xml
@@ -31,6 +31,22 @@
            -->
   <tests>
 
+  <!-- Test usage options -->
+    <test>
+      <description>usage: help for erasure coding command</description>
+      <test-commands>
+        <ec-admin-command>-usage</ec-admin-command>
+      </test-commands>
+      <cleanup-commands>
+      </cleanup-commands>
+      <comparators>
+        <comparator>
+          <type>SubstringComparator</type>
+          <expected-output>-usage: Unknown command</expected-output>
+        </comparator>
+      </comparators>
+    </test>
+
   <!-- Test help options -->
     <test>
       <description>help: help for erasure coding command</description>


---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org
For additional commands, e-mail: common-commits-h...@hadoop.apache.org

Reply via email to