You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by bi...@apache.org on 2018/02/28 15:53:07 UTC

[kylin] branch 2.3.x updated: KYLIN-3265 Add jobSearchMode as a filter condition for jobs api

This is an automated email from the ASF dual-hosted git repository.

billyliu pushed a commit to branch 2.3.x
in repository https://gitbox.apache.org/repos/asf/kylin.git


The following commit(s) were added to refs/heads/2.3.x by this push:
     new 5442644  KYLIN-3265 Add jobSearchMode as a filter condition for jobs api
5442644 is described below

commit 5442644c6387386755bf44fb86721a9c12a1e88f
Author: shaofengshi <sh...@apache.org>
AuthorDate: Sat Feb 24 11:52:03 2018 +0800

    KYLIN-3265 Add jobSearchMode as a filter condition for jobs api
    
    Signed-off-by: shaofengshi <sh...@apache.org>
---
 .../kylin/rest/controller/JobController.java       | 14 +++++--
 .../apache/kylin/rest/request/JobListRequest.java  | 10 +++++
 .../org/apache/kylin/rest/service/JobService.java  | 48 +++++++++++-----------
 .../apache/kylin/rest/service/JobServiceTest.java  | 12 +++---
 4 files changed, 50 insertions(+), 34 deletions(-)

diff --git a/server-base/src/main/java/org/apache/kylin/rest/controller/JobController.java b/server-base/src/main/java/org/apache/kylin/rest/controller/JobController.java
index ca3be99..1bf6ab6 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/controller/JobController.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/controller/JobController.java
@@ -20,7 +20,6 @@ package org.apache.kylin.rest.controller;
 
 import java.io.IOException;
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -60,7 +59,7 @@ public class JobController extends BasicController {
     @ResponseBody
     public List<JobInstance> list(JobListRequest jobRequest) {
 
-        List<JobInstance> jobInstanceList = Collections.emptyList();
+        List<JobInstance> jobInstanceList;
         List<JobStatusEnum> statusList = new ArrayList<JobStatusEnum>();
 
         if (null != jobRequest.getStatus()) {
@@ -74,9 +73,18 @@ public class JobController extends BasicController {
             timeFilter = JobTimeFilterEnum.getByCode(jobRequest.getTimeFilter());
         }
 
+        JobService.JobSearchMode jobSearchMode = JobService.JobSearchMode.CUBING_ONLY;
+        if (null != jobRequest.getJobSearchMode()) {
+            try {
+                jobSearchMode = JobService.JobSearchMode.valueOf(jobRequest.getJobSearchMode());
+            } catch (IllegalArgumentException e) {
+                logger.error("Invalid value for JobSearchMode: '" + jobRequest.getJobSearchMode() + "', skip it.", e);
+            }
+        }
+
         try {
             jobInstanceList = jobService.searchJobs(jobRequest.getCubeName(), jobRequest.getProjectName(), statusList,
-                    jobRequest.getLimit(), jobRequest.getOffset(), timeFilter);
+                    jobRequest.getLimit(), jobRequest.getOffset(), timeFilter, jobSearchMode);
         } catch (Exception e) {
             logger.error(e.getLocalizedMessage(), e);
             throw new InternalErrorException(e);
diff --git a/server-base/src/main/java/org/apache/kylin/rest/request/JobListRequest.java b/server-base/src/main/java/org/apache/kylin/rest/request/JobListRequest.java
index 51160d2..1dc4562 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/request/JobListRequest.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/request/JobListRequest.java
@@ -32,6 +32,7 @@ public class JobListRequest {
     private Integer offset;
     private Integer limit;
     private Integer timeFilter;
+    private String jobSearchMode;
 
     public JobListRequest() {
     }
@@ -83,4 +84,13 @@ public class JobListRequest {
     public void setTimeFilter(Integer timeFilter) {
         this.timeFilter = timeFilter;
     }
+
+    public String getJobSearchMode() {
+        return jobSearchMode;
+    }
+
+    public void setJobSearchMode(String jobSearchMode) {
+        this.jobSearchMode = jobSearchMode;
+    }
+
 }
diff --git a/server-base/src/main/java/org/apache/kylin/rest/service/JobService.java b/server-base/src/main/java/org/apache/kylin/rest/service/JobService.java
index 5f80b84..6afc568 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/service/JobService.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/service/JobService.java
@@ -18,18 +18,12 @@
 
 package org.apache.kylin.rest.service;
 
-import java.io.IOException;
-import java.util.Calendar;
-import java.util.Collections;
-import java.util.Date;
-import java.util.EnumSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.TimeZone;
-
-import javax.annotation.Nullable;
-
+import com.google.common.base.Function;
+import com.google.common.base.Predicate;
+import com.google.common.base.Predicates;
+import com.google.common.collect.FluentIterable;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.directory.api.util.Strings;
 import org.apache.kylin.common.KylinConfig;
@@ -78,12 +72,16 @@ import org.springframework.context.annotation.EnableAspectJAutoProxy;
 import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.stereotype.Component;
 
-import com.google.common.base.Function;
-import com.google.common.base.Predicate;
-import com.google.common.base.Predicates;
-import com.google.common.collect.FluentIterable;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Sets;
+import javax.annotation.Nullable;
+import java.io.IOException;
+import java.util.Calendar;
+import java.util.Collections;
+import java.util.Date;
+import java.util.EnumSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TimeZone;
 
 /**
  * @author ysong1
@@ -633,10 +631,10 @@ public class JobService extends BasicService implements InitializingBean {
      */
     public List<JobInstance> searchJobs(final String cubeNameSubstring, final String projectName,
             final List<JobStatusEnum> statusList, final Integer limitValue, final Integer offsetValue,
-            final JobTimeFilterEnum timeFilter) {
+            final JobTimeFilterEnum timeFilter, JobSearchMode jobSearchMode) {
         Integer limit = (null == limitValue) ? 30 : limitValue;
         Integer offset = (null == offsetValue) ? 0 : offsetValue;
-        List<JobInstance> jobs = searchJobsByCubeName(cubeNameSubstring, projectName, statusList, timeFilter);
+        List<JobInstance> jobs = searchJobsByCubeName(cubeNameSubstring, projectName, statusList, timeFilter, jobSearchMode);
 
         Collections.sort(jobs);
 
@@ -653,11 +651,11 @@ public class JobService extends BasicService implements InitializingBean {
 
     public List<JobInstance> searchJobsByCubeName(final String cubeNameSubstring, final String projectName,
             final List<JobStatusEnum> statusList, final JobTimeFilterEnum timeFilter) {
-        return searchJobsByCubeName(cubeNameSubstring, projectName, statusList, timeFilter, JobSearchMode.ALL);
+        return searchJobsByCubeName(cubeNameSubstring, projectName, statusList, timeFilter, JobSearchMode.CUBING_ONLY);
     }
 
     public List<JobInstance> searchJobsByCubeName(final String cubeNameSubstring, final String projectName,
-            final List<JobStatusEnum> statusList, final JobTimeFilterEnum timeFilter, JobSearchMode jobSearchMode) {
+            final List<JobStatusEnum> statusList, final JobTimeFilterEnum timeFilter, final JobSearchMode jobSearchMode) {
         return innerSearchJobs(cubeNameSubstring, null, projectName, statusList, timeFilter, jobSearchMode);
     }
 
@@ -675,16 +673,16 @@ public class JobService extends BasicService implements InitializingBean {
             final List<JobStatusEnum> statusList, final JobTimeFilterEnum timeFilter, JobSearchMode jobSearchMode) {
         List<JobInstance> result = Lists.newArrayList();
         switch (jobSearchMode) {
-        case CUBING_ONLY:
+        case ALL:
             result.addAll(innerSearchCubingJobs(cubeName, jobName, projectName, statusList, timeFilter));
+            result.addAll(innerSearchCheckpointJobs(cubeName, jobName, projectName, statusList, timeFilter));
             break;
         case CHECKPOINT_ONLY:
             result.addAll(innerSearchCheckpointJobs(cubeName, jobName, projectName, statusList, timeFilter));
             break;
-        case ALL:
+        case CUBING_ONLY:
         default:
             result.addAll(innerSearchCubingJobs(cubeName, jobName, projectName, statusList, timeFilter));
-            result.addAll(innerSearchCheckpointJobs(cubeName, jobName, projectName, statusList, timeFilter));
         }
         return result;
     }
diff --git a/server/src/test/java/org/apache/kylin/rest/service/JobServiceTest.java b/server/src/test/java/org/apache/kylin/rest/service/JobServiceTest.java
index 65ad7fb..a617b7c 100644
--- a/server/src/test/java/org/apache/kylin/rest/service/JobServiceTest.java
+++ b/server/src/test/java/org/apache/kylin/rest/service/JobServiceTest.java
@@ -18,11 +18,6 @@
 
 package org.apache.kylin.rest.service;
 
-import java.io.IOException;
-import java.sql.SQLException;
-import java.util.Collections;
-import java.util.List;
-
 import org.apache.kylin.engine.mr.CubingJob;
 import org.apache.kylin.job.constant.JobTimeFilterEnum;
 import org.apache.kylin.job.exception.ExecuteException;
@@ -40,6 +35,11 @@ import org.junit.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 
+import java.io.IOException;
+import java.sql.SQLException;
+import java.util.Collections;
+import java.util.List;
+
 /**
  * @author xduo
  */
@@ -60,7 +60,7 @@ public class JobServiceTest extends ServiceTestBase {
         Assert.assertNotNull(jobService.getDataModelManager());
         Assert.assertNotNull(QueryConnection.getConnection(ProjectInstance.DEFAULT_PROJECT_NAME));
         Assert.assertNull(jobService.getJobInstance("job_not_exist"));
-        Assert.assertNotNull(jobService.searchJobs(null, null, null, 0, 0, JobTimeFilterEnum.ALL));
+        Assert.assertNotNull(jobService.searchJobs(null, null, null, 0, 0, JobTimeFilterEnum.ALL, JobService.JobSearchMode.ALL));
     }
 
     @Test

-- 
To stop receiving notification emails like this one, please contact
billyliu@apache.org.