You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mapreduce-commits@hadoop.apache.org by jl...@apache.org on 2013/06/18 22:39:57 UTC

svn commit: r1494292 - in /hadoop/common/branches/branch-2/hadoop-mapreduce-project: ./ hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/tools/ hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/test/...

Author: jlowe
Date: Tue Jun 18 20:39:56 2013
New Revision: 1494292

URL: http://svn.apache.org/r1494292
Log:
MAPREDUCE-5316. job -list-attempt-ids command does not handle illegal task-state. Contributed by Ashwin Shankar

Modified:
    hadoop/common/branches/branch-2/hadoop-mapreduce-project/CHANGES.txt
    hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/tools/CLI.java
    hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/test/java/org/apache/hadoop/mapreduce/tools/TestCLI.java

Modified: hadoop/common/branches/branch-2/hadoop-mapreduce-project/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-mapreduce-project/CHANGES.txt?rev=1494292&r1=1494291&r2=1494292&view=diff
==============================================================================
--- hadoop/common/branches/branch-2/hadoop-mapreduce-project/CHANGES.txt (original)
+++ hadoop/common/branches/branch-2/hadoop-mapreduce-project/CHANGES.txt Tue Jun 18 20:39:56 2013
@@ -12,6 +12,9 @@ Release 2.3.0 - UNRELEASED
 
   BUG FIXES
 
+    MAPREDUCE-5316. job -list-attempt-ids command does not handle illegal
+    task-state (Ashwin Shankar via jlowe)
+
 Release 2.2.0 - UNRELEASED
 
   INCOMPATIBLE CHANGES
@@ -1045,6 +1048,9 @@ Release 0.23.9 - UNRELEASED
     MAPREDUCE-4019. -list-attempt-ids is not working (Ashwin Shankar,
     Devaraj K, and B Anil Kumar via jlowe)
 
+    MAPREDUCE-5316. job -list-attempt-ids command does not handle illegal
+    task-state (Ashwin Shankar via jlowe)
+
 Release 0.23.8 - 2013-06-05
 
   INCOMPATIBLE CHANGES

Modified: hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/tools/CLI.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/tools/CLI.java?rev=1494292&r1=1494291&r2=1494292&view=diff
==============================================================================
--- hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/tools/CLI.java (original)
+++ hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/tools/CLI.java Tue Jun 18 20:39:56 2013
@@ -22,9 +22,9 @@ import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
-import java.util.HashSet;
 
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.logging.Log;
@@ -68,7 +68,9 @@ public class CLI extends Configured impl
   protected Cluster cluster;
   private static final Set<String> taskTypes = new HashSet<String>(
       Arrays.asList("MAP", "REDUCE"));
-
+  private final Set<String> taskStates = new HashSet<String>(Arrays.asList(
+      "running", "completed", "pending", "failed", "killed"));
+ 
   public CLI() {
   }
   
@@ -221,7 +223,12 @@ public class CLI extends Configured impl
       taskState = argv[3];
       displayTasks = true;
       if (!taskTypes.contains(taskType.toUpperCase())) {
-        System.out.println("Error: Invalid task-type: "+taskType);
+        System.out.println("Error: Invalid task-type: " + taskType);
+        displayUsage(cmd);
+        return exitCode;
+      }
+      if (!taskStates.contains(taskState.toLowerCase())) {
+        System.out.println("Error: Invalid task-state: " + taskState);
         displayUsage(cmd);
         return exitCode;
       }
@@ -569,11 +576,11 @@ public class CLI extends Configured impl
     TaskReport[] reports = job.getTaskReports(TaskType.valueOf(type.toUpperCase()));
     for (TaskReport report : reports) {
       TIPStatus status = report.getCurrentStatus();
-      if ((state.equals("pending") && status ==TIPStatus.PENDING) ||
-          (state.equals("running") && status ==TIPStatus.RUNNING) ||
-          (state.equals("completed") && status == TIPStatus.COMPLETE) ||
-          (state.equals("failed") && status == TIPStatus.FAILED) ||
-          (state.equals("killed") && status == TIPStatus.KILLED)) {
+      if ((state.equalsIgnoreCase("pending") && status ==TIPStatus.PENDING) ||
+          (state.equalsIgnoreCase("running") && status ==TIPStatus.RUNNING) ||
+          (state.equalsIgnoreCase("completed") && status == TIPStatus.COMPLETE) ||
+          (state.equalsIgnoreCase("failed") && status == TIPStatus.FAILED) ||
+          (state.equalsIgnoreCase("killed") && status == TIPStatus.KILLED)) {
         printTaskAttempts(report);
       }
     }

Modified: hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/test/java/org/apache/hadoop/mapreduce/tools/TestCLI.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/test/java/org/apache/hadoop/mapreduce/tools/TestCLI.java?rev=1494292&r1=1494291&r2=1494292&view=diff
==============================================================================
--- hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/test/java/org/apache/hadoop/mapreduce/tools/TestCLI.java (original)
+++ hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/test/java/org/apache/hadoop/mapreduce/tools/TestCLI.java Tue Jun 18 20:39:56 2013
@@ -58,13 +58,19 @@ public class TestCLI {
     int retCode_REDUCE = cli.run(new String[] { "-list-attempt-ids", jobIdStr,
         "REDUCE", "running" });
 
+    int retCode_completed = cli.run(new String[] { "-list-attempt-ids",
+        jobIdStr, "REDUCE", "completed" });
+
     assertEquals("MAP is a valid input,exit code should be 0", 0, retCode_MAP);
     assertEquals("map is a valid input,exit code should be 0", 0, retCode_map);
     assertEquals("REDUCE is a valid input,exit code should be 0", 0,
         retCode_REDUCE);
+    assertEquals(
+        "REDUCE and completed are a valid inputs to -list-attempt-ids,exit code should be 0",
+        0, retCode_completed);
 
     verify(job, times(2)).getTaskReports(TaskType.MAP);
-    verify(job, times(1)).getTaskReports(TaskType.REDUCE);
+    verify(job, times(2)).getTaskReports(TaskType.REDUCE);
   }
 
   @Test
@@ -79,13 +85,19 @@ public class TestCLI {
 
     int retCode_JOB_SETUP = cli.run(new String[] { "-list-attempt-ids",
         jobIdStr, "JOB_SETUP", "running" });
+
     int retCode_JOB_CLEANUP = cli.run(new String[] { "-list-attempt-ids",
         jobIdStr, "JOB_CLEANUP", "running" });
 
-    assertEquals("JOB_SETUP is a invalid input,exit code should be -1", -1,
+    int retCode_invalidTaskState = cli.run(new String[] { "-list-attempt-ids",
+        jobIdStr, "REDUCE", "complete" });
+
+    assertEquals("JOB_SETUP is an invalid input,exit code should be -1", -1,
         retCode_JOB_SETUP);
-    assertEquals("JOB_CLEANUP is a invalid input,exit code should be -1", -1,
+    assertEquals("JOB_CLEANUP is an invalid input,exit code should be -1", -1,
         retCode_JOB_CLEANUP);
+    assertEquals("complete is an invalid input,exit code should be -1", -1,
+        retCode_invalidTaskState);
 
   }