You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oozie.apache.org by ka...@apache.org on 2011/10/08 00:57:11 UTC

svn commit: r1180273 - in /incubator/oozie/trunk: ./ client/src/main/java/org/apache/oozie/client/ core/src/main/java/org/apache/oozie/ core/src/main/java/org/apache/oozie/executor/jpa/ core/src/main/java/org/apache/oozie/store/ core/src/test/java/org/...

Author: kamrul
Date: Fri Oct  7 22:57:10 2011
New Revision: 1180273

URL: http://svn.apache.org/viewvc?rev=1180273&view=rev
Log:
OOZIE-554 New filters for all kinds of jobs.(Kiran via Mona via Mohammad)

Modified:
    incubator/oozie/trunk/client/src/main/java/org/apache/oozie/client/OozieClient.java
    incubator/oozie/trunk/core/src/main/java/org/apache/oozie/BundleEngine.java
    incubator/oozie/trunk/core/src/main/java/org/apache/oozie/CoordinatorEngine.java
    incubator/oozie/trunk/core/src/main/java/org/apache/oozie/DagEngine.java
    incubator/oozie/trunk/core/src/main/java/org/apache/oozie/executor/jpa/WorkflowsJobGetJPAExecutor.java
    incubator/oozie/trunk/core/src/main/java/org/apache/oozie/store/StoreStatusFilter.java
    incubator/oozie/trunk/core/src/test/java/org/apache/oozie/executor/jpa/TestBundleJobInfoGetJPAExecutor.java
    incubator/oozie/trunk/core/src/test/java/org/apache/oozie/executor/jpa/TestCoordJobInfoGetJPAExecutor.java
    incubator/oozie/trunk/core/src/test/java/org/apache/oozie/executor/jpa/TestWorkflowsJobGetJPAExecutor.java
    incubator/oozie/trunk/release-log.txt

