com.vip.saturn.job.console.controller.gui.JobConfigController Maven / Gradle / Ivy
/**
* Copyright 1999-2015 dangdang.com.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package com.vip.saturn.job.console.controller.gui;
import com.vip.saturn.job.console.aop.annotation.Audit;
import com.vip.saturn.job.console.aop.annotation.AuditParam;
import com.vip.saturn.job.console.controller.SuccessResponseEntity;
import com.vip.saturn.job.console.domain.RequestResult;
import com.vip.saturn.job.console.exception.SaturnJobConsoleException;
import com.vip.saturn.job.console.service.JobService;
import com.vip.saturn.job.console.utils.PermissionKeys;
import com.vip.saturn.job.console.vo.UpdateJobConfigVo;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
* Job config related operations.
*/
@RequestMapping("/console/namespaces/{namespace:.+}/jobs/{jobName}/config")
public class JobConfigController extends AbstractGUIController {
@Resource
private JobService jobService;
@ApiResponses(value = {@ApiResponse(code = 200, message = "Success/Fail", response = RequestResult.class)})
@GetMapping
public SuccessResponseEntity getJobConfig(final HttpServletRequest request,
@AuditParam("namespace") @PathVariable String namespace,
@AuditParam("jobName") @PathVariable String jobName) throws SaturnJobConsoleException {
return new SuccessResponseEntity(jobService.getJobConfigVo(namespace, jobName));
}
@ApiResponses(value = {@ApiResponse(code = 200, message = "Success/Fail", response = RequestResult.class)})
@Audit
@PostMapping
public SuccessResponseEntity updateJobConfig(final HttpServletRequest request,
@AuditParam("namespace") @PathVariable String namespace,
@AuditParam("jobName") @PathVariable String jobName, UpdateJobConfigVo updateJobConfigVo)
throws SaturnJobConsoleException {
assertIsPermitted(PermissionKeys.jobUpdate, namespace);
jobService.updateJobConfig(namespace, updateJobConfigVo.toJobConfig(), getCurrentLoginUserName());
return new SuccessResponseEntity();
}
@ApiResponses(value = {@ApiResponse(code = 200, message = "Success/Fail", response = RequestResult.class)})
@Audit
@PostMapping("/runAtOnce")
public SuccessResponseEntity runAtOnce(@AuditParam("namespace") @PathVariable String namespace,
@AuditParam("jobName") @PathVariable String jobName) throws SaturnJobConsoleException {
assertIsPermitted(PermissionKeys.jobRunAtOnce, namespace);
jobService.runAtOnce(namespace, jobName);
return new SuccessResponseEntity();
}
@ApiResponses(value = {@ApiResponse(code = 200, message = "Success/Fail", response = RequestResult.class)})
@Audit
@PostMapping("/stopAtOnce")
public SuccessResponseEntity stopAtOnce(@AuditParam("namespace") @PathVariable String namespace,
@AuditParam("jobName") @PathVariable String jobName) throws SaturnJobConsoleException {
assertIsPermitted(PermissionKeys.jobStopAtOnce, namespace);
jobService.stopAtOnce(namespace, jobName);
return new SuccessResponseEntity();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy