[26/50] [abbrv] hadoop git commit: YARN-1126. Add validation of users input nodes-states options to nodes CLI. Contributed by Wei Yan.

2016-07-25 Thread vvasudev
YARN-1126. Add validation of users input nodes-states options to nodes CLI. 
Contributed by Wei Yan.


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

Branch: refs/heads/YARN-3926
Commit: be34b2a8fd30a1a0e803ac8b2198c695600a9e46
Parents: 521f343
Author: Rohith Sharma K S 
Authored: Thu Jul 21 12:20:47 2016 +0530
Committer: Rohith Sharma K S 
Committed: Thu Jul 21 12:20:47 2016 +0530

--
 .../apache/hadoop/yarn/client/cli/NodeCLI.java  | 32 ++--
 .../hadoop/yarn/client/cli/TestYarnCLI.java | 31 +++
 2 files changed, 48 insertions(+), 15 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hadoop/blob/be34b2a8/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/NodeCLI.java
--
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/NodeCLI.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/NodeCLI.java
index f51fee9..288a5d2 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/NodeCLI.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/NodeCLI.java
@@ -76,7 +76,8 @@ public class NodeCLI extends YarnCLI {
 "based on node state, all -all to list all nodes, " +
 "-showDetails to display more details about each node.");
 Option nodeStateOpt = new Option(NODE_STATE_CMD, true,
-"Works with -list to filter nodes based on input comma-separated list 
of node states.");
+"Works with -list to filter nodes based on input comma-separated " +
+"list of node states. " + getAllValidNodeStates());
 nodeStateOpt.setValueSeparator(',');
 nodeStateOpt.setArgs(Option.UNLIMITED_VALUES);
 nodeStateOpt.setArgName("States");
