You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oozie.apache.org by pu...@apache.org on 2015/06/15 23:19:33 UTC

oozie git commit: OOZIE-2264 Fix coord:offset(n, DAY) to resolve correct data set

Repository: oozie
Updated Branches:
  refs/heads/master fcbab9340 -> 0d497504e


OOZIE-2264 Fix coord:offset(n,DAY) to resolve correct data set


Project: http://git-wip-us.apache.org/repos/asf/oozie/repo
Commit: http://git-wip-us.apache.org/repos/asf/oozie/commit/0d497504
Tree: http://git-wip-us.apache.org/repos/asf/oozie/tree/0d497504
Diff: http://git-wip-us.apache.org/repos/asf/oozie/diff/0d497504

Branch: refs/heads/master
Commit: 0d497504e2ff016f3641de04dd2fb7acd31192de
Parents: fcbab93
Author: Purshotam Shah <pu...@yahoo-inc.com>
Authored: Mon Jun 15 14:19:27 2015 -0700
Committer: Purshotam Shah <pu...@yahoo-inc.com>
Committed: Mon Jun 15 14:19:27 2015 -0700

----------------------------------------------------------------------
 .../oozie/command/coord/CoordCommandUtils.java  |  2 +-
 .../command/coord/TestCoordCommandUtils.java    | 23 ++++++++++++
 .../src/test/resources/coord-dataset-offset.xml | 38 ++++++++++++++++++++
 release-log.txt                                 |  1 +
 4 files changed, 63 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/oozie/blob/0d497504/core/src/main/java/org/apache/oozie/command/coord/CoordCommandUtils.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/oozie/command/coord/CoordCommandUtils.java b/core/src/main/java/org/apache/oozie/command/coord/CoordCommandUtils.java
