Repository: oozie Updated Branches: refs/heads/master 38e33811b -> 8ebbc4bdf
OOZIE-2376 Default action configs not honored if no <configuration> section in workflow (rkanter) Project: http://git-wip-us.apache.org/repos/asf/oozie/repo Commit: http://git-wip-us.apache.org/repos/asf/oozie/commit/8ebbc4bd Tree: http://git-wip-us.apache.org/repos/asf/oozie/tree/8ebbc4bd Diff: http://git-wip-us.apache.org/repos/asf/oozie/diff/8ebbc4bd Branch: refs/heads/master Commit: 8ebbc4bdfa61f1f68bd04df00a9a71d2fe0fc871 Parents: 38e3381 Author: Robert Kanter <[email protected]> Authored: Tue Sep 29 21:52:05 2015 -0700 Committer: Robert Kanter <[email protected]> Committed: Tue Sep 29 21:52:05 2015 -0700 ---------------------------------------------------------------------- .../oozie/action/hadoop/JavaActionExecutor.java | 22 ++++----- .../action/hadoop/TestJavaActionExecutor.java | 48 ++++++++++++++++++++ release-log.txt | 1 + 3 files changed, 59 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/oozie/blob/8ebbc4bd/core/src/main/java/org/apache/oozie/action/hadoop/JavaActionExecutor.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/oozie/action/hadoop/JavaActionExecutor.java b/core/src/main/java/org/apache/oozie/action/hadoop/JavaActionExecutor.java index a6e7000..c519cb0 100644 --- a/core/src/main/java/org/apache/oozie/action/hadoop/JavaActionExecutor.java +++ b/core/src/main/java/org/apache/oozie/action/hadoop/JavaActionExecutor.java @@ -251,24 +251,22 @@ public class JavaActionExecutor extends ActionExecutor { throws ActionExecutorException { try { Namespace ns = actionXml.getNamespace(); + XConfiguration launcherConf = new XConfiguration(); + // Inject action defaults for launcher + HadoopAccessorService has = Services.get().get(HadoopAccessorService.class); + XConfiguration actionDefaultConf = has.createActionDefaultConf(conf.get(HADOOP_JOB_TRACKER), getType()); + injectLauncherProperties(actionDefaultConf, launcherConf); + // Inject <configuration> for launcher Element e = actionXml.getChild("configuration", ns); if (e != null) { String strConf = XmlUtils.prettyPrint(e).toString(); XConfiguration inlineConf = new XConfiguration(new StringReader(strConf)); - - XConfiguration launcherConf = new XConfiguration(); - HadoopAccessorService has = Services.get().get(HadoopAccessorService.class); - XConfiguration actionDefaultConf = has.createActionDefaultConf(conf.get(HADOOP_JOB_TRACKER), getType()); - injectLauncherProperties(actionDefaultConf, launcherConf); injectLauncherProperties(inlineConf, launcherConf); - injectLauncherUseUberMode(launcherConf); - checkForDisallowedProps(launcherConf, "launcher configuration"); - XConfiguration.copy(launcherConf, conf); - } else { - XConfiguration launcherConf = new XConfiguration(); - injectLauncherUseUberMode(launcherConf); - XConfiguration.copy(launcherConf, conf); } + // Inject use uber mode for launcher + injectLauncherUseUberMode(launcherConf); + XConfiguration.copy(launcherConf, conf); + checkForDisallowedProps(launcherConf, "launcher configuration"); e = actionXml.getChild("config-class", actionXml.getNamespace()); if (e != null) { conf.set(LauncherMapper.OOZIE_ACTION_CONFIG_CLASS, e.getTextTrim()); http://git-wip-us.apache.org/repos/asf/oozie/blob/8ebbc4bd/core/src/test/java/org/apache/oozie/action/hadoop/TestJavaActionExecutor.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/apache/oozie/action/hadoop/TestJavaActionExecutor.java b/core/src/test/java/org/apache/oozie/action/hadoop/TestJavaActionExecutor.java index 9be2c51..70f33ea 100644 --- a/core/src/test/java/org/apache/oozie/action/hadoop/TestJavaActionExecutor.java +++ b/core/src/test/java/org/apache/oozie/action/hadoop/TestJavaActionExecutor.java @@ -2654,4 +2654,52 @@ public class TestJavaActionExecutor extends ActionExecutorTestCase { }); assertTrue(runningJob.isSuccessful()); } + + public void testDefaultConfigurationInLauncher() throws Exception { + JavaActionExecutor ae = new JavaActionExecutor(); + Element actionXmlWithConfiguration = XmlUtils.parseXml( + "<java>" + "<job-tracker>" + getJobTrackerUri() +"</job-tracker>" + + "<name-node>" + getNameNodeUri() + "</name-node>" + + "<configuration>" + + "<property><name>oozie.launcher.a</name><value>AA</value></property>" + + "<property><name>b</name><value>BB</value></property>" + + "</configuration>" + + "<main-class>MAIN-CLASS</main-class>" + + "</java>"); + Element actionXmlWithoutConfiguration = XmlUtils.parseXml( + "<java>" + "<job-tracker>" + getJobTrackerUri() + "</job-tracker>" + + "<name-node>" + getNameNodeUri() + "</name-node>" + + "<main-class>MAIN-CLASS</main-class>" + + "</java>"); + + Configuration conf = new Configuration(false); + Assert.assertEquals(0, conf.size()); + conf.set("mapred.job.tracker", getJobTrackerUri()); + ae.setupLauncherConf(conf, actionXmlWithConfiguration, null, null); + assertEquals(getJobTrackerUri(), conf.get("mapred.job.tracker")); + assertEquals("AA", conf.get("oozie.launcher.a")); + assertEquals("AA", conf.get("a")); + assertEquals("action.barbar", conf.get("oozie.launcher.action.foofoo")); + assertEquals("action.barbar", conf.get("action.foofoo")); + assertEquals("true", conf.get("mapreduce.job.ubertask.enable")); + if (conf.size() == 7) { + assertEquals(getJobTrackerUri(), conf.get("mapreduce.jobtracker.address")); + } else { + assertEquals(6, conf.size()); + } + + conf = new Configuration(false); + Assert.assertEquals(0, conf.size()); + conf.set("mapred.job.tracker", getJobTrackerUri()); + ae.setupLauncherConf(conf, actionXmlWithoutConfiguration, null, null); + assertEquals(getJobTrackerUri(), conf.get("mapred.job.tracker")); + assertEquals("action.barbar", conf.get("oozie.launcher.action.foofoo")); + assertEquals("action.barbar", conf.get("action.foofoo")); + assertEquals("true", conf.get("mapreduce.job.ubertask.enable")); + if (conf.size() == 5) { + assertEquals(getJobTrackerUri(), conf.get("mapreduce.jobtracker.address")); + } else { + assertEquals(4, conf.size()); + } + } } http://git-wip-us.apache.org/repos/asf/oozie/blob/8ebbc4bd/release-log.txt ---------------------------------------------------------------------- diff --git a/release-log.txt b/release-log.txt index 7cd10d7..d2eee57 100644 --- a/release-log.txt +++ b/release-log.txt @@ -1,5 +1,6 @@ -- Oozie 4.3.0 release (trunk - unreleased) +OOZIE-2376 Default action configs not honored if no <configuration> section in workflow (rkanter) OOZIE-2365 oozie fail to start when smtp password not set (rohini) OOZIE-2360 Spark Action fails due to missing mesos jar (rkanter) OOZIE-2345 Parallel job submission for forked actions (puru)
