Author: kamrul
Date: Tue Apr 17 00:43:34 2012
New Revision: 1326844

URL: http://svn.apache.org/viewvc?rev=1326844&view=rev
Log:
OOZIE-813 Sub-workflow child job does not get group name even if parent 
carries.(Mona via Mohammad)

Modified:
    
incubator/oozie/trunk/core/src/main/java/org/apache/oozie/action/oozie/SubWorkflowActionExecutor.java
    
incubator/oozie/trunk/core/src/test/java/org/apache/oozie/action/oozie/TestSubWorkflowActionExecutor.java
    incubator/oozie/trunk/release-log.txt

Modified: 
incubator/oozie/trunk/core/src/main/java/org/apache/oozie/action/oozie/SubWorkflowActionExecutor.java
URL: 
http://svn.apache.org/viewvc/incubator/oozie/trunk/core/src/main/java/org/apache/oozie/action/oozie/SubWorkflowActionExecutor.java?rev=1326844&r1=1326843&r2=1326844&view=diff
==============================================================================
--- 
incubator/oozie/trunk/core/src/main/java/org/apache/oozie/action/oozie/SubWorkflowActionExecutor.java
 (original)
+++ 
incubator/oozie/trunk/core/src/main/java/org/apache/oozie/action/oozie/SubWorkflowActionExecutor.java
 Tue Apr 17 00:43:34 2012
@@ -24,11 +24,11 @@ import org.apache.oozie.DagEngine;
 import org.apache.oozie.LocalOozieClient;
 import org.apache.oozie.WorkflowJobBean;
 import org.apache.oozie.service.DagEngineService;
-import org.apache.oozie.service.WorkflowAppService;
 import org.apache.oozie.client.WorkflowAction;
 import org.apache.oozie.client.OozieClient;
 import org.apache.oozie.client.WorkflowJob;
 import org.apache.oozie.command.CommandException;
+import org.apache.oozie.util.ConfigUtils;
 import org.apache.oozie.util.JobUtils;
 import org.apache.oozie.util.PropertiesUtils;
 import org.apache.oozie.util.XmlUtils;
@@ -140,8 +140,8 @@ public class SubWorkflowActionExecutor e
                 String appPath = eConf.getChild("app-path", ns).getTextTrim();
 
                 XConfiguration subWorkflowConf = new XConfiguration();
+                Configuration parentConf = new XConfiguration(new 
StringReader(context.getWorkflow().getConf()));
                 if (eConf.getChild(("propagate-configuration"), ns) != null) {
-                    Configuration parentConf = new XConfiguration(new 
StringReader(context.getWorkflow().getConf()));
                     XConfiguration.copy(parentConf, subWorkflowConf);
                 }
 
@@ -149,6 +149,10 @@ public class SubWorkflowActionExecutor e
                 Configuration protoActionConf = context.getProtoActionConf();
                 XConfiguration.copy(protoActionConf, subWorkflowConf);
                 subWorkflowConf.set(OozieClient.APP_PATH, appPath);
+                String group = ConfigUtils.getWithDeprecatedCheck(parentConf, 
OozieClient.JOB_ACL, OozieClient.GROUP_NAME, null);
+                if(group != null) {
+                    subWorkflowConf.set(OozieClient.GROUP_NAME, group);
+                }
                 injectInline(eConf.getChild("configuration", ns), 
subWorkflowConf);
                 injectCallback(context, subWorkflowConf);
                 injectRecovery(extId, subWorkflowConf);

Modified: 
incubator/oozie/trunk/core/src/test/java/org/apache/oozie/action/oozie/TestSubWorkflowActionExecutor.java
URL: 
http://svn.apache.org/viewvc/incubator/oozie/trunk/core/src/test/java/org/apache/oozie/action/oozie/TestSubWorkflowActionExecutor.java?rev=1326844&r1=1326843&r2=1326844&view=diff
==============================================================================
--- 
incubator/oozie/trunk/core/src/test/java/org/apache/oozie/action/oozie/TestSubWorkflowActionExecutor.java
 (original)
+++ 
incubator/oozie/trunk/core/src/test/java/org/apache/oozie/action/oozie/TestSubWorkflowActionExecutor.java
 Tue Apr 17 00:43:34 2012