@@ -89,6 +90,14 @@ public class NodeCLI extends YarnCLI {
 opts.addOption(showDetailsOpt);
 opts.getOption(STATUS_CMD).setArgName("NodeId");
 
+if (args != null && args.length > 0) {
+  for (int i = args.length - 1; i >= 0; i--) {
+if (args[i].equalsIgnoreCase("-" + NODE_ALL)) {
+  args[i] = "-" + NODE_ALL;
+}
+  }
+}
+
 int exitCode = -1;
 CommandLine cliParser = null;
 try {
@@ -116,8 +125,15 @@ public class NodeCLI extends YarnCLI {
 if (types != null) {
   for (String type : types) {
 if (!type.trim().isEmpty()) {
-  nodeStates.add(NodeState.valueOf(
-  
org.apache.hadoop.util.StringUtils.toUpperCase(type.trim(;
+  try {
+nodeStates.add(NodeState.valueOf(
+org.apache.hadoop.util.StringUtils.toUpperCase(
+type.trim(;
+  } catch (IllegalArgumentException ex) {
+sysout.println("The node state " + type + " is invalid.");
+sysout.println(getAllValidNodeStates());
+return exitCode;
+  }
 }
   }
 }
@@ -320,4 +336,14 @@ public class NodeCLI extends YarnCLI {
 nodeReportStr.close();
 sysout.println(baos.toString("UTF-8"));
   }
+
+  private String getAllValidNodeStates() {
+StringBuilder sb = new StringBuilder();
+sb.append("The valid node state can be one of the following: ");
+for (NodeState state : NodeState.values()) {
+  sb.append(state).append(",");
+}
+String output = sb.toString();
+return output.substring(0, output.length() - 1) + ".";
+  }
 }

http://git-wip-us.apache.org/repos/asf/hadoop/blob/be34b2a8/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestYarnCLI.java
--
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestYarnCLI.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestYarnCLI.java
index 5bef691..6d7aaa7 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestYarnCLI.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestYarnCLI.java
@@ -1070,7 +1070,7 @@ public class TestYarnCLI {
 NodeState[] states = nodeStates.toArray(new NodeState[0]);
 

[32/50] [abbrv] hadoop git commit: YARN-1126. Add validation of users input nodes-states options to nodes CLI. Contributed by Wei Yan.

2016-07-25 Thread vvasudev
YARN-1126. Add validation of users input nodes-states options to nodes CLI. 
Contributed by Wei Yan.


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

Branch: refs/heads/YARN-4757
Commit: be34b2a8fd30a1a0e803ac8b2198c695600a9e46
Parents: 521f343
Author: Rohith Sharma K S 
Authored: Thu Jul 21 12:20:47 2016 +0530
Committer: Rohith Sharma K S 
Committed: Thu Jul 21 12:20:47 2016 +0530

--
 .../apache/hadoop/yarn/client/cli/NodeCLI.java  | 32 ++--
 .../hadoop/yarn/client/cli/TestYarnCLI.java | 31 +++
 2 files changed, 48 insertions(+), 15 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hadoop/blob/be34b2a8/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/NodeCLI.java
--
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/NodeCLI.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/NodeCLI.java
index f51fee9..288a5d2 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/NodeCLI.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/NodeCLI.java
@@ -76,7 +76,8 @@ public class NodeCLI extends YarnCLI {
 "based on node state, all -all to list all nodes, " +
 "-showDetails to display more details about each node.");
 Option nodeStateOpt = new Option(NODE_STATE_CMD, true,
-"Works with -list to filter nodes based on input comma-separated list 
of node states.");
+"Works with -list to filter nodes based on input comma-separated " +
+"list of node states. " + getAllValidNodeStates());
 nodeStateOpt.setValueSeparator(',');
 nodeStateOpt.setArgs(Option.UNLIMITED_VALUES);
 nodeStateOpt.setArgName("States");
@@ -89,6 +90,14 @@ public class NodeCLI extends YarnCLI {
 opts.addOption(showDetailsOpt);
 opts.getOption(STATUS_CMD).setArgName("NodeId");
 
+if (args != null && args.length > 0) {
+  for (int i = args.length - 1; i >= 0; i--) {
+if (args[i].equalsIgnoreCase("-" + NODE_ALL)) {
+  args[i] = "-" + NODE_ALL;
+}
+  }
+}
+
 int exitCode = -1;
 CommandLine cliParser = null;
 try {
@@ -116,8 +125,15 @@ public class NodeCLI extends YarnCLI {
 if (types != null) {
   for (String type : types) {
 if (!type.trim().isEmpty()) {
-  nodeStates.add(NodeState.valueOf(
-  
org.apache.hadoop.util.StringUtils.toUpperCase(type.trim(;
+  try {
+nodeStates.add(NodeState.valueOf(
+org.apache.hadoop.util.StringUtils.toUpperCase(
+type.trim(;
+  } catch (IllegalArgumentException ex) {
+sysout.println("The node state " + type + " is invalid.");
+sysout.println(getAllValidNodeStates());
+return exitCode;
+  }
 }
   }
 }
@@ -320,4 +336,14 @@ public class NodeCLI extends YarnCLI {
 nodeReportStr.close();
 sysout.println(baos.toString("UTF-8"));
   }
+
+  private String getAllValidNodeStates() {
+StringBuilder sb = new StringBuilder();
+sb.append("The valid node state can be one of the following: ");
+for (NodeState state : NodeState.values()) {
+  sb.append(state).append(",");
+}
+String output = sb.toString();
+return output.substring(0, output.length() - 1) + ".";
+  }
 }

http://git-wip-us.apache.org/repos/asf/hadoop/blob/be34b2a8/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestYarnCLI.java
--
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestYarnCLI.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestYarnCLI.java
index 5bef691..6d7aaa7 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestYarnCLI.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestYarnCLI.java
@@ -1070,7 +1070,7 @@ public class TestYarnCLI {
 NodeState[] states = nodeStates.toArray(new NodeState[0]);
 

hadoop git commit: YARN-1126. Add validation of users input nodes-states options to nodes CLI. Contributed by Wei Yan.

2016-07-21 Thread rohithsharmaks
Repository: hadoop
Updated Branches:
  refs/heads/branch-2.8 66f305609 -> cdcd131d5


YARN-1126. Add validation of users input nodes-states options to nodes CLI. 
Contributed by Wei Yan.

(cherry picked from commit be34b2a8fd30a1a0e803ac8b2198c695600a9e46)


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

Branch: refs/heads/branch-2.8
Commit: cdcd131d5fa8c209d200124f92f0a46b07489504
Parents: 66f3056
Author: Rohith Sharma K S 
Authored: Thu Jul 21 12:20:47 2016 +0530
Committer: Rohith Sharma K S 
Committed: Thu Jul 21 12:25:14 2016 +0530

--
 .../apache/hadoop/yarn/client/cli/NodeCLI.java  | 32 ++--
 .../hadoop/yarn/client/cli/TestYarnCLI.java | 31 +++
 2 files changed, 48 insertions(+), 15 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hadoop/blob/cdcd131d/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/NodeCLI.java
--
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/NodeCLI.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/NodeCLI.java
index f51fee9..288a5d2 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/NodeCLI.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/NodeCLI.java
@@ -76,7 +76,8 @@ public class NodeCLI extends YarnCLI {
 "based on node state, all -all to list all nodes, " +
 "-showDetails to display more details about each node.");
 Option nodeStateOpt = new Option(NODE_STATE_CMD, true,
-"Works with -list to filter nodes based on input comma-separated list 
of node states.");
+"Works with -list to filter nodes based on input comma-separated " +
+"list of node states. " + getAllValidNodeStates());
 nodeStateOpt.setValueSeparator(',');
 nodeStateOpt.setArgs(Option.UNLIMITED_VALUES);
 nodeStateOpt.setArgName("States");
@@ -89,6 +90,14 @@ public class NodeCLI extends YarnCLI {
 opts.addOption(showDetailsOpt);
 opts.getOption(STATUS_CMD).setArgName("NodeId");
 
+if (args != null && args.length > 0) {
+  for (int i = args.length - 1; i >= 0; i--) {
+if (args[i].equalsIgnoreCase("-" + NODE_ALL)) {
+  args[i] = "-" + NODE_ALL;
+}
+  }
+}
+
 int exitCode = -1;
 CommandLine cliParser = null;
 try {
@@ -116,8 +125,15 @@ public class NodeCLI extends YarnCLI {
 if (types != null) {
   for (String type : types) {
 if (!type.trim().isEmpty()) {
-  nodeStates.add(NodeState.valueOf(
-  
org.apache.hadoop.util.StringUtils.toUpperCase(type.trim(;
+  try {
+nodeStates.add(NodeState.valueOf(
+org.apache.hadoop.util.StringUtils.toUpperCase(
+type.trim(;
+  } catch (IllegalArgumentException ex) {
+sysout.println("The node state " + type + " is invalid.");
+sysout.println(getAllValidNodeStates());
+return exitCode;
+  }
 }
   }
 }
@@ -320,4 +336,14 @@ public class NodeCLI extends YarnCLI {
 nodeReportStr.close();
 sysout.println(baos.toString("UTF-8"));
   }
+
+  private String getAllValidNodeStates() {
+StringBuilder sb = new StringBuilder();
+sb.append("The valid node state can be one of the following: ");
+for (NodeState state : NodeState.values()) {
+  sb.append(state).append(",");
+}
+String output = sb.toString();
+return output.substring(0, output.length() - 1) + ".";
+  }
 }

http://git-wip-us.apache.org/repos/asf/hadoop/blob/cdcd131d/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestYarnCLI.java
--
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestYarnCLI.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestYarnCLI.java
index 3783aac..380f3db 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestYarnCLI.java
+++ 

hadoop git commit: YARN-1126. Add validation of users input nodes-states options to nodes CLI. Contributed by Wei Yan.

2016-07-21 Thread rohithsharmaks
Repository: hadoop
Updated Branches:
  refs/heads/branch-2 2bf5c4eb1 -> d9ed29e8c


YARN-1126. Add validation of users input nodes-states options to nodes CLI. 
Contributed by Wei Yan.

(cherry picked from commit be34b2a8fd30a1a0e803ac8b2198c695600a9e46)


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

Branch: refs/heads/branch-2
Commit: d9ed29e8c600de1f6fb74634918ce7d949ea5e11
Parents: 2bf5c4e
Author: Rohith Sharma K S 
Authored: Thu Jul 21 12:20:47 2016 +0530
Committer: Rohith Sharma K S 
Committed: Thu Jul 21 12:22:34 2016 +0530

--
 .../apache/hadoop/yarn/client/cli/NodeCLI.java  | 32 ++--
 .../hadoop/yarn/client/cli/TestYarnCLI.java | 31 +++
 2 files changed, 48 insertions(+), 15 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hadoop/blob/d9ed29e8/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/NodeCLI.java
--
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/NodeCLI.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/NodeCLI.java
index f51fee9..288a5d2 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/NodeCLI.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/NodeCLI.java
@@ -76,7 +76,8 @@ public class NodeCLI extends YarnCLI {
 "based on node state, all -all to list all nodes, " +
 "-showDetails to display more details about each node.");
 Option nodeStateOpt = new Option(NODE_STATE_CMD, true,
-"Works with -list to filter nodes based on input comma-separated list 
of node states.");
+"Works with -list to filter nodes based on input comma-separated " +
+"list of node states. " + getAllValidNodeStates());
 nodeStateOpt.setValueSeparator(',');
 nodeStateOpt.setArgs(Option.UNLIMITED_VALUES);
 nodeStateOpt.setArgName("States");
@@ -89,6 +90,14 @@ public class NodeCLI extends YarnCLI {
 opts.addOption(showDetailsOpt);
 opts.getOption(STATUS_CMD).setArgName("NodeId");
 
+if (args != null && args.length > 0) {
+  for (int i = args.length - 1; i >= 0; i--) {
+if (args[i].equalsIgnoreCase("-" + NODE_ALL)) {
+  args[i] = "-" + NODE_ALL;
+}
+  }
+}
+
 int exitCode = -1;
 CommandLine cliParser = null;
 try {
@@ -116,8 +125,15 @@ public class NodeCLI extends YarnCLI {
 if (types != null) {
   for (String type : types) {
 if (!type.trim().isEmpty()) {
-  nodeStates.add(NodeState.valueOf(
-  
org.apache.hadoop.util.StringUtils.toUpperCase(type.trim(;
+  try {
+nodeStates.add(NodeState.valueOf(
+org.apache.hadoop.util.StringUtils.toUpperCase(
+type.trim(;
+  } catch (IllegalArgumentException ex) {
+sysout.println("The node state " + type + " is invalid.");
+sysout.println(getAllValidNodeStates());
+return exitCode;
+  }
 }
   }
 }
@@ -320,4 +336,14 @@ public class NodeCLI extends YarnCLI {
 nodeReportStr.close();
 sysout.println(baos.toString("UTF-8"));
   }
+
+  private String getAllValidNodeStates() {
+StringBuilder sb = new StringBuilder();
+sb.append("The valid node state can be one of the following: ");
+for (NodeState state : NodeState.values()) {
+  sb.append(state).append(",");
+}
+String output = sb.toString();
+return output.substring(0, output.length() - 1) + ".";
+  }
 }

http://git-wip-us.apache.org/repos/asf/hadoop/blob/d9ed29e8/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestYarnCLI.java
--
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestYarnCLI.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestYarnCLI.java
index 5bef691..6d7aaa7 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestYarnCLI.java
+++ 

hadoop git commit: YARN-1126. Add validation of users input nodes-states options to nodes CLI. Contributed by Wei Yan.

2016-07-21 Thread rohithsharmaks
Repository: hadoop
Updated Branches:
  refs/heads/trunk 521f34317 -> be34b2a8f


YARN-1126. Add validation of users input nodes-states options to nodes CLI. 
Contributed by Wei Yan.


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

Branch: refs/heads/trunk
Commit: be34b2a8fd30a1a0e803ac8b2198c695600a9e46
Parents: 521f343
Author: Rohith Sharma K S 
Authored: Thu Jul 21 12:20:47 2016 +0530
Committer: Rohith Sharma K S 
Committed: Thu Jul 21 12:20:47 2016 +0530

--
 .../apache/hadoop/yarn/client/cli/NodeCLI.java  | 32 ++--
 .../hadoop/yarn/client/cli/TestYarnCLI.java | 31 +++
 2 files changed, 48 insertions(+), 15 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hadoop/blob/be34b2a8/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/NodeCLI.java
--
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/NodeCLI.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/NodeCLI.java
index f51fee9..288a5d2 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/NodeCLI.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/NodeCLI.java
@@ -76,7 +76,8 @@ public class NodeCLI extends YarnCLI {
 "based on node state, all -all to list all nodes, " +
 "-showDetails to display more details about each node.");
 Option nodeStateOpt = new Option(NODE_STATE_CMD, true,
-"Works with -list to filter nodes based on input comma-separated list 
of node states.");
+"Works with -list to filter nodes based on input comma-separated " +
+"list of node states. " + getAllValidNodeStates());
 nodeStateOpt.setValueSeparator(',');
 nodeStateOpt.setArgs(Option.UNLIMITED_VALUES);
 nodeStateOpt.setArgName("States");
@@ -89,6 +90,14 @@ public class NodeCLI extends YarnCLI {
 opts.addOption(showDetailsOpt);
 opts.getOption(STATUS_CMD).setArgName("NodeId");
 
+if (args != null && args.length > 0) {
+  for (int i = args.length - 1; i >= 0; i--) {
+if (args[i].equalsIgnoreCase("-" + NODE_ALL)) {
+  args[i] = "-" + NODE_ALL;
+}
+  }
+}
+
 int exitCode = -1;
 CommandLine cliParser = null;
 try {
@@ -116,8 +125,15 @@ public class NodeCLI extends YarnCLI {
 if (types != null) {
   for (String type : types) {
 if (!type.trim().isEmpty()) {
-  nodeStates.add(NodeState.valueOf(
-  
org.apache.hadoop.util.StringUtils.toUpperCase(type.trim(;
+  try {
+nodeStates.add(NodeState.valueOf(
+org.apache.hadoop.util.StringUtils.toUpperCase(
+type.trim(;
+  } catch (IllegalArgumentException ex) {
+sysout.println("The node state " + type + " is invalid.");
+sysout.println(getAllValidNodeStates());
+return exitCode;
+  }
 }
   }
 }
@@ -320,4 +336,14 @@ public class NodeCLI extends YarnCLI {
 nodeReportStr.close();
 sysout.println(baos.toString("UTF-8"));
   }
+
+  private String getAllValidNodeStates() {
+StringBuilder sb = new StringBuilder();
+sb.append("The valid node state can be one of the following: ");
+for (NodeState state : NodeState.values()) {
+  sb.append(state).append(",");
+}
+String output = sb.toString();
+return output.substring(0, output.length() - 1) + ".";
+  }
 }

http://git-wip-us.apache.org/repos/asf/hadoop/blob/be34b2a8/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestYarnCLI.java
--
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestYarnCLI.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestYarnCLI.java
index 5bef691..6d7aaa7 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestYarnCLI.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestYarnCLI.java
@@ -1070,7 +1070,7 @@ public class TestYarnCLI {
 NodeState[]