You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oozie.apache.org by tu...@apache.org on 2012/06/20 23:05:40 UTC

svn commit: r1352318 - in /incubator/oozie/trunk: ./ client/src/main/java/org/apache/oozie/cli/ core/src/main/java/org/apache/oozie/command/coord/ core/src/test/java/org/apache/oozie/command/coord/

Author: tucu
Date: Wed Jun 20 21:05:39 2012
New Revision: 1352318

URL: http://svn.apache.org/viewvc?rev=1352318&view=rev
Log:
OOZIE-563 Missing dependency showing feeds that are already present (mona via tucu)

Modified:
    incubator/oozie/trunk/client/src/main/java/org/apache/oozie/cli/OozieCLI.java
    incubator/oozie/trunk/core/src/main/java/org/apache/oozie/command/coord/CoordActionInputCheckXCommand.java
    incubator/oozie/trunk/core/src/test/java/org/apache/oozie/command/coord/TestCoordActionInputCheckXCommand.java
    incubator/oozie/trunk/release-log.txt

Modified: incubator/oozie/trunk/client/src/main/java/org/apache/oozie/cli/OozieCLI.java
URL: http://svn.apache.org/viewvc/incubator/oozie/trunk/client/src/main/java/org/apache/oozie/cli/OozieCLI.java?rev=1352318&r1=1352317&r2=1352318&view=diff
==============================================================================
--- incubator/oozie/trunk/client/src/main/java/org/apache/oozie/cli/OozieCLI.java (original)
+++ incubator/oozie/trunk/client/src/main/java/org/apache/oozie/cli/OozieCLI.java Wed Jun 20 21:05:39 2012
@@ -135,6 +135,8 @@ public class OozieCLI {
 
     private boolean used;
 
+    private static final String INSTANCE_SEPARATOR = "#";
+
     static {
         StringBuilder sb = new StringBuilder();
         for (int i = 0; i < LINE_WIDTH; i++) {
@@ -875,6 +877,10 @@ public class OozieCLI {
             System.out.println(RULER);
 
             for (CoordinatorAction action : actions) {
+                String missingDep = action.getMissingDependencies();
+                if(!missingDep.isEmpty()) {
+                    missingDep = missingDep.split(INSTANCE_SEPARATOR)[0];
+                }
                 System.out.println(maskIfNull(action.getId()) + VERBOSE_DELIMITER + action.getActionNumber()
                         + VERBOSE_DELIMITER + maskIfNull(action.getConsoleUrl()) + VERBOSE_DELIMITER
                         + maskIfNull(action.getErrorCode()) + VERBOSE_DELIMITER + maskIfNull(action.getErrorMessage())
@@ -884,7 +890,7 @@ public class OozieCLI {
                         + maskDate(action.getCreatedTime(), localtime) + VERBOSE_DELIMITER
                         + maskDate(action.getNominalTime(), localtime) + action.getStatus() + VERBOSE_DELIMITER
                         + maskDate(action.getLastModifiedTime(), localtime) + VERBOSE_DELIMITER
-                        + maskIfNull(action.getMissingDependencies()));
+                        + maskIfNull(missingDep));
 
                 System.out.println(RULER);
             }
@@ -946,7 +952,11 @@ public class OozieCLI {
         System.out.println("Nominal Time         : " + maskDate(coordAction.getNominalTime(), contains));
         System.out.println("Status               : " + coordAction.getStatus());
         System.out.println("Last Modified        : " + maskDate(coordAction.getLastModifiedTime(), contains));
-        System.out.println("Missing Dependencies : " + maskIfNull(coordAction.getMissingDependencies()));
+        String missingDep = coordAction.getMissingDependencies();
+        if(!missingDep.isEmpty()) {
+            missingDep = missingDep.split(INSTANCE_SEPARATOR)[0];
+        }
+        System.out.println("First Missing Dependency : " + maskIfNull(missingDep));
 
         System.out.println(RULER);
     }

Modified: incubator/oozie/trunk/core/src/main/java/org/apache/oozie/command/coord/CoordActionInputCheckXCommand.java
URL: http://svn.apache.org/viewvc/incubator/oozie/trunk/core/src/main/java/org/apache/oozie/command/coord/CoordActionInputCheckXCommand.java?rev=1352318&r1=1352317&r2=1352318&view=diff
==============================================================================
--- incubator/oozie/trunk/core/src/main/java/org/apache/oozie/command/coord/CoordActionInputCheckXCommand.java (original)
+++ incubator/oozie/trunk/core/src/main/java/org/apache/oozie/command/coord/CoordActionInputCheckXCommand.java Wed Jun 20 21:05:39 2012
@@ -117,10 +117,17 @@ public class CoordActionInputCheckXComma
             StringBuilder existList = new StringBuilder();
             StringBuilder nonExistList = new StringBuilder();
             StringBuilder nonResolvedList = new StringBuilder();
+            String firstMissingDependency = "";
             CoordCommandUtils.getResolvedList(coordAction.getMissingDependencies(), nonExistList, nonResolvedList);
 
-            LOG.info("[" + actionId + "]::CoordActionInputCheck:: Missing deps:" + nonExistList.toString() + " "
+            // For clarity regarding which is the missing dependency in synchronous order
+            // instead of printing entire list, some of which, may be available
+            if(nonExistList.length() > 0) {
+                firstMissingDependency = nonExistList.toString().split(CoordELFunctions.INSTANCE_SEPARATOR)[0];
+            }
+            LOG.info("[" + actionId + "]::CoordActionInputCheck:: Missing deps:" + firstMissingDependency + " "
                     + nonResolvedList.toString());
+            // Updating the list of data dependencies that are available and those that are yet not
             boolean status = checkInput(actionXml, existList, nonExistList, actionConf);
             coordAction.setLastModifiedTime(currentTime);
             coordAction.setActionXml(actionXml.toString());

Modified: incubator/oozie/trunk/core/src/test/java/org/apache/oozie/command/coord/TestCoordActionInputCheckXCommand.java
URL: http://svn.apache.org/viewvc/incubator/oozie/trunk/core/src/test/java/org/apache/oozie/command/coord/TestCoordActionInputCheckXCommand.java?rev=1352318&r1=1352317&r2=1352318&view=diff
==============================================================================
--- incubator/oozie/trunk/core/src/test/java/org/apache/oozie/command/coord/TestCoordActionInputCheckXCommand.java (original)
+++ incubator/oozie/trunk/core/src/test/java/org/apache/oozie/command/coord/TestCoordActionInputCheckXCommand.java Wed Jun 20 21:05:39 2012
@@ -142,6 +142,50 @@ public class TestCoordActionInputCheckXC
     }
 
     /**
+     * Test to check that missing dependencies list starts from the first unavailable dependency in synchronous order
+     * @throws Exception
+     */
+    public void testActionInputMissingDependencies() throws Exception {
+        String jobId = "0000000-" + new Date().getTime() + "-TestCoordActionInputCheckXCommand-C";
+        Date startTime = DateUtils.parseDateUTC("2009-02-15T23:59Z");
+        Date endTime = DateUtils.parseDateUTC("2009-02-16T23:59Z");
+        CoordinatorJobBean job = addRecordToCoordJobTable(jobId, startTime, endTime);
+        new CoordMaterializeTransitionXCommand(job.getId(), 3600).call();
+
+        // providing some of the dataset dirs required as per coordinator specification - /2009/12, /2009/05, /2009/29, /2009/22
+        createDir(getTestCaseDir() + "/2009/12/");
+        createDir(getTestCaseDir() + "/2009/29/");
+
+        new CoordActionInputCheckXCommand(job.getId() + "@1", job.getId()).call();
+        CoordinatorActionBean action = null;
+        try {
+            JPAService jpaService = Services.get().get(JPAService.class);
+            action = jpaService.execute(new CoordActionGetJPAExecutor(job.getId() + "@1"));
+        }
+        catch (JPAExecutorException se) {
+            fail("Action ID " + job.getId() + "@1" + " was not stored properly in db");
+        }
+
+        // Missing dependencies recorded by the coordinator action after input check
+        String missDepsOrder = action.getMissingDependencies();
+        // Expected missing dependencies are /2009/05, /2009/29, and /2009/22.
+
+        int index = missDepsOrder.indexOf("/2009/12");
+        if( index >= 0) {
+            fail("Dependency should be available! current list: " + missDepsOrder);
+        }
+        // Case when /2009/29 exists but checking stops since dataset synchronously expected before i.e. /2009/05 is missing
+        index = missDepsOrder.indexOf("/2009/29");
+        if( index < 0) {
+            fail("Data should have been in missing dependency list! current list: " + missDepsOrder);
+        }
+        index = missDepsOrder.indexOf("/2009/05");
+        if( index < 0) {
+            fail("Data should have been in missing dependency list! current list: " + missDepsOrder);
+        }
+    }
+
+    /**
      * This test case verifies if getCoordInputCheckRequeueInterval picks up the
      * overridden value. In reality, the value could be overridden in
      * oozie-site.xml.

Modified: incubator/oozie/trunk/release-log.txt
URL: http://svn.apache.org/viewvc/incubator/oozie/trunk/release-log.txt?rev=1352318&r1=1352317&r2=1352318&view=diff
==============================================================================
--- incubator/oozie/trunk/release-log.txt (original)
+++ incubator/oozie/trunk/release-log.txt Wed Jun 20 21:05:39 2012
@@ -1,5 +1,6 @@
 -- Oozie 3.3.0 release (trunk - unreleased)
 
+OOZIE-563 Missing dependency showing feeds that are already present (mona via tucu)
 OOZIE-879 streaming sharelib brings in lots of unwanted dependencies (rkanter via tucu)
 OOZIE-876 distcp packaging with Hadoop 1 brings in lots of unwanted dependencies (rkanter via tucu)
 OOZIE-559 Create DistCp WF example (rkanter via tucu)