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 2013/03/14 22:10:57 UTC

svn commit: r1456685 - in /oozie/trunk: ./ core/src/main/java/org/apache/oozie/action/oozie/ core/src/main/java/org/apache/oozie/command/wf/ core/src/test/java/org/apache/oozie/action/oozie/

Author: rkanter
Date: Thu Mar 14 21:10:57 2013
New Revision: 1456685

URL: http://svn.apache.org/r1456685
Log:
OOZIE-1264 The parent property of a subworkflow should be the ID of the parent workflow (rkanter)

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

Modified: oozie/trunk/core/src/main/java/org/apache/oozie/action/oozie/SubWorkflowActionExecutor.java
URL: http://svn.apache.org/viewvc/oozie/trunk/core/src/main/java/org/apache/oozie/action/oozie/SubWorkflowActionExecutor.java?rev=1456685&r1=1456684&r2=1456685&view=diff
==============================================================================
--- oozie/trunk/core/src/main/java/org/apache/oozie/action/oozie/SubWorkflowActionExecutor.java (original)
+++ oozie/trunk/core/src/main/java/org/apache/oozie/action/oozie/SubWorkflowActionExecutor.java Thu Mar 14 21:10:57 2013
@@ -47,6 +47,7 @@ import java.util.HashSet;
 public class SubWorkflowActionExecutor extends ActionExecutor {
     public static final String ACTION_TYPE = "sub-workflow";
     public static final String LOCAL = "local";
+    public static final String PARENT_ID = "oozie.wf.parent.id";
 
     private static final Set<String> DISALLOWED_DEFAULT_PROPERTIES = new HashSet<String>();
 
@@ -115,6 +116,10 @@ public class SubWorkflowActionExecutor e
         conf.set(OozieClient.EXTERNAL_ID, externalId);
     }
 
+    protected void injectParent(String parentId, Configuration conf) {
+        conf.set(PARENT_ID, parentId);
+    }
+
     protected String checkIfRunning(OozieClient oozieClient, String extId) throws OozieClientException {
         String jobId = oozieClient.getJobId(extId);
         if (jobId.equals("")) {
@@ -156,6 +161,7 @@ public class SubWorkflowActionExecutor e
                 injectInline(eConf.getChild("configuration", ns), subWorkflowConf);
                 injectCallback(context, subWorkflowConf);
                 injectRecovery(extId, subWorkflowConf);
+                injectParent(context.getWorkflow().getId(), subWorkflowConf);
 
                 //TODO: this has to be refactored later to be done in a single place for REST calls and this
                 JobUtils.normalizeAppPath(context.getWorkflow().getUser(), context.getWorkflow().getGroup(),

Modified: oozie/trunk/core/src/main/java/org/apache/oozie/command/wf/SubmitXCommand.java
URL: http://svn.apache.org/viewvc/oozie/trunk/core/src/main/java/org/apache/oozie/command/wf/SubmitXCommand.java?rev=1456685&r1=1456684&r2=1456685&view=diff
==============================================================================
--- oozie/trunk/core/src/main/java/org/apache/oozie/command/wf/SubmitXCommand.java (original)
+++ oozie/trunk/core/src/main/java/org/apache/oozie/command/wf/SubmitXCommand.java Thu Mar 14 21:10:57 2013
@@ -23,6 +23,7 @@ import org.apache.hadoop.fs.FileSystem;
 import org.apache.oozie.SLAEventBean;
 import org.apache.oozie.WorkflowJobBean;
 import org.apache.oozie.ErrorCode;
+import org.apache.oozie.action.oozie.SubWorkflowActionExecutor;
 import org.apache.oozie.service.HadoopAccessorException;
 import org.apache.oozie.service.JPAService;
 import org.apache.oozie.service.WorkflowStoreService;
@@ -189,6 +190,10 @@ public class SubmitXCommand extends Work
             workflow.setAuthToken(authToken);
             workflow.setWorkflowInstance(wfInstance);
             workflow.setExternalId(conf.get(OozieClient.EXTERNAL_ID));
+            // Set parent id if it doesn't already have one (for subworkflows)
+            if (workflow.getParentId() == null) {
+                workflow.setParentId(conf.get(SubWorkflowActionExecutor.PARENT_ID));
+            }
 
             LogUtils.setLogInfo(workflow, logInfo);
             LOG = XLog.resetPrefix(LOG);

Modified: oozie/trunk/core/src/test/java/org/apache/oozie/action/oozie/TestSubWorkflowActionExecutor.java
URL: http://svn.apache.org/viewvc/oozie/trunk/core/src/test/java/org/apache/oozie/action/oozie/TestSubWorkflowActionExecutor.java?rev=1456685&r1=1456684&r2=1456685&view=diff
==============================================================================
--- oozie/trunk/core/src/test/java/org/apache/oozie/action/oozie/TestSubWorkflowActionExecutor.java (original)
+++ oozie/trunk/core/src/test/java/org/apache/oozie/action/oozie/TestSubWorkflowActionExecutor.java Thu Mar 14 21:10:57 2013
@@ -115,6 +115,7 @@ public class TestSubWorkflowActionExecut
 
         assertEquals(WorkflowAction.Status.OK, action.getStatus());
 
+        assertEquals(workflow.getId(), oozieClient.getJobInfo(action.getExternalId()).getParentId());
     }
 
     public void testSubWorkflowRecovery() throws Exception {
@@ -149,6 +150,7 @@ public class TestSubWorkflowActionExecut
             }
         });
         String extId = action.getExternalId();
+        assertEquals(workflow.getId(), oozieClient.getJobInfo(extId).getParentId());
         assertEquals(WorkflowJob.Status.SUCCEEDED, oozieClient.getJobInfo(extId).getStatus());
         WorkflowActionBean action1 = new WorkflowActionBean();
         action1.setId(action.getId());
@@ -164,6 +166,7 @@ public class TestSubWorkflowActionExecut
                 "</sub-workflow>");
         subWorkflow.start(new Context(workflow, action1), action1);
         assertEquals(extId, action1.getExternalId());
+        assertEquals(workflow.getId(), oozieClient.getJobInfo(extId).getParentId());
         subWorkflow.check(new Context(workflow, action1), action1);
         assertEquals(WorkflowAction.Status.DONE, action1.getStatus());
         subWorkflow.end(new Context(workflow, action1), action1);

Modified: oozie/trunk/release-log.txt
URL: http://svn.apache.org/viewvc/oozie/trunk/release-log.txt?rev=1456685&r1=1456684&r2=1456685&view=diff
==============================================================================
--- oozie/trunk/release-log.txt (original)
+++ oozie/trunk/release-log.txt Thu Mar 14 21:10:57 2013
@@ -1,5 +1,6 @@
 -- Oozie 4.1.0 release (trunk - unreleased)
 
+OOZIE-1264 The "parent" property of a subworkflow should be the ID of the parent workflow (rkanter)
 OOZIE-1245 Add ability to automatically suspend workflow at specified actions (rkanter)
 OOZIE-894 support for hive in Oozie CLI (bowenzhangusa via tucu)
 OOZIE-1239 Bump up trunk to 4.1.0-SNAPSHOT (virag)