Author: rohini
Date: Mon Aug  5 20:46:15 2013
New Revision: 1510722

URL: http://svn.apache.org/r1510722
Log:
OOZIE-1481 Getting a coordinator job info with len=0 should return 0 actions 
(rohini)

Modified:
    
oozie/branches/branch-4.0/client/src/main/java/org/apache/oozie/cli/OozieCLI.java
    
oozie/branches/branch-4.0/client/src/main/java/org/apache/oozie/client/OozieClient.java
    
oozie/branches/branch-4.0/core/src/main/java/org/apache/oozie/servlet/V1JobServlet.java
    
oozie/branches/branch-4.0/core/src/test/java/org/apache/oozie/TestCoordinatorEngine.java
    
oozie/branches/branch-4.0/core/src/test/java/org/apache/oozie/client/TestOozieCLI.java
    
oozie/branches/branch-4.0/core/src/test/java/org/apache/oozie/client/TestWorkflowClient.java
    
oozie/branches/branch-4.0/core/src/test/java/org/apache/oozie/servlet/MockCoordinatorEngineService.java
    
oozie/branches/branch-4.0/core/src/test/java/org/apache/oozie/servlet/TestV1JobServlet.java
    oozie/branches/branch-4.0/release-log.txt

Modified: 
oozie/branches/branch-4.0/client/src/main/java/org/apache/oozie/cli/OozieCLI.java
URL: 
http://svn.apache.org/viewvc/oozie/branches/branch-4.0/client/src/main/java/org/apache/oozie/cli/OozieCLI.java?rev=1510722&r1=1510721&r2=1510722&view=diff
==============================================================================
--- 
oozie/branches/branch-4.0/client/src/main/java/org/apache/oozie/cli/OozieCLI.java
 (original)
+++ 
oozie/branches/branch-4.0/client/src/main/java/org/apache/oozie/cli/OozieCLI.java
 Mon Aug  5 20:46:15 2013