@@ -221,6 +221,69 @@ public class TestSubWorkflowActionExecut
         assertEquals("xyz", childConf.get("abc"));
     }
 
+    public void testGetGroupFromParent() throws Exception {
+        Path subWorkflowAppPath = getFsTestCaseDir();
+        FileSystem fs = getFileSystem();
+        Writer writer = new OutputStreamWriter(fs.create(new 
Path(subWorkflowAppPath, "workflow.xml")));
+        writer.write(APP1);
+        writer.close();
+
+        XConfiguration protoConf = getBaseProtoConf();
+        WorkflowJobBean workflow = createBaseWorkflow(protoConf, "W");
+        String defaultConf = workflow.getConf();
+        XConfiguration newConf = new XConfiguration(new 
StringReader(defaultConf));
+        String actionConf = "<sub-workflow xmlns='uri:oozie:workflow:0.1' 
name='subwf'>" +
+                "      <app-path>" + subWorkflowAppPath + File.separator + 
"workflow.xml" + "</app-path>" +
+                "      <configuration>" +
+                "        <property>" +
+                "          <name>a</name>" +
+                "          <value>A</value>" +
+                "        </property>" +
+                "      </configuration>" +
+                "</sub-workflow>";
+
+        final WorkflowActionBean action = (WorkflowActionBean) 
workflow.getActions().get(0);
+        action.setConf(actionConf);
+
+        // negative test
+        SubWorkflowActionExecutor subWorkflow = new 
SubWorkflowActionExecutor();
+        workflow.setConf(newConf.toXmlString());
+
+        subWorkflow.start(new Context(workflow, action), action);
+
+        OozieClient oozieClient = subWorkflow.getWorkflowClient(new 
Context(workflow, action),
+                                                                      
SubWorkflowActionExecutor.LOCAL);
+
+        subWorkflow.check(new Context(workflow, action), action);
+        subWorkflow.end(new Context(workflow, action), action);
+
+        assertEquals(WorkflowAction.Status.OK, action.getStatus());
+
+        WorkflowJob wf = oozieClient.getJobInfo(action.getExternalId());
+        Configuration childConf = new XConfiguration(new 
StringReader(wf.getConf()));
+
+        assertFalse(getTestGroup() == childConf.get(OozieClient.GROUP_NAME));
+
+        // positive test
+        newConf.set(OozieClient.GROUP_NAME, getTestGroup());
+        workflow.setConf(newConf.toXmlString());
+        WorkflowActionBean action1 = new WorkflowActionBean();
+        action1.setConf(actionConf);
+        action1.setId("W1");
+
+        subWorkflow.start(new Context(workflow, action1), action1);
+
+        oozieClient = subWorkflow.getWorkflowClient(new Context(workflow, 
action1),
+                                                                      
SubWorkflowActionExecutor.LOCAL);
+
+        subWorkflow.check(new Context(workflow, action1), action1);
+        subWorkflow.end(new Context(workflow, action1), action1);
+
+        wf = oozieClient.getJobInfo(action1.getExternalId());
+        childConf = new XConfiguration(new StringReader(wf.getConf()));
+        assertEquals(getTestGroup(), childConf.get(OozieClient.GROUP_NAME));
+    }
+
     public void testConfigNotPropagation() throws Exception {
         Path subWorkflowAppPath = getFsTestCaseDir();
         FileSystem fs = getFileSystem();

Modified: incubator/oozie/trunk/release-log.txt
URL: 
http://svn.apache.org/viewvc/incubator/oozie/trunk/release-log.txt?rev=1326844&r1=1326843&r2=1326844&view=diff
==============================================================================
--- incubator/oozie/trunk/release-log.txt (original)
+++ incubator/oozie/trunk/release-log.txt Tue Apr 17 00:43:34 2012
@@ -1,5 +1,6 @@
 -- Oozie 3.2.0 release
 
+OOZIE-813 Sub-workflow child job does not get group name even if parent 
carries.(Mona via Mohammad)
 OOZIE-791: coord job status not updated to done_with_error after kill(Virag 
via Mohammad)
 OOZIE-804 TestDecisionActionExecutor failing due to uninitialized conf.(Virag 
via Mohammad)
 OOZIE-805 TestCoordSubmitX failing(Virag via Mohamamd).


Reply via email to