You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by li...@apache.org on 2015/09/03 03:31:20 UTC

[05/50] [abbrv] incubator-kylin git commit: KYLIN-952 User can trigger a Refresh job on an non-existing cube segment via REST API

KYLIN-952 User can trigger a Refresh job on an non-existing cube segment via REST API


Project: http://git-wip-us.apache.org/repos/asf/incubator-kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-kylin/commit/2beba36e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-kylin/tree/2beba36e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-kylin/diff/2beba36e

Branch: refs/heads/0.7
Commit: 2beba36ea9886a7ca45ac490c5340ba5729da7ad
Parents: 4ab6372
Author: shaofengshi <sh...@apache.org>
Authored: Tue Aug 18 10:06:01 2015 +0800
Committer: shaofengshi <sh...@apache.org>
Committed: Tue Aug 18 10:06:39 2015 +0800

----------------------------------------------------------------------
 .../java/org/apache/kylin/rest/service/JobService.java | 13 +++++++++++++
 1 file changed, 13 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/2beba36e/server/src/main/java/org/apache/kylin/rest/service/JobService.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/service/JobService.java b/server/src/main/java/org/apache/kylin/rest/service/JobService.java
index a0be497..ff61cc3 100644
--- a/server/src/main/java/org/apache/kylin/rest/service/JobService.java
+++ b/server/src/main/java/org/apache/kylin/rest/service/JobService.java
@@ -154,6 +154,19 @@ public class JobService extends BasicService {
             CubeSegment newSeg = getCubeManager().mergeSegments(cube, startDate, endDate, forceMergeEmptySeg);
             job = builder.mergeJob(newSeg);
         } else if (buildType == CubeBuildTypeEnum.REFRESH) {
+            List<CubeSegment> readySegs = cube.getSegment(SegmentStatusEnum.READY);
+            boolean segExists = false;
+            for (CubeSegment aSeg : readySegs) {
+                if (aSeg.getDateRangeStart() == startDate && aSeg.getDateRangeEnd() == endDate) {
+                    segExists = true;
+                    break;
+                }
+            }
+
+            if (segExists == false) {
+                throw new IllegalArgumentException("You can only refresh an existing segment, but there is no ready segment for start time:" + startDate + ", end time: " + endDate);
+            }
+
             CubeSegment refreshSeg = getCubeManager().refreshSegment(cube, startDate, endDate);
             job = builder.buildJob(refreshSeg);
         } else {