Modified: incubator/oozie/trunk/client/src/main/java/org/apache/oozie/client/OozieClient.java
URL: http://svn.apache.org/viewvc/incubator/oozie/trunk/client/src/main/java/org/apache/oozie/client/OozieClient.java?rev=1180273&r1=1180272&r2=1180273&view=diff
==============================================================================
--- incubator/oozie/trunk/client/src/main/java/org/apache/oozie/client/OozieClient.java (original)
+++ incubator/oozie/trunk/client/src/main/java/org/apache/oozie/client/OozieClient.java Fri Oct  7 22:57:10 2011
@@ -117,6 +117,10 @@ public class OozieClient {
 
     public static final String FILTER_STATUS = "status";
 
+    public static final String FILTER_FREQUENCY = "frequency";
+
+    public static final String FILTER_ID = "id";
+
     public static final String CHANGE_VALUE_ENDTIME = "endtime";
 
     public static final String CHANGE_VALUE_PAUSETIME = "pausetime";

Modified: incubator/oozie/trunk/core/src/main/java/org/apache/oozie/BundleEngine.java
URL: http://svn.apache.org/viewvc/incubator/oozie/trunk/core/src/main/java/org/apache/oozie/BundleEngine.java?rev=1180273&r1=1180272&r2=1180273&view=diff
==============================================================================
--- incubator/oozie/trunk/core/src/main/java/org/apache/oozie/BundleEngine.java (original)
+++ incubator/oozie/trunk/core/src/main/java/org/apache/oozie/BundleEngine.java Fri Oct  7 22:57:10 2011
@@ -288,6 +288,7 @@ public class BundleEngine extends BaseEn
         FILTER_NAMES.add(OozieClient.FILTER_NAME);
         FILTER_NAMES.add(OozieClient.FILTER_GROUP);
         FILTER_NAMES.add(OozieClient.FILTER_STATUS);
+        FILTER_NAMES.add(OozieClient.FILTER_ID);
     }
 
     /**

Modified: incubator/oozie/trunk/core/src/main/java/org/apache/oozie/CoordinatorEngine.java
URL: http://svn.apache.org/viewvc/incubator/oozie/trunk/core/src/main/java/org/apache/oozie/CoordinatorEngine.java?rev=1180273&r1=1180272&r2=1180273&view=diff
==============================================================================
--- incubator/oozie/trunk/core/src/main/java/org/apache/oozie/CoordinatorEngine.java (original)
+++ incubator/oozie/trunk/core/src/main/java/org/apache/oozie/CoordinatorEngine.java Fri Oct  7 22:57:10 2011
@@ -477,6 +477,8 @@ public class CoordinatorEngine extends B
         FILTER_NAMES.add(OozieClient.FILTER_NAME);
         FILTER_NAMES.add(OozieClient.FILTER_GROUP);
         FILTER_NAMES.add(OozieClient.FILTER_STATUS);
+        FILTER_NAMES.add(OozieClient.FILTER_ID);
+        FILTER_NAMES.add(OozieClient.FILTER_FREQUENCY);
     }
 
     /**

Modified: incubator/oozie/trunk/core/src/main/java/org/apache/oozie/DagEngine.java
URL: http://svn.apache.org/viewvc/incubator/oozie/trunk/core/src/main/java/org/apache/oozie/DagEngine.java?rev=1180273&r1=1180272&r2=1180273&view=diff
==============================================================================
--- incubator/oozie/trunk/core/src/main/java/org/apache/oozie/DagEngine.java (original)
+++ incubator/oozie/trunk/core/src/main/java/org/apache/oozie/DagEngine.java Fri Oct  7 22:57:10 2011
@@ -457,6 +457,7 @@ public class DagEngine extends BaseEngin
         FILTER_NAMES.add(OozieClient.FILTER_NAME);
         FILTER_NAMES.add(OozieClient.FILTER_GROUP);
         FILTER_NAMES.add(OozieClient.FILTER_STATUS);
+        FILTER_NAMES.add(OozieClient.FILTER_ID);
     }
 
     /**

Modified: incubator/oozie/trunk/core/src/main/java/org/apache/oozie/executor/jpa/WorkflowsJobGetJPAExecutor.java
URL: http://svn.apache.org/viewvc/incubator/oozie/trunk/core/src/main/java/org/apache/oozie/executor/jpa/WorkflowsJobGetJPAExecutor.java?rev=1180273&r1=1180272&r2=1180273&view=diff
==============================================================================
--- incubator/oozie/trunk/core/src/main/java/org/apache/oozie/executor/jpa/WorkflowsJobGetJPAExecutor.java (original)
+++ incubator/oozie/trunk/core/src/main/java/org/apache/oozie/executor/jpa/WorkflowsJobGetJPAExecutor.java Fri Oct  7 22:57:10 2011
@@ -74,6 +74,7 @@ public class WorkflowsJobGetJPAExecutor 
         boolean isAppName = false;
         boolean isUser = false;
         boolean isEnabled = false;
+        boolean isId = false;
         int index = 0;
         for (Map.Entry<String, List<String>> entry : filter.entrySet()) {
             String colName = null;
@@ -206,6 +207,37 @@ public class WorkflowsJobGetJPAExecutor 
                             }
                         }
                     }
+                    if (entry.getKey().equals(OozieClient.FILTER_ID)) {
+                        List<String> values = filter.get(OozieClient.FILTER_ID);
+                        colName = "id";
+                        for (int i = 0; i < values.size(); i++) {
+                            colVar = "id";
+                            colVar = colVar + index;
+                            if (!isEnabled && !isId) {
+                                sb.append(seletStr).append(" where w.id IN (:id" + index);
+                                isId = true;
+                                isEnabled = true;
+                            }
+                            else {
+                                if (isEnabled && !isId) {
+                                    sb.append(" and w.id IN (:id" + index);
+                                    isId = true;
+                                }
+                                else {
+                                    if (isId) {
+                                        sb.append(", :id" + index);
+                                    }
+                                }
+                            }
+                            if (i == values.size() - 1) {
+                                sb.append(")");
+                            }
+                            index++;
+                            valArray.add(values.get(i));
+                            orArray.add(colName);
+                            colArray.add(colVar);
+                        }
+                    }
                 }
             }
         }

Modified: incubator/oozie/trunk/core/src/main/java/org/apache/oozie/store/StoreStatusFilter.java
URL: http://svn.apache.org/viewvc/incubator/oozie/trunk/core/src/main/java/org/apache/oozie/store/StoreStatusFilter.java?rev=1180273&r1=1180272&r2=1180273&view=diff
==============================================================================
--- incubator/oozie/trunk/core/src/main/java/org/apache/oozie/store/StoreStatusFilter.java (original)
+++ incubator/oozie/trunk/core/src/main/java/org/apache/oozie/store/StoreStatusFilter.java Fri Oct  7 22:57:10 2011
@@ -35,12 +35,15 @@ public class StoreStatusFilter {
 
     public static final String bundleCountStr = "Select count(w) from BundleJobBean w";
 
-    public static void filter(Map<String, List<String>> filter, List<String> orArray, List<String> colArray, List<String> valArray, StringBuilder sb, String seletStr, String countStr) {
+    public static void filter(Map<String, List<String>> filter, List<String> orArray, List<String> colArray,
+            List<String> valArray, StringBuilder sb, String seletStr, String countStr) {
         boolean isStatus = false;
         boolean isGroup = false;
         boolean isAppName = false;
         boolean isUser = false;
         boolean isEnabled = false;
+        boolean isFrequency = false;
+        boolean isId = false;
 
         int index = 0;
 
@@ -174,6 +177,68 @@ public class StoreStatusFilter {
                                 colArray.add(colVar);
                             }
                         }
+                        else if (entry.getKey().equals(OozieClient.FILTER_FREQUENCY)) {
+                            List<String> values = filter.get(OozieClient.FILTER_FREQUENCY);
+                            colName = "frequency";
+                            for (int i = 0; i < values.size(); i++) {
+                                colVar = "frequency";
+                                colVar = colVar + index;
+                                if (!isEnabled && !isFrequency) {
+                                    sb.append(seletStr).append(" where w.frequency IN (:frequency" + index);
+                                    isFrequency = true;
+                                    isEnabled = true;
+                                }
+                                else {
+                                    if (isEnabled && !isFrequency) {
+                                        sb.append(" and w.frequency IN (:frequency" + index);
+                                        isFrequency = true;
+                                    }
+                                    else {
+                                        if (isFrequency) {
+                                            sb.append(", :frequency" + index);
+                                        }
+                                    }
+                                }
+                                if (i == values.size() - 1) {
+                                    sb.append(")");
+                                }
+                                index++;
+                                valArray.add(values.get(i));
+                                orArray.add(colName);
+                                colArray.add(colVar);
+                            }
+                        }
+                        else if (entry.getKey().equals(OozieClient.FILTER_ID)) {
+                            List<String> values = filter.get(OozieClient.FILTER_ID);
+                            colName = "id";
+                            for (int i = 0; i < values.size(); i++) {
+                                colVar = "id";
+                                colVar = colVar + index;
+                                if (!isEnabled && !isId) {
+                                    sb.append(seletStr).append(" where w.id IN (:id" + index);
+                                    isId = true;
+                                    isEnabled = true;
+                                }
+                                else {
+                                    if (isEnabled && !isId) {
+                                        sb.append(" and w.id IN (:id" + index);
+                                        isId = true;
+                                    }
+                                    else {
+                                        if (isId) {
+                                            sb.append(", :id" + index);
+                                        }
+                                    }
+                                }
+                                if (i == values.size() - 1) {
+                                    sb.append(")");
+                                }
+                                index++;
+                                valArray.add(values.get(i));
+                                orArray.add(colName);
+                                colArray.add(colVar);
+                            }
+                        }
                     }
                 }
             }

Modified: incubator/oozie/trunk/core/src/test/java/org/apache/oozie/executor/jpa/TestBundleJobInfoGetJPAExecutor.java
URL: http://svn.apache.org/viewvc/incubator/oozie/trunk/core/src/test/java/org/apache/oozie/executor/jpa/TestBundleJobInfoGetJPAExecutor.java?rev=1180273&r1=1180272&r2=1180273&view=diff
==============================================================================
--- incubator/oozie/trunk/core/src/test/java/org/apache/oozie/executor/jpa/TestBundleJobInfoGetJPAExecutor.java (original)
+++ incubator/oozie/trunk/core/src/test/java/org/apache/oozie/executor/jpa/TestBundleJobInfoGetJPAExecutor.java Fri Oct  7 22:57:10 2011
@@ -22,6 +22,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.oozie.BundleJobBean;
 import org.apache.oozie.BundleJobInfo;
 import org.apache.oozie.client.Job;
 import org.apache.oozie.client.OozieClient;
@@ -47,7 +48,7 @@ public class TestBundleJobInfoGetJPAExec
     }
 
     public void testBundleJobInfoGet() throws Exception {
-        addRecordToBundleJobTable(Job.Status.PREP, false);
+        BundleJobBean bundleJob1 = addRecordToBundleJobTable(Job.Status.PREP, false);
         addRecordToBundleJobTable(Job.Status.RUNNING, false);
         _testGetJobInfoForStatus();
         _testGetJobInfoForGroup();
@@ -56,6 +57,7 @@ public class TestBundleJobInfoGetJPAExec
         _testGetJobInfoForAppName();
         _testGetJobInfoForUser();
         _testGetJobInfoForUserAndStatus();
+        _testGetJobInfoForId(bundleJob1.getId());
     }
 
     private void _testGetJobInfoForStatus() throws Exception {
@@ -132,4 +134,18 @@ public class TestBundleJobInfoGetJPAExec
         assertEquals(1, ret.getBundleJobs().size());
     }
 
+    private void _testGetJobInfoForId(String jobId) throws Exception {
+        JPAService jpaService = Services.get().get(JPAService.class);
+        assertNotNull(jpaService);
+        Map<String, List<String>> filter = new HashMap<String, List<String>>();
+        List<String> jobIdList = new ArrayList<String>();
+        jobIdList.add(jobId);
+        filter.put(OozieClient.FILTER_ID, jobIdList);
+
+        BundleJobInfoGetJPAExecutor bundleInfoGetCmd = new BundleJobInfoGetJPAExecutor(filter, 1, 20);
+        BundleJobInfo ret = jpaService.execute(bundleInfoGetCmd);
+        assertNotNull(ret);
+        assertEquals(ret.getBundleJobs().size(), 1);
+    }
+
 }

Modified: incubator/oozie/trunk/core/src/test/java/org/apache/oozie/executor/jpa/TestCoordJobInfoGetJPAExecutor.java
URL: http://svn.apache.org/viewvc/incubator/oozie/trunk/core/src/test/java/org/apache/oozie/executor/jpa/TestCoordJobInfoGetJPAExecutor.java?rev=1180273&r1=1180272&r2=1180273&view=diff
==============================================================================
--- incubator/oozie/trunk/core/src/test/java/org/apache/oozie/executor/jpa/TestCoordJobInfoGetJPAExecutor.java (original)
+++ incubator/oozie/trunk/core/src/test/java/org/apache/oozie/executor/jpa/TestCoordJobInfoGetJPAExecutor.java Fri Oct  7 22:57:10 2011
@@ -22,6 +22,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.oozie.CoordinatorJobBean;
 import org.apache.oozie.CoordinatorJobInfo;
 import org.apache.oozie.client.CoordinatorJob;
 import org.apache.oozie.client.OozieClient;
@@ -50,7 +51,7 @@ public class TestCoordJobInfoGetJPAExecu
     }
 
     public void testCoordJobGet() throws Exception {
-        addRecordToCoordJobTable(CoordinatorJob.Status.RUNNING, false, false);
+        CoordinatorJobBean coordinatorJob1 = addRecordToCoordJobTable(CoordinatorJob.Status.RUNNING, false, false);
         addRecordToCoordJobTable(CoordinatorJob.Status.KILLED, false, false);
         _testGetJobInfoForStatus();
         _testGetJobInfoForGroup();
@@ -58,6 +59,8 @@ public class TestCoordJobInfoGetJPAExecu
         _testGetJobInfoForAppName();
         _testGetJobInfoForUser();
         _testGetJobInfoForUserAndStatus();
+        _testGetJobInfoForFrequency();
+        _testGetJobInfoForId(coordinatorJob1.getId());
     }
 
     private void _testGetJobInfoForStatus() throws Exception {
@@ -134,4 +137,32 @@ public class TestCoordJobInfoGetJPAExecu
         assertEquals(ret.getCoordJobs().size(), 2);
     }
 
+    private void _testGetJobInfoForFrequency() throws Exception {
+        JPAService jpaService = Services.get().get(JPAService.class);
+        assertNotNull(jpaService);
+        Map<String, List<String>> filter = new HashMap<String, List<String>>();
+        List<String> frequencyList = new ArrayList<String>();
+        frequencyList.add("1");
+        filter.put(OozieClient.FILTER_FREQUENCY, frequencyList);
+
+        CoordJobInfoGetJPAExecutor coordInfoGetCmd = new CoordJobInfoGetJPAExecutor(filter, 1, 20);
+        CoordinatorJobInfo ret = jpaService.execute(coordInfoGetCmd);
+        assertNotNull(ret);
+        assertEquals(ret.getCoordJobs().size(), 3);
+    }
+
+    private void _testGetJobInfoForId(String jobId) throws Exception {
+        JPAService jpaService = Services.get().get(JPAService.class);
+        assertNotNull(jpaService);
+        Map<String, List<String>> filter = new HashMap<String, List<String>>();
+        List<String> jobIdList = new ArrayList<String>();
+        jobIdList.add(jobId);
+        filter.put(OozieClient.FILTER_ID, jobIdList);
+
+        CoordJobInfoGetJPAExecutor coordInfoGetCmd = new CoordJobInfoGetJPAExecutor(filter, 1, 20);
+        CoordinatorJobInfo ret = jpaService.execute(coordInfoGetCmd);
+        assertNotNull(ret);
+        assertEquals(ret.getCoordJobs().size(), 1);
+    }
+
 }

Modified: incubator/oozie/trunk/core/src/test/java/org/apache/oozie/executor/jpa/TestWorkflowsJobGetJPAExecutor.java
URL: http://svn.apache.org/viewvc/incubator/oozie/trunk/core/src/test/java/org/apache/oozie/executor/jpa/TestWorkflowsJobGetJPAExecutor.java?rev=1180273&r1=1180272&r2=1180273&view=diff
==============================================================================
--- incubator/oozie/trunk/core/src/test/java/org/apache/oozie/executor/jpa/TestWorkflowsJobGetJPAExecutor.java (original)
+++ incubator/oozie/trunk/core/src/test/java/org/apache/oozie/executor/jpa/TestWorkflowsJobGetJPAExecutor.java Fri Oct  7 22:57:10 2011
@@ -17,12 +17,14 @@
  */
 package org.apache.oozie.executor.jpa;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
 import org.apache.oozie.WorkflowJobBean;
 import org.apache.oozie.WorkflowsInfo;