@@ -867,36 +867,37 @@ public class OozieCLI {
             }
             else if (options.contains(INFO_OPTION)) {
                 String timeZoneId = getTimeZoneId(commandLine);
-                if (commandLine.getOptionValue(INFO_OPTION).endsWith("-B")) {
+                final String optionValue = 
commandLine.getOptionValue(INFO_OPTION);
+                if (optionValue.endsWith("-B")) {
                     String filter = commandLine.getOptionValue(FILTER_OPTION);
                     if (filter != null) {
                         throw new OozieCLIException("Filter option is 
currently not supported for a Bundle job");
                     }
-                    
printBundleJob(wc.getBundleJobInfo(commandLine.getOptionValue(INFO_OPTION)), 
timeZoneId,
+                    printBundleJob(wc.getBundleJobInfo(optionValue), 
timeZoneId,
                             options.contains(VERBOSE_OPTION));
                 }
-                else if 
(commandLine.getOptionValue(INFO_OPTION).endsWith("-C")) {
+                else if (optionValue.endsWith("-C")) {
                     String s = commandLine.getOptionValue(OFFSET_OPTION);
-                    int start = Integer.parseInt((s != null) ? s : "0");
+                    int start = Integer.parseInt((s != null) ? s : "-1");
                     s = commandLine.getOptionValue(LEN_OPTION);
-                    int len = Integer.parseInt((s != null) ? s : "0");
+                    int len = Integer.parseInt((s != null) ? s : "-1");
                     String filter = commandLine.getOptionValue(FILTER_OPTION);
-                    
printCoordJob(wc.getCoordJobInfo(commandLine.getOptionValue(INFO_OPTION), 
filter, start, len), timeZoneId,
+                    printCoordJob(wc.getCoordJobInfo(optionValue, filter, 
start, len), timeZoneId,
                             options.contains(VERBOSE_OPTION));
                 }
-                else if 
(commandLine.getOptionValue(INFO_OPTION).contains("-C@")) {
+                else if (optionValue.contains("-C@")) {
                     String filter = commandLine.getOptionValue(FILTER_OPTION);
                     if (filter != null) {
                         throw new OozieCLIException("Filter option is not 
supported for a Coordinator action");
                     }
-                    
printCoordAction(wc.getCoordActionInfo(commandLine.getOptionValue(INFO_OPTION)),
 timeZoneId);
+                    printCoordAction(wc.getCoordActionInfo(optionValue), 
timeZoneId);
                 }
-                else if 
(commandLine.getOptionValue(INFO_OPTION).contains("-W@")) {
+                else if (optionValue.contains("-W@")) {
                     String filter = commandLine.getOptionValue(FILTER_OPTION);
                     if (filter != null) {
                         throw new OozieCLIException("Filter option is not 
supported for a Workflow action");
                     }
-                    
printWorkflowAction(wc.getWorkflowActionInfo(commandLine.getOptionValue(INFO_OPTION)),
 timeZoneId,
+                    printWorkflowAction(wc.getWorkflowActionInfo(optionValue), 
timeZoneId,
                             options.contains(VERBOSE_OPTION));
                 }
                 else {
@@ -910,7 +911,7 @@ public class OozieCLI {
                     String jobtype = 
commandLine.getOptionValue(JOBTYPE_OPTION);
                     jobtype = (jobtype != null) ? jobtype : "wf";
                     int len = Integer.parseInt((s != null) ? s : "0");
-                    
printJob(wc.getJobInfo(commandLine.getOptionValue(INFO_OPTION), start, len), 
timeZoneId,
+                    printJob(wc.getJobInfo(optionValue, start, len), 
timeZoneId,
                             options.contains(VERBOSE_OPTION));
                 }
             }

Modified: 
oozie/branches/branch-4.0/client/src/main/java/org/apache/oozie/client/OozieClient.java
URL: 
http://svn.apache.org/viewvc/oozie/branches/branch-4.0/client/src/main/java/org/apache/oozie/client/OozieClient.java?rev=1510722&r1=1510721&r2=1510722&view=diff
==============================================================================
--- 
oozie/branches/branch-4.0/client/src/main/java/org/apache/oozie/client/OozieClient.java
 (original)
+++ 
oozie/branches/branch-4.0/client/src/main/java/org/apache/oozie/client/OozieClient.java
 Mon Aug  5 20:46:15 2013
@@ -1079,7 +1079,7 @@ public class OozieClient {
      * @throws OozieClientException thrown if the job info could not be 
retrieved.
      */
     public CoordinatorJob getCoordJobInfo(String jobId) throws 
OozieClientException {
-        return new CoordJobInfo(jobId, null, 0, 0).call();
+        return new CoordJobInfo(jobId, null, -1, -1).call();
     }
 
     /**

Modified: 
oozie/branches/branch-4.0/core/src/main/java/org/apache/oozie/servlet/V1JobServlet.java
URL: 
http://svn.apache.org/viewvc/oozie/branches/branch-4.0/core/src/main/java/org/apache/oozie/servlet/V1JobServlet.java?rev=1510722&r1=1510721&r2=1510722&view=diff
==============================================================================
--- 
oozie/branches/branch-4.0/core/src/main/java/org/apache/oozie/servlet/V1JobServlet.java
 (original)
+++ 
oozie/branches/branch-4.0/core/src/main/java/org/apache/oozie/servlet/V1JobServlet.java
 Mon Aug  5 20:46:15 2013
@@ -781,7 +781,7 @@ public class V1JobServlet extends BaseJo
         // Get default number of coordinator actions to be retrieved
         int defaultLen = 
Services.get().getConf().getInt(COORD_ACTIONS_DEFAULT_LENGTH, 1000);
         int len = (lenStr != null) ? Integer.parseInt(lenStr) : 0;
-        len = (len < 1) ? defaultLen : len;
+        len = (len < 0) ? defaultLen : len;
         try {
             JsonCoordinatorJob coordJob = coordEngine.getCoordJob(jobId, 
filter, start, len, order);
             jobBean = coordJob;

Modified: 
oozie/branches/branch-4.0/core/src/test/java/org/apache/oozie/TestCoordinatorEngine.java
URL: 
http://svn.apache.org/viewvc/oozie/branches/branch-4.0/core/src/test/java/org/apache/oozie/TestCoordinatorEngine.java?rev=1510722&r1=1510721&r2=1510722&view=diff
==============================================================================
--- 
oozie/branches/branch-4.0/core/src/test/java/org/apache/oozie/TestCoordinatorEngine.java
 (original)
+++ 
oozie/branches/branch-4.0/core/src/test/java/org/apache/oozie/TestCoordinatorEngine.java
 Mon Aug  5 20:46:15 2013
@@ -448,6 +448,10 @@ public class TestCoordinatorEngine exten
         // As both actions are waiting, expected result size is 2
         assertEquals(job.getActions().size(), 2);
 
+        job = ce.getCoordJob(jobId, "status=WAITING", 1, 0, false);
+        // Since length is 0, number of actions returned should be 0.
+        assertEquals(job.getActions().size(), 0);
+
         job = ce.getCoordJob(jobId, "status=RUNNING", 1, 2, false);
         assertEquals(job.getActions().size(), 0);
 

Modified: 
oozie/branches/branch-4.0/core/src/test/java/org/apache/oozie/client/TestOozieCLI.java
URL: 
http://svn.apache.org/viewvc/oozie/branches/branch-4.0/core/src/test/java/org/apache/oozie/client/TestOozieCLI.java?rev=1510722&r1=1510721&r2=1510722&view=diff
==============================================================================
--- 
oozie/branches/branch-4.0/core/src/test/java/org/apache/oozie/client/TestOozieCLI.java
 (original)
+++ 
oozie/branches/branch-4.0/core/src/test/java/org/apache/oozie/client/TestOozieCLI.java
 Mon Aug  5 20:46:15 2013
@@ -788,6 +788,23 @@ public class TestOozieCLI extends DagSer
                 assertEquals(0, new OozieCLI().run(args));
                 assertEquals(RestConstants.JOB_SHOW_INFO, 
MockDagEngineService.did);
 
+
+                args = new String[] { "job", "-oozie", oozieUrl, "-info",
+                        MockCoordinatorEngineService.JOB_ID + 1 + 
MockCoordinatorEngineService.JOB_ID_END };
+                assertEquals(0, new OozieCLI().run(args));
+                assertEquals(RestConstants.JOB_SHOW_INFO, 
MockCoordinatorEngineService.did);
+                assertEquals(MockCoordinatorEngineService.offset, new 
Integer(1));
+                assertEquals(MockCoordinatorEngineService.length, new 
Integer(1000));
+
+                MockCoordinatorEngineService.reset();
+                args = new String[] { "job", "-oozie", oozieUrl, "-info",
+                        MockCoordinatorEngineService.JOB_ID + 1 + 
MockCoordinatorEngineService.JOB_ID_END,
+                        "-len", "10", "-offset", "5" };
+                assertEquals(0, new OozieCLI().run(args));
+                assertEquals(RestConstants.JOB_SHOW_INFO, 
MockCoordinatorEngineService.did);
+                assertEquals(MockCoordinatorEngineService.offset, new 
Integer(5));
+                assertEquals(MockCoordinatorEngineService.length, new 
Integer(10));
+
                 return null;
             }
         });

Modified: 
oozie/branches/branch-4.0/core/src/test/java/org/apache/oozie/client/TestWorkflowClient.java
URL: 
http://svn.apache.org/viewvc/oozie/branches/branch-4.0/core/src/test/java/org/apache/oozie/client/TestWorkflowClient.java?rev=1510722&r1=1510721&r2=1510722&view=diff
==============================================================================
--- 
oozie/branches/branch-4.0/core/src/test/java/org/apache/oozie/client/TestWorkflowClient.java
 (original)
+++ 
oozie/branches/branch-4.0/core/src/test/java/org/apache/oozie/client/TestWorkflowClient.java
 Mon Aug  5 20:46:15 2013
@@ -26,6 +26,7 @@ import org.apache.oozie.BuildInfo;
 import org.apache.oozie.client.OozieClient.SYSTEM_MODE;
 import org.apache.oozie.client.rest.RestConstants;
 import org.apache.oozie.servlet.DagServletTestCase;
+import org.apache.oozie.servlet.MockCoordinatorEngineService;
 import org.apache.oozie.servlet.MockDagEngineService;
 import org.apache.oozie.servlet.SLAServlet;
 import org.apache.oozie.servlet.V0JobServlet;
@@ -443,11 +444,14 @@ public class TestWorkflowClient extends 
                 WorkflowAction wfAction = wc.getWorkflowActionInfo(jobId);
 
                 assertEquals(jobId, wfAction.getId());
-                CoordinatorJob job = wc.getCoordJobInfo(jobId);
+                CoordinatorJob job = 
wc.getCoordJobInfo(MockCoordinatorEngineService.JOB_ID + "1"
+                        + MockCoordinatorEngineService.JOB_ID_END);
 
                 assertEquals("group", job.getAcl());
-                assertEquals("SUCCEEDED", job.getStatus().toString());
+                assertEquals("RUNNING", job.getStatus().toString());
                 assertEquals("user", job.getUser());
+                assertEquals(MockCoordinatorEngineService.offset, new 
Integer(1));
+                assertEquals(MockCoordinatorEngineService.length, new 
Integer(1000));
 
                 BundleJob bundleJob = wc.getBundleJobInfo(jobId);
                 assertEquals("SUCCEEDED", bundleJob.getStatus().toString());

Modified: 
oozie/branches/branch-4.0/core/src/test/java/org/apache/oozie/servlet/MockCoordinatorEngineService.java
URL: 
http://svn.apache.org/viewvc/oozie/branches/branch-4.0/core/src/test/java/org/apache/oozie/servlet/MockCoordinatorEngineService.java?rev=1510722&r1=1510721&r2=1510722&view=diff
==============================================================================
--- 
oozie/branches/branch-4.0/core/src/test/java/org/apache/oozie/servlet/MockCoordinatorEngineService.java
 (original)
+++ 
oozie/branches/branch-4.0/core/src/test/java/org/apache/oozie/servlet/MockCoordinatorEngineService.java
 Mon Aug  5 20:46:15 2013
@@ -50,7 +50,10 @@ public class MockCoordinatorEngineServic
 
     public static final String LOG = "log";
 
+    public static final String JOB_ID_END = "-C";
     public static String did = null;
+    public static Integer offset = null;
+    public static Integer length = null;
     public static List<CoordinatorJob> coordJobs;
     public static List<Boolean> started;
     public static final int INIT_COORD_COUNT = 4;
@@ -61,6 +64,8 @@ public class MockCoordinatorEngineServic
 
     public static void reset() {
         did = null;
+        offset = null;
+        length = null;
         coordJobs = new ArrayList<CoordinatorJob>();
         started = new ArrayList<Boolean>();
         for (int i = 0; i < INIT_COORD_COUNT; i++) {
@@ -164,6 +169,8 @@ public class MockCoordinatorEngineServic
         public CoordinatorJobBean getCoordJob(String jobId, String filter, int 
start, int length, boolean desc)
                 throws BaseEngineException {
             did = RestConstants.JOB_SHOW_INFO;
+            MockCoordinatorEngineService.offset = start;
+            MockCoordinatorEngineService.length = length;
             int idx = validateCoordinatorIdx(jobId);
             return (CoordinatorJobBean) coordJobs.get(idx);
         }
@@ -193,7 +200,14 @@ public class MockCoordinatorEngineServic
         private int validateCoordinatorIdx(String jobId) throws 
CoordinatorEngineException {
             int idx = -1;
             try {
-                idx = Integer.parseInt(jobId.replace(JOB_ID, ""));
+                if (jobId.endsWith(JOB_ID_END)) {
+                    jobId = jobId.replace(JOB_ID, "");
+                    jobId = jobId.replace(JOB_ID_END, "");
+                }
+                else {
+                    jobId = jobId.replace(JOB_ID, "");
+                }
+                idx = Integer.parseInt(jobId);
             }
             catch (Exception e) {
                 throw new CoordinatorEngineException(ErrorCode.ETEST, jobId);

Modified: 
oozie/branches/branch-4.0/core/src/test/java/org/apache/oozie/servlet/TestV1JobServlet.java
URL: 
http://svn.apache.org/viewvc/oozie/branches/branch-4.0/core/src/test/java/org/apache/oozie/servlet/TestV1JobServlet.java?rev=1510722&r1=1510721&r2=1510722&view=diff
==============================================================================
--- 
oozie/branches/branch-4.0/core/src/test/java/org/apache/oozie/servlet/TestV1JobServlet.java
 (original)
+++ 
oozie/branches/branch-4.0/core/src/test/java/org/apache/oozie/servlet/TestV1JobServlet.java
 Mon Aug  5 20:46:15 2013
@@ -29,17 +29,13 @@ import org.json.simple.JSONValue;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+
 import java.io.InputStreamReader;
 import java.net.HttpURLConnection;
 import java.net.URL;
 import java.util.HashMap;
 import java.util.Map;
-import java.util.List;
-import java.util.Enumeration;
 import java.util.concurrent.Callable;
-import javax.imageio.ImageIO;
-import junit.framework.Assert;
-import org.apache.oozie.ErrorCode;
 
 public class TestV1JobServlet extends DagServletTestCase {
 
@@ -223,7 +219,7 @@ public class TestV1JobServlet extends Da
                 MockCoordinatorEngineService.reset();
                 params = new HashMap<String, String>();
                 params.put(RestConstants.JOB_SHOW_PARAM, 
RestConstants.JOB_SHOW_INFO);
-                params.put(RestConstants.OFFSET_PARAM, "1");
+                params.put(RestConstants.OFFSET_PARAM, "2");
                 params.put(RestConstants.LEN_PARAM, "50");
                 url = createURL(MockCoordinatorEngineService.JOB_ID + 1, 
params);
                 conn = (HttpURLConnection) url.openConnection();
@@ -233,6 +229,40 @@ public class TestV1JobServlet extends Da
                 obj = (JSONObject) JSONValue.parse(new 
InputStreamReader(conn.getInputStream()));
                 assertEquals(MockCoordinatorEngineService.JOB_ID + 1, 
obj.get(JsonTags.COORDINATOR_JOB_ID));
                 assertEquals(RestConstants.JOB_SHOW_INFO, 
MockCoordinatorEngineService.did);
+                assertEquals(MockCoordinatorEngineService.offset, new 
Integer(2));
+                assertEquals(MockCoordinatorEngineService.length, new 
Integer(50));
+
+                MockCoordinatorEngineService.reset();
+                params = new HashMap<String, String>();
+                params.put(RestConstants.JOB_SHOW_PARAM, 
RestConstants.JOB_SHOW_INFO);
+                params.put(RestConstants.OFFSET_PARAM, "-1"); //OozieCLI
+                params.put(RestConstants.LEN_PARAM, "-1");
+                url = createURL(MockCoordinatorEngineService.JOB_ID + 1, 
params);
+                conn = (HttpURLConnection) url.openConnection();
+                conn.setRequestMethod("GET");
+                assertEquals(HttpServletResponse.SC_OK, 
conn.getResponseCode());
+                
assertTrue(conn.getHeaderField("content-type").startsWith(RestConstants.JSON_CONTENT_TYPE));
+                obj = (JSONObject) JSONValue.parse(new 
InputStreamReader(conn.getInputStream()));
+                assertEquals(MockCoordinatorEngineService.JOB_ID + 1, 
obj.get(JsonTags.COORDINATOR_JOB_ID));
+                assertEquals(RestConstants.JOB_SHOW_INFO, 
MockCoordinatorEngineService.did);
+                assertEquals(MockCoordinatorEngineService.offset, new 
Integer(1));
+                assertEquals(MockCoordinatorEngineService.length, new 
Integer(1000));
+
+                MockCoordinatorEngineService.reset();
+                params = new HashMap<String, String>();
+                params.put(RestConstants.JOB_SHOW_PARAM, 
RestConstants.JOB_SHOW_INFO);
+                params.put(RestConstants.OFFSET_PARAM, "0");  
//oozie-console.js
+                params.put(RestConstants.LEN_PARAM, "0");
+                url = createURL(MockCoordinatorEngineService.JOB_ID + 1, 
params);
+                conn = (HttpURLConnection) url.openConnection();
+                conn.setRequestMethod("GET");
+                assertEquals(HttpServletResponse.SC_OK, 
conn.getResponseCode());
+                
assertTrue(conn.getHeaderField("content-type").startsWith(RestConstants.JSON_CONTENT_TYPE));
+                obj = (JSONObject) JSONValue.parse(new 
InputStreamReader(conn.getInputStream()));
+                assertEquals(MockCoordinatorEngineService.JOB_ID + 1, 
obj.get(JsonTags.COORDINATOR_JOB_ID));
+                assertEquals(RestConstants.JOB_SHOW_INFO, 
MockCoordinatorEngineService.did);
+                assertEquals(MockCoordinatorEngineService.offset, new 
Integer(1));
+                assertEquals(MockCoordinatorEngineService.length, new 
Integer(0));
 
                 MockCoordinatorEngineService.reset();
                 params = new HashMap<String, String>();

Modified: oozie/branches/branch-4.0/release-log.txt
URL: 
http://svn.apache.org/viewvc/oozie/branches/branch-4.0/release-log.txt?rev=1510722&r1=1510721&r2=1510722&view=diff
==============================================================================
--- oozie/branches/branch-4.0/release-log.txt (original)
+++ oozie/branches/branch-4.0/release-log.txt Mon Aug  5 20:46:15 2013
@@ -1,5 +1,6 @@
 -- Oozie 4.0.0 release
 
+OOZIE-1481 Getting a coordinator job info with len=0 should return 0 actions 
(rohini)
 OOZIE-1480 Web-console Workflow Job Info popup should display parent-id field 
and no empty Nominal time field (mona)
 OOZIE-1484 Error in DB upgrade when error message exceeds 4K characters (ryota)
 OOZIE-1482 4.0 client does not work with 3.x server for coord jobs (rohini)


Reply via email to