index 40a3c5c..7847c1f 100644
--- a/core/src/main/java/org/apache/oozie/command/coord/CoordCommandUtils.java
+++ b/core/src/main/java/org/apache/oozie/command/coord/CoordCommandUtils.java
@@ -263,7 +263,7 @@ public class CoordCommandUtils {
                         List<Integer> expandedFreqs = CoordELFunctions.expandOffsetTimes(startCal, endCal, eval);
                         for (int i = expandedFreqs.size() - 1; i >= 0; i--) {
                             String matInstance = materializeInstance(event, "${coord:offset(" + expandedFreqs.get(i)
-                                    + ", \"MINUTE\")}", appInst, conf, eval);
+                                    + ", \"" + startRestArg + "\")}", appInst, conf, eval);
                             if (matInstance == null || matInstance.length() == 0) {
                                 // Earlier than dataset's initial instance
                                 break;

http://git-wip-us.apache.org/repos/asf/oozie/blob/0d497504/core/src/test/java/org/apache/oozie/command/coord/TestCoordCommandUtils.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/oozie/command/coord/TestCoordCommandUtils.java b/core/src/test/java/org/apache/oozie/command/coord/TestCoordCommandUtils.java
index fc75d91..3477894 100644
--- a/core/src/test/java/org/apache/oozie/command/coord/TestCoordCommandUtils.java
+++ b/core/src/test/java/org/apache/oozie/command/coord/TestCoordCommandUtils.java
@@ -300,6 +300,29 @@ public class TestCoordCommandUtils extends XDataTestCase {
     }
 
     @Test
+    public void testCoordOffset() throws Exception {
+        CoordinatorJobBean job = addRecordToCoordJobTableForWaiting("coord-dataset-offset.xml",
+                CoordinatorJob.Status.RUNNING, false, true);
+        Path appPath = new Path(getFsTestCaseDir(), "coord");
+        String actionXml = getCoordActionXml(appPath, "coord-dataset-offset.xml");
+        CoordinatorActionBean actionBean = createCoordinatorActionBean(job);
+        Configuration jobConf = new XConfiguration(new StringReader(job.getConf()));
+        Element eAction = createActionElement(actionXml);
+        jobConf.set("startInstance", "coord:offset(-4,DAY)");
+        jobConf.set("endInstance", "coord:offset(0,DAY)");
+        String output = CoordCommandUtils.materializeOneInstance("jobId", true, eAction,
+                DateUtils.parseDateOozieTZ("2009-08-20T01:00Z"), DateUtils.parseDateOozieTZ("2009-08-20T01:00Z"), 1,
+                jobConf, actionBean);
+        eAction = XmlUtils.parseXml(output);
+        Element e = (Element) ((Element) eAction.getChildren("input-events", eAction.getNamespace()).get(0))
+                .getChildren().get(0);
+        assertEquals(e.getChild("uris", e.getNamespace()).getTextTrim(),
+                "hdfs:///tmp/workflows/2009/08/20;region=us#hdfs:///tmp/workflows/2009/08/19;region=us#"
+                        + "hdfs:///tmp/workflows/2009/08/18;region=us#hdfs:///tmp/workflows/2009/08/17;"
+                        + "region=us#hdfs:///tmp/workflows/2009/08/16;region=us");
+    }
+
+    @Test
     public void testCoordAbsolute() throws Exception {
         CoordinatorJobBean job = addRecordToCoordJobTableForWaiting("coord-dataset-absolute.xml",
                 CoordinatorJob.Status.RUNNING, false, true);

http://git-wip-us.apache.org/repos/asf/oozie/blob/0d497504/core/src/test/resources/coord-dataset-offset.xml
----------------------------------------------------------------------
diff --git a/core/src/test/resources/coord-dataset-offset.xml b/core/src/test/resources/coord-dataset-offset.xml
new file mode 100644
index 0000000..4a7a7a3
--- /dev/null
+++ b/core/src/test/resources/coord-dataset-offset.xml
@@ -0,0 +1,38 @@
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor
+    license agreements. See the NOTICE file distributed with this work for additional
+    information regarding copyright ownership. The ASF licenses this file to
+    you under the Apache License, Version 2.0 (the "License"); you may not use
+    this file except in compliance with the License. You may obtain a copy of
+    the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required
+    by applicable law or agreed to in writing, software distributed under the
+    License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
+    OF ANY KIND, either express or implied. See the License for the specific
+    language governing permissions and limitations under the License. -->
+
+<coordinator-app xmlns='uri:oozie:coordinator:0.2' name='NAME'
+    frequency="1" start='2009-08-20T01:00Z' end='2009-10-10T23:59Z'
+    timezone='UTC' freq_timeunit='DAY' end_of_duration='NONE'>
+    <controls>
+        <timeout>10</timeout>
+        <concurrency>2</concurrency>
+        <execution>LIFO</execution>
+    </controls>
+    <input-events>
+        <data-in name="input" dataset="test">
+            <dataset name='test' frequency='1' initial-instance='2009-08-06T01:00Z'
+                timezone='UTC' freq_timeunit='DAY' end_of_duration='NONE'>
+                <uri-template>hdfs:///tmp/workflows/${YEAR}/${MONTH}/${DAY};region=us
+                </uri-template>
+            </dataset>
+            <start-instance>${startInstance}</start-instance>
+            <end-instance>${endInstance}</end-instance>
+        </data-in>
+    </input-events>
+    <action>
+        <workflow>
+            <app-path>hdfs:///tmp/workflows/</app-path>
+            <configuration>
+            </configuration>
+        </workflow>
+    </action>
+</coordinator-app>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/oozie/blob/0d497504/release-log.txt
----------------------------------------------------------------------
diff --git a/release-log.txt b/release-log.txt
index 79f19b8..e525c59 100644
--- a/release-log.txt
+++ b/release-log.txt
@@ -1,5 +1,6 @@
 -- Oozie 4.3.0 release (trunk - unreleased)
 
+OOZIE-2264 Fix coord:offset(n,"DAY") to resolve correct data set(kailongs via puru)
 OOZIE-2178 fix javadoc to compile on JDK8 (rkanter)
 OOZIE-2268 Update ActiveMQ version for security and other fixes (rkanter)
 OOZIE-2215 Support glob in FS EL function (ryota)