You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oozie.apache.org by rk...@apache.org on 2016/08/30 18:05:33 UTC
oozie git commit: OOZIE-2649 Can't override sub-workflow
configuration property if defined in parent workflow XML (asasvari via
rkanter)
Repository: oozie
Updated Branches:
refs/heads/master 43b73d836 -> 57152acd5
OOZIE-2649 Can't override sub-workflow configuration property if defined in parent workflow XML (asasvari via rkanter)
Project: http://git-wip-us.apache.org/repos/asf/oozie/repo
Commit: http://git-wip-us.apache.org/repos/asf/oozie/commit/57152acd
Tree: http://git-wip-us.apache.org/repos/asf/oozie/tree/57152acd
Diff: http://git-wip-us.apache.org/repos/asf/oozie/diff/57152acd
Branch: refs/heads/master
Commit: 57152acd5c9aa081d9c8357009f8741ee026e352
Parents: 43b73d8
Author: Robert Kanter <rk...@cloudera.com>
Authored: Tue Aug 30 11:05:23 2016 -0700
Committer: Robert Kanter <rk...@cloudera.com>
Committed: Tue Aug 30 11:05:23 2016 -0700
----------------------------------------------------------------------
.../action/oozie/SubWorkflowActionExecutor.java | 3 +-
.../workflow/lite/LiteWorkflowAppParser.java | 9 ++-
.../oozie/TestSubWorkflowActionExecutor.java | 83 +++++++++++++++-----
release-log.txt | 1 +
4 files changed, 74 insertions(+), 22 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/oozie/blob/57152acd/core/src/main/java/org/apache/oozie/action/oozie/SubWorkflowActionExecutor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/oozie/action/oozie/SubWorkflowActionExecutor.java b/core/src/main/java/org/apache/oozie/action/oozie/SubWorkflowActionExecutor.java
index 1ea7097..b6d2b12 100644
--- a/core/src/main/java/org/apache/oozie/action/oozie/SubWorkflowActionExecutor.java
+++ b/core/src/main/java/org/apache/oozie/action/oozie/SubWorkflowActionExecutor.java
@@ -182,8 +182,6 @@ public class SubWorkflowActionExecutor extends ActionExecutor {
XConfiguration subWorkflowConf = new XConfiguration();
- injectInline(eConf.getChild("configuration", ns), subWorkflowConf);
-
Configuration parentConf = new XConfiguration(new StringReader(context.getWorkflow().getConf()));
if (eConf.getChild(("propagate-configuration"), ns) != null) {
@@ -212,6 +210,7 @@ public class SubWorkflowActionExecutor extends ActionExecutor {
subWorkflowConf.set(OozieClient.GROUP_NAME, group);
}
+ injectInline(eConf.getChild("configuration", ns), subWorkflowConf);
injectCallback(context, subWorkflowConf);
injectRecovery(extId, subWorkflowConf);
injectParent(context.getWorkflow().getId(), subWorkflowConf);
http://git-wip-us.apache.org/repos/asf/oozie/blob/57152acd/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 bbd81a9..0541634 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
@@ -104,6 +104,8 @@ public class LiteWorkflowAppParser {
private static final String DECISION_CASE_E = "case";
private static final String DECISION_DEFAULT_E = "default";
+ private static final String SUBWORKFLOW_E = "sub-workflow";
+
private static final String KILL_MESSAGE_E = "message";
public static final String VALIDATE_FORK_JOIN = "oozie.validate.ForkJoin";
public static final String WF_VALIDATE_FORK_JOIN = "oozie.wf.validate.ForkJoin";
@@ -481,7 +483,12 @@ public class LiteWorkflowAppParser {
jobConf.set(OOZIE_GLOBAL, getGlobalString(gData));
}
eActionConf = elem;
- handleDefaultsAndGlobal(gData, configDefault, elem);
+ if (SUBWORKFLOW_E.equals(elem.getName())) {
+ handleDefaultsAndGlobal(gData, null, elem);
+ }
+ else {
+ handleDefaultsAndGlobal(gData, configDefault, elem);
+ }
}
}
http://git-wip-us.apache.org/repos/asf/oozie/blob/57152acd/core/src/test/java/org/apache/oozie/action/oozie/TestSubWorkflowActionExecutor.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/oozie/action/oozie/TestSubWorkflowActionExecutor.java b/core/src/test/java/org/apache/oozie/action/oozie/TestSubWorkflowActionExecutor.java
index bdbbfd9..e074d48 100644
--- a/core/src/test/java/org/apache/oozie/action/oozie/TestSubWorkflowActionExecutor.java
+++ b/core/src/test/java/org/apache/oozie/action/oozie/TestSubWorkflowActionExecutor.java
@@ -194,6 +194,7 @@ public class TestSubWorkflowActionExecutor extends ActionExecutorTestCase {
String defaultConf = workflow.getConf();
XConfiguration newConf = new XConfiguration(new StringReader(defaultConf));
newConf.set("abc", "xyz");
+ newConf.set("job_prop", "job_prop_val");
workflow.setConf(newConf.toXmlString());
final WorkflowActionBean action = (WorkflowActionBean) workflow.getActions().get(0);
@@ -205,6 +206,10 @@ public class TestSubWorkflowActionExecutor extends ActionExecutorTestCase {
" <name>a</name>" +
" <value>A</value>" +
" </property>" +
+ " <property>" +
+ " <name>job_prop</name>" +
+ " <value>sub_prop_val</value>" +
+ " </property>" +
" </configuration>" +
"</sub-workflow>");
@@ -232,6 +237,8 @@ public class TestSubWorkflowActionExecutor extends ActionExecutorTestCase {
WorkflowJob wf = oozieClient.getJobInfo(action.getExternalId());
Configuration childConf = getWorkflowConfig(wf);
assertEquals("xyz", childConf.get("abc"));
+ assertEquals("A", childConf.get("a"));
+ assertEquals("sub_prop_val", childConf.get("job_prop"));
}
public void testGetGroupFromParent() throws Exception {
@@ -363,6 +370,7 @@ public class TestSubWorkflowActionExecutor extends ActionExecutorTestCase {
WorkflowJob wf = oozieClient.getJobInfo(action.getExternalId());
Configuration childConf = getWorkflowConfig(wf);
assertNull(childConf.get("abc"));
+ assertEquals("A", childConf.get("a"));
}
public void testSubworkflowLib() throws Exception {
@@ -684,7 +692,7 @@ public class TestSubWorkflowActionExecutor extends ActionExecutorTestCase {
Path subWorkflowAppPath = createSubWorkflowXml();
createConfigDefaultXml();
-
+ createSubWorkflowConfigDefaultXml();
String workflowUri = createTestWorkflowXml(subWorkflowAppPath);
LocalOozie.start();
@@ -722,7 +730,10 @@ public class TestSubWorkflowActionExecutor extends ActionExecutorTestCase {
assertEquals("foo3", actionConf.get("foo3"));
// Checking the action conf configuration.
assertEquals("actionconf", subWorkflowConf.get("foo3"));
-
+ assertEquals("subactionconf", actionConf.get("foo4"));
+ // config defaults are present
+ assertEquals("default", subWorkflowConf.get("parentConfigDefault"));
+ assertEquals("default", actionConf.get("subwfConfigDefault"));
} finally {
LocalOozie.stop();
}
@@ -745,6 +756,10 @@ public class TestSubWorkflowActionExecutor extends ActionExecutorTestCase {
" <name>foo3</name>" +
" <value>foo3</value>" +
" </property>" +
+ " <property>" +
+ " <name>foo4</name>" +
+ " <value>actionconf</value>" +
+ " </property>" +
" </configuration>" +
"</global>" +
"<start to=\"subwf\"/>" +
@@ -773,27 +788,51 @@ public class TestSubWorkflowActionExecutor extends ActionExecutorTestCase {
}
private Path createSubWorkflowXml() throws IOException {
- Path subWorkflowAppPath = getFsTestCaseDir();
- FileSystem fs = getFileSystem();
- Path subWorkflowPath = new Path(subWorkflowAppPath, "workflow.xml");
- Writer writer = new OutputStreamWriter(fs.create(subWorkflowPath));
- writer.write(getWorkflow());
- writer.close();
- return subWorkflowAppPath;
+ return createSubWorkflowFile(getWorkflow(), "workflow.xml");
}
private void createConfigDefaultXml() throws IOException {
- String config_defaultUri=getTestCaseFileUri("config-default.xml");
- String config_default="<configuration>\n" +
- "<property>\n" +
- "<name>foo</name>\n" +
- "<value>default</value>\n" +
- "</property>\n" +
+ String config_defaultUri = getTestCaseFileUri("config-default.xml");
+ String config_default =
+ "<configuration>" +
+ " <property>" +
+ " <name>foo</name>" +
+ " <value>default</value>" +
+ " </property>" +
+ " <property>" +
+ " <name>parentConfigDefault</name>" +
+ " <value>default</value>" +
+ " </property>" +
"</configuration>";
writeToFile(config_default, config_defaultUri);
}
+ private void createSubWorkflowConfigDefaultXml() throws IOException {
+ String config_default = "<configuration>" +
+ " <property>" +
+ " <name>subwfConfigDefault</name>" +
+ " <value>default</value>" +
+ " </property>" +
+ " <property>" +
+ " <name>foo4</name>" +
+ " <value>default</value>" +
+ " </property>" +
+ "</configuration>";
+ createSubWorkflowFile(config_default, "config-default.xml");
+ }
+
+ private Path createSubWorkflowFile(String content, String fileName) throws IOException
+ {
+ Path subWorkflowAppPath = getFsTestCaseDir();
+ FileSystem fs = getFileSystem();
+ Path subWorkflowPath = new Path(subWorkflowAppPath, fileName);
+ Writer writer = new OutputStreamWriter(fs.create(subWorkflowPath));
+ writer.write(content);
+ writer.close();
+ return subWorkflowAppPath;
+ }
+
public String getWorkflow() {
return "<workflow-app xmlns='uri:oozie:workflow:0.4' name='app'>" +
"<global>" +
@@ -811,10 +850,16 @@ public class TestSubWorkflowActionExecutor extends ActionExecutorTestCase {
"<start to='java' />" +
"<action name='java'>" +
"<java>" +
- "<job-tracker>" + getJobTrackerUri() + "</job-tracker>" +
- "<name-node>" + getNameNodeUri() + "</name-node>" +
- "<main-class>" + LauncherMainTester.class.getName() + "</main-class>" +
- "<arg>exit0</arg>" +
+ " <job-tracker>" + getJobTrackerUri() + "</job-tracker>" +
+ " <name-node>" + getNameNodeUri() + "</name-node>" +
+ " <configuration>" +
+ " <property>" +
+ " <name>foo4</name>" +
+ " <value>subactionconf</value>" +
+ " </property>" +
+ " </configuration>" +
+ " <main-class>" + LauncherMainTester.class.getName() + "</main-class>" +
+ " <arg>exit0</arg>" +
"</java>"
+ "<ok to='end' />"
+ "<error to='fail' />"
http://git-wip-us.apache.org/repos/asf/oozie/blob/57152acd/release-log.txt
----------------------------------------------------------------------
diff --git a/release-log.txt b/release-log.txt
index 58e8f93..37f3b71 100644
--- a/release-log.txt
+++ b/release-log.txt
@@ -1,5 +1,6 @@
-- Oozie 4.3.0 release (trunk - unreleased)
+OOZIE-2649 Can't override sub-workflow configuration property if defined in parent workflow XML (asasvari via rkanter)
OOZIE-2656 OozieShareLibCLI uses op system username instead of Kerberos to upload jars (gezapeti via rkanter)
OOZIE-1173 Refactor: use ParamChecker inXOozieClient (abhishekbafna via jaydeepvishwakarma)
OOZIE-2657 Clean up redundant access modifiers from oozie interfaces (abhishekbafna via jaydeepvishwakarma)