You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-commits@hadoop.apache.org by sz...@apache.org on 2014/08/01 16:12:35 UTC
svn commit: r1615107 - in
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs: CHANGES.txt
src/main/java/org/apache/hadoop/hdfs/server/balancer/Balancer.java
src/test/java/org/apache/hadoop/hdfs/server/balancer/TestBalancer.java
Author: szetszwo
Date: Fri Aug 1 14:12:35 2014
New Revision: 1615107
URL: http://svn.apache.org/r1615107
Log:
HDFS-6796. Improve the argument check during balancer command line parsing. Contributed by Benoy Antony
Modified:
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/balancer/Balancer.java
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/balancer/TestBalancer.java
Modified: hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt?rev=1615107&r1=1615106&r2=1615107&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt (original)
+++ hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt Fri Aug 1 14:12:35 2014
@@ -340,6 +340,9 @@ Release 2.6.0 - UNRELEASED
HDFS-6798. Add test case for incorrect data node condition during
balancing. (Benoy Antony via Arpit Agarwal)
+ HDFS-6796. Improve the argument check during balancer command line parsing.
+ (Benoy Antony via szetszwo)
+
OPTIMIZATIONS
HDFS-6690. Deduplicate xattr names in memory. (wang)
Modified: hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/balancer/Balancer.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/balancer/Balancer.java?rev=1615107&r1=1615106&r2=1615107&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/balancer/Balancer.java (original)
+++ hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/balancer/Balancer.java Fri Aug 1 14:12:35 2014
@@ -1761,9 +1761,9 @@ public class Balancer {
if (args != null) {
try {
for(int i = 0; i < args.length; i++) {
- checkArgument(args.length >= 2, "args = " + Arrays.toString(args));
if ("-threshold".equalsIgnoreCase(args[i])) {
- i++;
+ checkArgument(++i < args.length,
+ "Threshold value is missing: args = " + Arrays.toString(args));
try {
threshold = Double.parseDouble(args[i]);
if (threshold < 1 || threshold > 100) {
@@ -1778,7 +1778,8 @@ public class Balancer {
throw e;
}
} else if ("-policy".equalsIgnoreCase(args[i])) {
- i++;
+ checkArgument(++i < args.length,
+ "Policy value is missing: args = " + Arrays.toString(args));
try {
policy = BalancingPolicy.parse(args[i]);
} catch(IllegalArgumentException e) {
@@ -1786,16 +1787,26 @@ public class Balancer {
throw e;
}
} else if ("-exclude".equalsIgnoreCase(args[i])) {
- i++;
+ checkArgument(++i < args.length,
+ "List of nodes to exclude | -f <filename> is missing: args = "
+ + Arrays.toString(args));
if ("-f".equalsIgnoreCase(args[i])) {
- nodesTobeExcluded = Util.getHostListFromFile(args[++i]);
+ checkArgument(++i < args.length,
+ "File containing nodes to exclude is not specified: args = "
+ + Arrays.toString(args));
+ nodesTobeExcluded = Util.getHostListFromFile(args[i]);
} else {
nodesTobeExcluded = Util.parseHostList(args[i]);
}
} else if ("-include".equalsIgnoreCase(args[i])) {
- i++;
+ checkArgument(++i < args.length,
+ "List of nodes to include | -f <filename> is missing: args = "
+ + Arrays.toString(args));
if ("-f".equalsIgnoreCase(args[i])) {
- nodesTobeIncluded = Util.getHostListFromFile(args[++i]);
+ checkArgument(++i < args.length,
+ "File containing nodes to include is not specified: args = "
+ + Arrays.toString(args));
+ nodesTobeIncluded = Util.getHostListFromFile(args[i]);
} else {
nodesTobeIncluded = Util.parseHostList(args[i]);
}
@@ -1804,12 +1815,8 @@ public class Balancer {
+ Arrays.toString(args));
}
}
- if (!nodesTobeExcluded.isEmpty() && !nodesTobeIncluded.isEmpty()) {
- System.err.println(
- "-exclude and -include options cannot be specified together.");
- throw new IllegalArgumentException(
- "-exclude and -include options cannot be specified together.");
- }
+ checkArgument(nodesTobeExcluded.isEmpty() || nodesTobeIncluded.isEmpty(),
+ "-exclude and -include options cannot be specified together.");
} catch(RuntimeException e) {
printUsage(System.err);
throw e;
Modified: hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/balancer/TestBalancer.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/balancer/TestBalancer.java?rev=1615107&r1=1615106&r2=1615107&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/balancer/TestBalancer.java (original)
+++ hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/balancer/TestBalancer.java Fri Aug 1 14:12:35 2014
@@ -854,13 +854,42 @@ public class TestBalancer {
} catch (IllegalArgumentException e) {
}
- parameters = new String[] { "-threshold 1 -policy" };
+ parameters = new String[] {"-threshold", "1", "-policy"};
try {
Balancer.Cli.parse(parameters);
fail(reason);
} catch (IllegalArgumentException e) {
}
+ parameters = new String[] {"-threshold", "1", "-include"};
+ try {
+ Balancer.Cli.parse(parameters);
+ fail(reason);
+ } catch (IllegalArgumentException e) {
+
+ }
+ parameters = new String[] {"-threshold", "1", "-exclude"};
+ try {
+ Balancer.Cli.parse(parameters);
+ fail(reason);
+ } catch (IllegalArgumentException e) {
+
+ }
+ parameters = new String[] {"-include", "-f"};
+ try {
+ Balancer.Cli.parse(parameters);
+ fail(reason);
+ } catch (IllegalArgumentException e) {
+
+ }
+ parameters = new String[] {"-exclude", "-f"};
+ try {
+ Balancer.Cli.parse(parameters);
+ fail(reason);
+ } catch (IllegalArgumentException e) {
+
+ }
+
parameters = new String[] {"-include", "testnode1", "-exclude", "testnode2"};
try {
Balancer.Cli.parse(parameters);