You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oozie.apache.org by ro...@apache.org on 2014/06/10 00:42:56 UTC
git commit: OOZIE-1807 Workflow action doen't resolve retry-max and
retry-interval (puru via rohini)
Repository: oozie
Updated Branches:
refs/heads/master 052187f79 -> 9f16ce1d2
OOZIE-1807 Workflow action doen't resolve retry-max and retry-interval (puru via rohini)
Project: http://git-wip-us.apache.org/repos/asf/oozie/repo
Commit: http://git-wip-us.apache.org/repos/asf/oozie/commit/9f16ce1d
Tree: http://git-wip-us.apache.org/repos/asf/oozie/tree/9f16ce1d
Diff: http://git-wip-us.apache.org/repos/asf/oozie/diff/9f16ce1d
Branch: refs/heads/master
Commit: 9f16ce1d2fe45e3a783e895c3414d1926c388633
Parents: 052187f
Author: Rohini Palaniswamy <ro...@apache.org>
Authored: Mon Jun 9 15:42:50 2014 -0700
Committer: Rohini Palaniswamy <ro...@apache.org>
Committed: Mon Jun 9 15:42:50 2014 -0700
----------------------------------------------------------------------
.../apache/oozie/command/wf/SignalXCommand.java | 2 ++
.../workflow/lite/LiteWorkflowAppParser.java | 21 +++++++++++++++++--
.../lite/TestLiteWorkflowAppParser.java | 22 +++++++++++++++++++-
release-log.txt | 1 +
4 files changed, 43 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/oozie/blob/9f16ce1d/core/src/main/java/org/apache/oozie/command/wf/SignalXCommand.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/oozie/command/wf/SignalXCommand.java b/core/src/main/java/org/apache/oozie/command/wf/SignalXCommand.java
index 7968973..4a7283f 100644
--- a/core/src/main/java/org/apache/oozie/command/wf/SignalXCommand.java
+++ b/core/src/main/java/org/apache/oozie/command/wf/SignalXCommand.java
@@ -58,6 +58,7 @@ import org.apache.oozie.util.InstrumentUtils;
import org.apache.oozie.util.LogUtils;
import org.apache.oozie.util.XConfiguration;
import org.apache.oozie.util.ParamChecker;
+import org.apache.oozie.util.XLog;
import org.apache.oozie.util.XmlUtils;
import org.apache.oozie.util.db.SLADbXOperations;
import org.jdom.Element;
@@ -190,6 +191,7 @@ public class SignalXCommand extends WorkflowXCommand<Void> {
completed = workflowInstance.signal(wfAction.getExecutionPath(), wfAction.getSignalValue());
}
catch (WorkflowException e) {
+ LOG.error("Workflow action failed : " + e.getMessage(), e);
wfJob.setStatus(WorkflowJob.Status.valueOf(workflowInstance.getStatus().toString()));
completed = true;
}
http://git-wip-us.apache.org/repos/asf/oozie/blob/9f16ce1d/core/src/main/java/org/apache/oozie/workflow/lite/LiteWorkflowAppParser.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/oozie/workflow/lite/LiteWorkflowAppParser.java b/core/src/main/java/org/apache/oozie/workflow/lite/LiteWorkflowAppParser.java
index 685503a..e47e619 100644
--- a/core/src/main/java/org/apache/oozie/workflow/lite/LiteWorkflowAppParser.java
+++ b/core/src/main/java/org/apache/oozie/workflow/lite/LiteWorkflowAppParser.java
@@ -18,6 +18,7 @@
package org.apache.oozie.workflow.lite;
import org.apache.oozie.workflow.WorkflowException;
+import org.apache.oozie.util.ELUtils;
import org.apache.oozie.util.IOUtils;
import org.apache.oozie.util.XConfiguration;
import org.apache.oozie.util.XmlUtils;
@@ -28,6 +29,7 @@ import org.apache.oozie.ErrorCode;
import org.apache.oozie.action.ActionExecutor;
import org.apache.oozie.service.Services;
import org.apache.oozie.service.ActionService;
+import org.apache.commons.lang.StringUtils;
import org.apache.hadoop.conf.Configuration;
import org.jdom.Element;
import org.jdom.JDOMException;
@@ -152,7 +154,7 @@ public class LiteWorkflowAppParser {
Element wfDefElement = XmlUtils.parseXml(strDef);
ParameterVerifier.verifyParameters(jobConf, wfDefElement);
- LiteWorkflowApp app = parse(strDef, wfDefElement, configDefault);
+ LiteWorkflowApp app = parse(strDef, wfDefElement, configDefault, jobConf);
Map<String, VisitStatus> traversed = new HashMap<String, VisitStatus>();
traversed.put(app.getNode(StartNodeDef.START).getName(), VisitStatus.VISITING);
validate(app, app.getNode(StartNodeDef.START), traversed);
@@ -376,11 +378,14 @@ public class LiteWorkflowAppParser {
*
* @param strDef
* @param root
+ * @param configDefault
+ * @param jobConf
* @return LiteWorkflowApp
* @throws WorkflowException
*/
@SuppressWarnings({"unchecked"})
- private LiteWorkflowApp parse(String strDef, Element root, Configuration configDefault) throws WorkflowException {
+ private LiteWorkflowApp parse(String strDef, Element root, Configuration configDefault, Configuration jobConf)
+ throws WorkflowException {
Namespace ns = root.getNamespace();
LiteWorkflowApp def = null;
Element global = null;
@@ -451,6 +456,18 @@ public class LiteWorkflowAppParser {
String credStr = eNode.getAttributeValue(CRED_A);
String userRetryMaxStr = eNode.getAttributeValue(USER_RETRY_MAX_A);
String userRetryIntervalStr = eNode.getAttributeValue(USER_RETRY_INTERVAL_A);
+ try {
+ if (!StringUtils.isEmpty(userRetryMaxStr)) {
+ userRetryMaxStr = ELUtils.resolveAppName(userRetryMaxStr, jobConf);
+ }
+ if (!StringUtils.isEmpty(userRetryIntervalStr)) {
+ userRetryIntervalStr = ELUtils.resolveAppName(userRetryIntervalStr,
+ jobConf);
+ }
+ }
+ catch (Exception e) {
+ throw new WorkflowException(ErrorCode.E0703, e.getMessage());
+ }
String actionConf = XmlUtils.prettyPrint(eActionConf).toString();
def.addNode(new ActionNodeDef(eNode.getAttributeValue(NAME_A), actionConf, actionHandlerClass,
http://git-wip-us.apache.org/repos/asf/oozie/blob/9f16ce1d/core/src/test/java/org/apache/oozie/workflow/lite/TestLiteWorkflowAppParser.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/oozie/workflow/lite/TestLiteWorkflowAppParser.java b/core/src/test/java/org/apache/oozie/workflow/lite/TestLiteWorkflowAppParser.java
index 41e6205..b47f808 100644
--- a/core/src/test/java/org/apache/oozie/workflow/lite/TestLiteWorkflowAppParser.java
+++ b/core/src/test/java/org/apache/oozie/workflow/lite/TestLiteWorkflowAppParser.java
@@ -18,13 +18,13 @@
package org.apache.oozie.workflow.lite;
+import java.io.StringReader;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
-
import org.apache.oozie.service.ActionService;
import org.apache.oozie.service.LiteWorkflowStoreService;
import org.apache.oozie.service.SchemaService;
@@ -1252,4 +1252,24 @@ public class TestLiteWorkflowAppParser extends XTestCase {
assertEquals("E0730: Fork/Join not in pair", wfe.getMessage());
}
}
+
+ // Test parameterization of retry-max and retry-interval
+ public void testParameterizationRetry() throws Exception {
+ LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
+ LiteWorkflowStoreService.LiteControlNodeHandler.class,
+ LiteWorkflowStoreService.LiteDecisionHandler.class, LiteWorkflowStoreService.LiteActionHandler.class);
+
+ String wf = "<workflow-app xmlns=\"uri:oozie:workflow:0.5\" name=\"test\" > "
+ + "<global> <job-tracker>localhost</job-tracker><name-node>localhost</name-node></global>"
+ + "<start to=\"retry\"/><action name=\"retry\" retry-max=\"${retryMax}\" retry-interval=\"${retryInterval}\">"
+ + "<java> <main-class>com.retry</main-class>" + "</java>" + "<ok to=\"end\"/>" + "<error to=\"end\"/>"
+ + "</action> <end name=\"end\"/></workflow-app>";
+ Configuration conf = new Configuration();
+ conf.set("retryMax", "3");
+ conf.set("retryInterval", "10");
+ LiteWorkflowApp app = parser.validateAndParse(new StringReader(wf), conf);
+ assertEquals(app.getNode("retry").getUserRetryMax(), "3");
+ assertEquals(app.getNode("retry").getUserRetryInterval(), "10");
+ }
+
}
http://git-wip-us.apache.org/repos/asf/oozie/blob/9f16ce1d/release-log.txt
----------------------------------------------------------------------
diff --git a/release-log.txt b/release-log.txt
index 23f6303..deead7b 100644
--- a/release-log.txt
+++ b/release-log.txt
@@ -1,5 +1,6 @@
-- Oozie 4.1.0 release (trunk - unreleased)
+OOZIE-1807 Workflow action doen't resolve retry-max and retry-interval (puru via rohini)
OOZIE-1686 Typo in DG_CommandLineTool (anbu78 via ryota)
OOZIE-1804 Improve documentation for Coordinator Specification (lars_francke via rkanter)
OOZIE-1828 Introduce counters JobStatus terminal states metrics (rkanter)