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/07/11 01:26:48 UTC
[02/50] [abbrv] incubator-kylin git commit: KYLIN-848 Couldn't resume
or discard a cube job
KYLIN-848 Couldn't resume or discard a cube job
Project: http://git-wip-us.apache.org/repos/asf/incubator-kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-kylin/commit/198be9e0
Tree: http://git-wip-us.apache.org/repos/asf/incubator-kylin/tree/198be9e0
Diff: http://git-wip-us.apache.org/repos/asf/incubator-kylin/diff/198be9e0
Branch: refs/heads/0.7
Commit: 198be9e067742b7493a912cb84e09d618f54a8fd
Parents: 6ab0903
Author: shaofengshi <sh...@apache.org>
Authored: Tue Jun 23 21:00:40 2015 +0800
Committer: shaofengshi <sh...@apache.org>
Committed: Tue Jun 23 21:00:40 2015 +0800
----------------------------------------------------------------------
.../kylin/rest/controller/JobController.java | 6 +++--
.../apache/kylin/rest/service/JobService.java | 28 +++++++++++++-------
2 files changed, 23 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/198be9e0/server/src/main/java/org/apache/kylin/rest/controller/JobController.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/controller/JobController.java b/server/src/main/java/org/apache/kylin/rest/controller/JobController.java
index 2b79155..2f2d9cf 100644
--- a/server/src/main/java/org/apache/kylin/rest/controller/JobController.java
+++ b/server/src/main/java/org/apache/kylin/rest/controller/JobController.java
@@ -169,7 +169,8 @@ public class JobController extends BasicController implements InitializingBean {
@ResponseBody
public JobInstance resume(@PathVariable String jobId) {
try {
- jobService.resumeJob(jobId);
+ final JobInstance jobInstance = jobService.getJobInstance(jobId);
+ jobService.resumeJob(jobInstance);
return jobService.getJobInstance(jobId);
} catch (Exception e) {
logger.error(e.getLocalizedMessage(), e);
@@ -188,7 +189,8 @@ public class JobController extends BasicController implements InitializingBean {
public JobInstance cancel(@PathVariable String jobId) {
try {
- return jobService.cancelJob(jobId);
+ final JobInstance jobInstance = jobService.getJobInstance(jobId);
+ return jobService.cancelJob(jobInstance);
} catch (Exception e) {
logger.error(e.getLocalizedMessage(), e);
throw new InternalErrorException(e);
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/198be9e0/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 b3aa4ee..c3a5f8c 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
@@ -44,6 +44,7 @@ import org.apache.kylin.metadata.model.SegmentStatusEnum;
import org.apache.kylin.rest.constant.Constant;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.stereotype.Component;
@@ -59,6 +60,9 @@ public class JobService extends BasicService {
@SuppressWarnings("unused")
private static final Logger logger = LoggerFactory.getLogger(JobService.class);
+ @Autowired
+ private AccessService accessService;
+
public List<JobInstance> listAllJobs(final String cubeName, final String projectName, final List<JobStatusEnum> statusList, final Integer limitValue, final Integer offsetValue) throws IOException, JobException {
Integer limit = (null == limitValue) ? 30 : limitValue;
Integer offset = (null == offsetValue) ? 0 : offsetValue;
@@ -150,7 +154,13 @@ public class JobService extends BasicService {
throw new JobException("invalid build type:" + buildType);
}
getExecutableManager().addJob(job);
- return getSingleJobInstance(job);
+ JobInstance jobInstance = getSingleJobInstance(job);
+
+ accessService.init(jobInstance, null);
+ accessService.inherit(jobInstance, cube);
+
+ return jobInstance;
+
}
public JobInstance getJobInstance(String uuid) throws IOException, JobException {
@@ -274,26 +284,26 @@ public class JobService extends BasicService {
}
@PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN + " or hasPermission(#job, 'ADMINISTRATION') or hasPermission(#job, 'OPERATION') or hasPermission(#job, 'MANAGEMENT')")
- public void resumeJob(String jobId) throws IOException, JobException {
- getExecutableManager().resumeJob(jobId);
+ public void resumeJob(JobInstance job) throws IOException, JobException {
+ getExecutableManager().resumeJob(job.getId());
}
@PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN + " or hasPermission(#job, 'ADMINISTRATION') or hasPermission(#job, 'OPERATION') or hasPermission(#job, 'MANAGEMENT')")
- public JobInstance cancelJob(String jobId) throws IOException, JobException {
+ public JobInstance cancelJob(JobInstance job) throws IOException, JobException {
// CubeInstance cube = this.getCubeManager().getCube(job.getRelatedCube());
// for (BuildCubeJob cubeJob: listAllCubingJobs(cube.getName(), null, EnumSet.of(ExecutableState.READY, ExecutableState.RUNNING))) {
// getExecutableManager().stopJob(cubeJob.getId());
// }
- final JobInstance jobInstance = getJobInstance(jobId);
- final String segmentId = jobInstance.getRelatedSegment();
- CubeInstance cubeInstance = getCubeManager().getCube(jobInstance.getRelatedCube());
+
+ final String segmentId = job.getRelatedSegment();
+ CubeInstance cubeInstance = getCubeManager().getCube(job.getRelatedCube());
final CubeSegment segment = cubeInstance.getSegmentById(segmentId);
if (segment.getStatus() == SegmentStatusEnum.NEW) {
cubeInstance.getSegments().remove(segment);
getCubeManager().updateCube(cubeInstance);
}
- getExecutableManager().discardJob(jobId);
- return jobInstance;
+ getExecutableManager().discardJob(job.getId());
+ return job;
}
}