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 {