+import org.apache.oozie.client.OozieClient;
 import org.apache.oozie.client.WorkflowJob;
 import org.apache.oozie.service.JPAService;
 import org.apache.oozie.service.Services;
@@ -47,9 +49,10 @@ public class TestWorkflowsJobGetJPAExecu
     }
 
     public void testWfJobsGet() throws Exception {
-        addRecordToWfJobTable(WorkflowJob.Status.PREP, WorkflowInstance.Status.PREP);
+        WorkflowJobBean workflowJob = addRecordToWfJobTable(WorkflowJob.Status.PREP, WorkflowInstance.Status.PREP);
         addRecordToWfJobTable(WorkflowJob.Status.PREP, WorkflowInstance.Status.PREP);
         _testGetWFInfos();
+        _testGetWFInfoForId(workflowJob.getId());
         System.out.println("testWfJobsGet Successful");
     }
 
@@ -70,4 +73,17 @@ public class TestWorkflowsJobGetJPAExecu
         wfBeans = wfInfo.getWorkflows();
         assertEquals(2, wfBeans.size());
     }
+
+    private void _testGetWFInfoForId(String jobId) throws Exception {
+        JPAService jpaService = Services.get().get(JPAService.class);
+        assertNotNull(jpaService);
+        Map<String, List<String>> filter = new HashMap<String, List<String>>();
+        List<String> jobIdList = new ArrayList<String>();
+        jobIdList.add(jobId);
+        filter.put(OozieClient.FILTER_ID, jobIdList);
+        WorkflowsJobGetJPAExecutor wfGetCmd = new WorkflowsJobGetJPAExecutor(filter, 1, 1);
+        WorkflowsInfo wfInfo = jpaService.execute(wfGetCmd);
+        assertNotNull(wfInfo);
+        assertEquals(wfInfo.getWorkflows().size(), 1);
+    }
 }

Modified: incubator/oozie/trunk/release-log.txt
URL: http://svn.apache.org/viewvc/incubator/oozie/trunk/release-log.txt?rev=1180273&r1=1180272&r2=1180273&view=diff
==============================================================================
--- incubator/oozie/trunk/release-log.txt (original)
+++ incubator/oozie/trunk/release-log.txt Fri Oct  7 22:57:10 2011
@@ -1,4 +1,5 @@
 -- Oozie 3.1.1 release
+OOZIE-554 New filters for all kinds of jobs
 OOZIE-556 Sort on Web Console for non-string data type
 OOZIE-41 Usability improvement (Additional options) for coordinator job analysis on Web Console
 OOZIE-568 distcp action return error code -1