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)