Merge remote-tracking branch 'upstream/dev' into task-end
# Conflicts: # .asf.yaml # dolphinscheduler-alert/src/main/java/org/apache/dolphinscheduler/alert/utils/FuncUtils.java # dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/ExecutorController.java # dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/SchedulerController.java # dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ExecutorServiceImpl.java # dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessInstanceServiceImpl.java # dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/AlertGroupControllerTest.java # dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ExecutorService2Test.java # dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/Constants.java # dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/enums/StateEventType.java # dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/Command.java # dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/ErrorCommand.java # dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/ProcessInstance.java # dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/TaskDefinition.java # dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ScheduleMapper.xml # dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/TaskDefinitionLogMapper.xml # dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/TaskDefinitionMapper.xml # dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/ConditionsTaskExecThread.java # dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/DependentTaskExecThread.java # dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/WorkflowExecuteThread.java # dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/task/CommonTaskProcessor.java # dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/task/ConditionTaskProcessor.java # dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/task/DependentTaskProcessor.java # dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/WorkerServer.java # dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/runner/ConditionsTaskExecThread.java # dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/runner/DependentTaskExecThread.java # dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/runner/MasterBaseTaskExecThread.java # dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/runner/MasterTaskExecThread.java # dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/runner/SubProcessTaskExecThread.java # dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/runner/TaskExecuteThread.java # dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/runner/WorkerManagerThread.java # dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/python/PythonTask.java # dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/sql/SqlTask.java # dolphinscheduler-server/src/test/java/org/apache/dolphinscheduler/server/master/WorkflowExecuteThreadTest.java # dolphinscheduler-server/src/test/java/org/apache/dolphinscheduler/server/worker/processor/TaskKillProcessorTest.java # dolphinscheduler-server/src/test/java/org/apache/dolphinscheduler/server/worker/runner/TaskExecuteThreadTest.java # dolphinscheduler-server/src/test/java/org/apache/dolphinscheduler/server/worker/runner/WorkerManagerThreadTest.java # dolphinscheduler-server/src/test/java/org/apache/dolphinscheduler/server/worker/task/PythonCommandExecutorTest.java # dolphinscheduler-server/src/test/java/org/apache/dolphinscheduler/server/worker/task/http/HttpTaskTest.java # dolphinscheduler-server/src/test/java/org/apache/dolphinscheduler/server/worker/task/sql/SqlTaskTest.java # dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessService.java # dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/quartz/cron/CronUtils.java # dolphinscheduler-service/src/test/java/org/apache/dolphinscheduler/service/process/ProcessServiceTest.java # dolphinscheduler-spi/src/main/java/org/apache/dolphinscheduler/spi/DolphinSchedulerPlugin.java # dolphinscheduler-standalone-server/pom.xml # dolphinscheduler-standalone-server/src/main/java/org/apache/dolphinscheduler/server/StandaloneServer.java # dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/ShellCommandExecutor.java # dolphinscheduler-task-plugin/dolphinscheduler-task-procedure/src/main/java/org/apache/dolphinscheduler/plugin/task/procedure/ProcedureTaskChannelFactory.java # dolphinscheduler-task-plugin/dolphinscheduler-task-python/src/main/java/org/apache/dolphinscheduler/plugin/task/python/PythonCommandExecutor.java # dolphinscheduler-task-plugin/dolphinscheduler-task-shell/src/main/java/org/apache/dolphinscheduler/plugin/task/shell/ShellTask.java # dolphinscheduler-task-plugin/dolphinscheduler-task-spark/src/main/java/org/apache/dolphinscheduler/plugin/task/spark/SparkTask.java # dolphinscheduler-task-plugin/dolphinscheduler-task-sqoop/src/main/java/org/apache/dolphinscheduler/plugin/task/sqoop/SqoopTask.java # dolphinscheduler-ui/package.json # dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/dag.scss # dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/dag.vue # dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/formModel.vue # sql/dolphinscheduler_h2.sql
This commit is contained in:
commit
dbb4adf6c3
|
|
@ -36,7 +36,7 @@ github:
|
|||
- data-schedule
|
||||
enabled_merge_buttons:
|
||||
squash: true
|
||||
merge: false
|
||||
merge: true
|
||||
rebase: false
|
||||
protected_branches:
|
||||
dev:
|
||||
|
|
|
|||
|
|
@ -1 +0,0 @@
|
|||
Subproject commit 8c4d3b8ead41812bbe837dc5dfb8fa047cd2b548
|
||||
|
|
@ -37,6 +37,7 @@ config.gypi
|
|||
test/coverage
|
||||
/docs/zh_CN/介绍
|
||||
/docs/zh_CN/贡献代码.md
|
||||
dolphinscheduler-common/src/main/resources/zookeeper.properties
|
||||
dolphinscheduler-dao/src/main/resources/dao/data_source.properties
|
||||
dolphinscheduler-alert/logs/
|
||||
dolphinscheduler-alert/src/main/resources/alert.properties_bak
|
||||
|
|
|
|||
|
|
@ -18,13 +18,12 @@
|
|||
|
||||
<!-- Logback configuration. See http://logback.qos.ch/manual/index.html -->
|
||||
<configuration scan="true" scanPeriod="120 seconds"> <!--debug="true" -->
|
||||
<conversionRule conversionWord="message" converterClass="org.apache.dolphinscheduler.service.log.SensitiveDataConverter">
|
||||
</conversionRule>
|
||||
|
||||
<property name="log.base" value="logs"/>
|
||||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
<pattern>
|
||||
[%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %message%n
|
||||
[%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n
|
||||
</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
|
|
@ -39,7 +38,7 @@
|
|||
</rollingPolicy>
|
||||
<encoder>
|
||||
<pattern>
|
||||
[%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %message%n
|
||||
[%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n
|
||||
</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
|
|
|
|||
|
|
@ -18,13 +18,12 @@
|
|||
|
||||
<!-- Logback configuration. See http://logback.qos.ch/manual/index.html -->
|
||||
<configuration scan="true" scanPeriod="120 seconds"> <!--debug="true" -->
|
||||
<conversionRule conversionWord="message" converterClass="org.apache.dolphinscheduler.service.log.SensitiveDataConverter">
|
||||
</conversionRule>
|
||||
|
||||
<property name="log.base" value="logs"/>
|
||||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
<pattern>
|
||||
[%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %message%n
|
||||
[%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n
|
||||
</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
|
|
@ -43,7 +42,7 @@
|
|||
</rollingPolicy>
|
||||
<encoder>
|
||||
<pattern>
|
||||
[%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %message%n
|
||||
[%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n
|
||||
</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
|
|
|
|||
|
|
@ -18,18 +18,19 @@
|
|||
|
||||
<!-- Logback configuration. See http://logback.qos.ch/manual/index.html -->
|
||||
<configuration scan="true" scanPeriod="120 seconds"> <!--debug="true" -->
|
||||
<conversionRule conversionWord="message" converterClass="org.apache.dolphinscheduler.service.log.SensitiveDataConverter">
|
||||
</conversionRule>
|
||||
|
||||
<property name="log.base" value="logs"/>
|
||||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
<pattern>
|
||||
[%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %message%n
|
||||
[%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n
|
||||
</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<conversionRule conversionWord="messsage"
|
||||
converterClass="org.apache.dolphinscheduler.server.log.SensitiveDataConverter"/>
|
||||
<appender name="TASKLOGFILE" class="ch.qos.logback.classic.sift.SiftingAppender">
|
||||
<!-- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>INFO</level>
|
||||
|
|
@ -44,7 +45,7 @@
|
|||
<file>${log.base}/${taskAppId}.log</file>
|
||||
<encoder>
|
||||
<pattern>
|
||||
[%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %message%n
|
||||
[%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %messsage%n
|
||||
</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
|
|
@ -65,7 +66,7 @@
|
|||
</rollingPolicy>
|
||||
<encoder>
|
||||
<pattern>
|
||||
[%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %message%n
|
||||
[%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n
|
||||
</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
|
|
|
|||
|
|
@ -18,19 +18,20 @@
|
|||
|
||||
<!-- Logback configuration. See http://logback.qos.ch/manual/index.html -->
|
||||
<configuration scan="true" scanPeriod="120 seconds"> <!--debug="true" -->
|
||||
<conversionRule conversionWord="message" converterClass="org.apache.dolphinscheduler.service.log.SensitiveDataConverter">
|
||||
</conversionRule>
|
||||
|
||||
<property name="log.base" value="logs"/>
|
||||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
<pattern>
|
||||
[%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %message%n
|
||||
[%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n
|
||||
</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<!-- worker server logback config start -->
|
||||
<conversionRule conversionWord="messsage"
|
||||
converterClass="org.apache.dolphinscheduler.server.log.SensitiveDataConverter"/>
|
||||
<appender name="TASKLOGFILE" class="ch.qos.logback.classic.sift.SiftingAppender">
|
||||
<!-- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>INFO</level>
|
||||
|
|
@ -45,7 +46,7 @@
|
|||
<file>${log.base}/${taskAppId}.log</file>
|
||||
<encoder>
|
||||
<pattern>
|
||||
[%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %message%n
|
||||
[%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %messsage%n
|
||||
</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
|
|
@ -65,7 +66,7 @@
|
|||
</rollingPolicy>
|
||||
<encoder>
|
||||
<pattern>
|
||||
[%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %message%n
|
||||
[%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %messsage%n
|
||||
</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ spec:
|
|||
- name: TZ
|
||||
value: {{ .Values.timezone }}
|
||||
{{- include "dolphinscheduler.database.env_vars" . | nindent 12 }}
|
||||
{{- include "dolphinscheduler.registry.env_vars" . | nindent 12 }}
|
||||
{{- include "dolphinscheduler.zookeeper.env_vars" . | nindent 12 }}
|
||||
{{- include "dolphinscheduler.fs_s3a.env_vars" . | nindent 12 }}
|
||||
envFrom:
|
||||
- configMapRef:
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ spec:
|
|||
- name: TZ
|
||||
value: {{ .Values.timezone }}
|
||||
{{- include "dolphinscheduler.database.env_vars" . | nindent 12 }}
|
||||
{{- include "dolphinscheduler.registry.env_vars" . | nindent 12 }}
|
||||
{{- include "dolphinscheduler.zookeeper.env_vars" . | nindent 12 }}
|
||||
{{- include "dolphinscheduler.fs_s3a.env_vars" . | nindent 12 }}
|
||||
envFrom:
|
||||
- configMapRef:
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ spec:
|
|||
- name: ALERT_LISTEN_HOST
|
||||
value: {{ include "dolphinscheduler.fullname" . }}-alert
|
||||
{{- include "dolphinscheduler.database.env_vars" . | nindent 12 }}
|
||||
{{- include "dolphinscheduler.registry.env_vars" . | nindent 12 }}
|
||||
{{- include "dolphinscheduler.zookeeper.env_vars" . | nindent 12 }}
|
||||
{{- include "dolphinscheduler.fs_s3a.env_vars" . | nindent 12 }}
|
||||
envFrom:
|
||||
- configMapRef:
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ image:
|
|||
pullPolicy: "IfNotPresent"
|
||||
pullSecret: ""
|
||||
|
||||
## If not exists external database, the postgresql database will be used by default.
|
||||
## If not exists external database, by default, Dolphinscheduler's database will use it.
|
||||
postgresql:
|
||||
enabled: true
|
||||
postgresqlUsername: "root"
|
||||
|
|
@ -38,7 +38,8 @@ postgresql:
|
|||
size: "20Gi"
|
||||
storageClass: "-"
|
||||
|
||||
## If exists external database and set postgresql.enable value to false, the external database will be used.
|
||||
## If exists external database, and set postgresql.enable value to false.
|
||||
## external database will be used, otherwise Dolphinscheduler's database will be used.
|
||||
externalDatabase:
|
||||
type: "postgresql"
|
||||
driver: "org.postgresql.Driver"
|
||||
|
|
@ -49,7 +50,7 @@ externalDatabase:
|
|||
database: "dolphinscheduler"
|
||||
params: "characterEncoding=utf8"
|
||||
|
||||
## If not exists external registry, the zookeeper registry will be used by default.
|
||||
## If not exists external zookeeper, by default, Dolphinscheduler's zookeeper will use it.
|
||||
zookeeper:
|
||||
enabled: true
|
||||
fourlwCommandsWhitelist: "srvr,ruok,wchs,cons"
|
||||
|
|
@ -57,12 +58,13 @@ zookeeper:
|
|||
enabled: false
|
||||
size: "20Gi"
|
||||
storageClass: "-"
|
||||
zookeeperRoot: "/dolphinscheduler"
|
||||
|
||||
## If exists external registry and set zookeeper.enable value to false, the external registry will be used.
|
||||
externalRegistry:
|
||||
registryPluginDir: "lib/plugin/registry"
|
||||
registryPluginName: "zookeeper"
|
||||
registryServers: "127.0.0.1:2181"
|
||||
## If exists external zookeeper, and set zookeeper.enable value to false.
|
||||
## If zookeeper.enable is false, Dolphinscheduler's zookeeper will use it.
|
||||
externalZookeeper:
|
||||
zookeeperQuorum: "127.0.0.1:2181"
|
||||
zookeeperRoot: "/dolphinscheduler"
|
||||
|
||||
common:
|
||||
## Configmap
|
||||
|
|
|
|||
|
|
@ -18,13 +18,12 @@
|
|||
|
||||
<!-- Logback configuration. See http://logback.qos.ch/manual/index.html -->
|
||||
<configuration scan="true" scanPeriod="120 seconds"> <!--debug="true" -->
|
||||
<conversionRule conversionWord="message" converterClass="org.apache.dolphinscheduler.service.log.SensitiveDataConverter">
|
||||
</conversionRule>
|
||||
|
||||
<property name="log.base" value="logs"/>
|
||||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
<pattern>
|
||||
[%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %message%n
|
||||
[%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n
|
||||
</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
|
|
@ -39,13 +38,14 @@
|
|||
</rollingPolicy>
|
||||
<encoder>
|
||||
<pattern>
|
||||
[%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %message%n
|
||||
[%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n
|
||||
</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<root level="INFO">
|
||||
<appender-ref ref="STDOUT"/>
|
||||
<appender-ref ref="ALERTLOGFILE"/>
|
||||
</root>
|
||||
|
||||
|
|
|
|||
|
|
@ -35,8 +35,11 @@ import java.util.Map;
|
|||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
import org.springframework.web.bind.annotation.RequestAttribute;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
|
@ -49,12 +52,13 @@ import io.swagger.annotations.ApiImplicitParams;
|
|||
import io.swagger.annotations.ApiOperation;
|
||||
import springfox.documentation.annotations.ApiIgnore;
|
||||
|
||||
|
||||
/**
|
||||
* access token controller
|
||||
*/
|
||||
@Api(tags = "ACCESS_TOKEN_TAG")
|
||||
@RestController
|
||||
@RequestMapping("/access-token")
|
||||
@RequestMapping("/access-tokens")
|
||||
public class AccessTokenController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
|
|
@ -63,14 +67,14 @@ public class AccessTokenController extends BaseController {
|
|||
/**
|
||||
* create token
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param userId token for user id
|
||||
* @param loginUser login user
|
||||
* @param userId token for user id
|
||||
* @param expireTime expire time for the token
|
||||
* @param token token
|
||||
* @param token token
|
||||
* @return create result state code
|
||||
*/
|
||||
@ApiIgnore
|
||||
@PostMapping(value = "/create")
|
||||
@PostMapping()
|
||||
@ResponseStatus(HttpStatus.CREATED)
|
||||
@ApiException(CREATE_ACCESS_TOKEN_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
|
|
@ -86,8 +90,8 @@ public class AccessTokenController extends BaseController {
|
|||
/**
|
||||
* generate token string
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param userId token for user
|
||||
* @param loginUser login user
|
||||
* @param userId token for user
|
||||
* @param expireTime expire time
|
||||
* @return token string
|
||||
*/
|
||||
|
|
@ -107,18 +111,18 @@ public class AccessTokenController extends BaseController {
|
|||
* query access token list paging
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param pageNo page number
|
||||
* @param pageNo page number
|
||||
* @param searchVal search value
|
||||
* @param pageSize page size
|
||||
* @param pageSize page size
|
||||
* @return token list of page number and page size
|
||||
*/
|
||||
@ApiOperation(value = "queryAccessTokenList", notes = "QUERY_ACCESS_TOKEN_LIST_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "searchVal", value = "SEARCH_VAL", dataType = "String"),
|
||||
@ApiImplicitParam(name = "pageNo", value = "PAGE_NO", required = true, dataType = "Int", example = "1"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "PAGE_SIZE", required = true, dataType = "Int", example = "20")
|
||||
@ApiImplicitParam(name = "searchVal", value = "SEARCH_VAL", dataType = "String"),
|
||||
@ApiImplicitParam(name = "pageNo", value = "PAGE_NO", required = true, dataType = "Int", example = "1"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "PAGE_SIZE", required = true, dataType = "Int", example = "20")
|
||||
})
|
||||
@GetMapping(value = "/list-paging")
|
||||
@GetMapping()
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(QUERY_ACCESSTOKEN_LIST_PAGING_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
|
|
@ -140,16 +144,16 @@ public class AccessTokenController extends BaseController {
|
|||
* delete access token by id
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param id token id
|
||||
* @param id token id
|
||||
* @return delete result code
|
||||
*/
|
||||
@ApiIgnore
|
||||
@PostMapping(value = "/delete")
|
||||
@DeleteMapping(value = "/{id}")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(DELETE_ACCESS_TOKEN_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result delAccessTokenById(@RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestParam(value = "id") int id) {
|
||||
@PathVariable(value = "id") int id) {
|
||||
Map<String, Object> result = accessTokenService.delAccessTokenById(loginUser, id);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
|
@ -158,20 +162,20 @@ public class AccessTokenController extends BaseController {
|
|||
/**
|
||||
* update token
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param id token id
|
||||
* @param userId token for user
|
||||
* @param loginUser login user
|
||||
* @param id token id
|
||||
* @param userId token for user
|
||||
* @param expireTime token expire time
|
||||
* @param token token string
|
||||
* @param token token string
|
||||
* @return update result code
|
||||
*/
|
||||
@ApiIgnore
|
||||
@PostMapping(value = "/update")
|
||||
@PutMapping(value = "/{id}")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(UPDATE_ACCESS_TOKEN_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result updateToken(@RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestParam(value = "id") int id,
|
||||
@PathVariable(value = "id") int id,
|
||||
@RequestParam(value = "userId") int userId,
|
||||
@RequestParam(value = "expireTime") String expireTime,
|
||||
@RequestParam(value = "token") String token) {
|
||||
|
|
|
|||
|
|
@ -39,8 +39,11 @@ import org.slf4j.Logger;
|
|||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
import org.springframework.web.bind.annotation.RequestAttribute;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
|
@ -58,7 +61,7 @@ import springfox.documentation.annotations.ApiIgnore;
|
|||
*/
|
||||
@Api(tags = "ALERT_GROUP_TAG")
|
||||
@RestController
|
||||
@RequestMapping("alert-group")
|
||||
@RequestMapping("/alert-groups")
|
||||
public class AlertGroupController extends BaseController {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(AlertGroupController.class);
|
||||
|
|
@ -77,11 +80,11 @@ public class AlertGroupController extends BaseController {
|
|||
*/
|
||||
@ApiOperation(value = "createAlertgroup", notes = "CREATE_ALERT_GROUP_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "groupName", value = "GROUP_NAME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "description", value = "DESC", dataType = "String"),
|
||||
@ApiImplicitParam(name = "alertInstanceIds", value = "alertInstanceIds", required = true, dataType = "String")
|
||||
@ApiImplicitParam(name = "groupName", value = "GROUP_NAME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "description", value = "DESC", dataType = "String"),
|
||||
@ApiImplicitParam(name = "alertInstanceIds", value = "alertInstanceIds", required = true, dataType = "String")
|
||||
})
|
||||
@PostMapping(value = "/create")
|
||||
@PostMapping()
|
||||
@ResponseStatus(HttpStatus.CREATED)
|
||||
@ApiException(CREATE_ALERT_GROUP_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
|
|
@ -121,11 +124,11 @@ public class AlertGroupController extends BaseController {
|
|||
*/
|
||||
@ApiOperation(value = "queryAlertGroupListPaging", notes = "QUERY_ALERT_GROUP_LIST_PAGING_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "searchVal", value = "SEARCH_VAL", type = "String"),
|
||||
@ApiImplicitParam(name = "pageNo", value = "PAGE_NO", required = true, dataType = "Int", example = "1"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "PAGE_SIZE", required = true, dataType = "Int", example = "20")
|
||||
@ApiImplicitParam(name = "searchVal", value = "SEARCH_VAL", type = "String"),
|
||||
@ApiImplicitParam(name = "pageNo", value = "PAGE_NO", required = true, dataType = "Int", example = "1"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "PAGE_SIZE", required = true, dataType = "Int", example = "20")
|
||||
})
|
||||
@GetMapping(value = "/list-paging")
|
||||
@GetMapping()
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(LIST_PAGING_ALERT_GROUP_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
|
|
@ -163,6 +166,7 @@ public class AlertGroupController extends BaseController {
|
|||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* updateProcessInstance alert group
|
||||
*
|
||||
|
|
@ -174,17 +178,17 @@ public class AlertGroupController extends BaseController {
|
|||
*/
|
||||
@ApiOperation(value = "updateAlertgroup", notes = "UPDATE_ALERT_GROUP_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "id", value = "ALERT_GROUP_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "groupName", value = "GROUP_NAME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "description", value = "DESC", dataType = "String"),
|
||||
@ApiImplicitParam(name = "alertInstanceIds", value = "alertInstanceIds", required = true, dataType = "String")
|
||||
@ApiImplicitParam(name = "id", value = "ALERT_GROUP_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "groupName", value = "GROUP_NAME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "description", value = "DESC", dataType = "String"),
|
||||
@ApiImplicitParam(name = "alertInstanceIds", value = "alertInstanceIds", required = true, dataType = "String")
|
||||
})
|
||||
@PostMapping(value = "/update")
|
||||
@PutMapping(value = "/{id}")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(UPDATE_ALERT_GROUP_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result updateAlertgroup(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestParam(value = "id") int id,
|
||||
@PathVariable(value = "id") int id,
|
||||
@RequestParam(value = "groupName") String groupName,
|
||||
@RequestParam(value = "description", required = false) String description,
|
||||
@RequestParam(value = "alertInstanceIds") String alertInstanceIds) {
|
||||
|
|
@ -202,14 +206,14 @@ public class AlertGroupController extends BaseController {
|
|||
*/
|
||||
@ApiOperation(value = "delAlertgroupById", notes = "DELETE_ALERT_GROUP_BY_ID_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "id", value = "ALERT_GROUP_ID", required = true, dataType = "Int", example = "100")
|
||||
@ApiImplicitParam(name = "id", value = "ALERT_GROUP_ID", required = true, dataType = "Int", example = "100")
|
||||
})
|
||||
@PostMapping(value = "/delete")
|
||||
@DeleteMapping(value = "/{id}")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(DELETE_ALERT_GROUP_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result delAlertgroupById(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestParam(value = "id") int id) {
|
||||
@PathVariable(value = "id") int id) {
|
||||
Map<String, Object> result = alertGroupService.delAlertgroupById(loginUser, id);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
|
@ -224,9 +228,9 @@ public class AlertGroupController extends BaseController {
|
|||
*/
|
||||
@ApiOperation(value = "verifyGroupName", notes = "VERIFY_ALERT_GROUP_NAME_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "groupName", value = "GROUP_NAME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "groupName", value = "GROUP_NAME", required = true, dataType = "String"),
|
||||
})
|
||||
@GetMapping(value = "/verify-group-name")
|
||||
@GetMapping(value = "/verify-name")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result verifyGroupName(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
|
|
|
|||
|
|
@ -38,8 +38,11 @@ import org.slf4j.Logger;
|
|||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
import org.springframework.web.bind.annotation.RequestAttribute;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
|
@ -57,7 +60,7 @@ import springfox.documentation.annotations.ApiIgnore;
|
|||
*/
|
||||
@Api(tags = "ALERT_PLUGIN_INSTANCE_TAG")
|
||||
@RestController
|
||||
@RequestMapping("alert-plugin-instance")
|
||||
@RequestMapping("alert-plugin-instances")
|
||||
public class AlertPluginInstanceController extends BaseController {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(AlertPluginInstanceController.class);
|
||||
|
|
@ -77,11 +80,11 @@ public class AlertPluginInstanceController extends BaseController {
|
|||
*/
|
||||
@ApiOperation(value = "createAlertPluginInstance", notes = "CREATE_ALERT_PLUGIN_INSTANCE_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "pluginDefineId", value = "ALERT_PLUGIN_DEFINE_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "instanceName", value = "ALERT_PLUGIN_INSTANCE_NAME", required = true, dataType = "String", example = "DING TALK"),
|
||||
@ApiImplicitParam(name = "pluginInstanceParams", value = "ALERT_PLUGIN_INSTANCE_PARAMS", required = true, dataType = "String", example = "ALERT_PLUGIN_INSTANCE_PARAMS")
|
||||
@ApiImplicitParam(name = "pluginDefineId", value = "ALERT_PLUGIN_DEFINE_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "instanceName", value = "ALERT_PLUGIN_INSTANCE_NAME", required = true, dataType = "String", example = "DING TALK"),
|
||||
@ApiImplicitParam(name = "pluginInstanceParams", value = "ALERT_PLUGIN_INSTANCE_PARAMS", required = true, dataType = "String", example = "ALERT_PLUGIN_INSTANCE_PARAMS")
|
||||
})
|
||||
@PostMapping(value = "/create")
|
||||
@PostMapping()
|
||||
@ResponseStatus(HttpStatus.CREATED)
|
||||
@ApiException(CREATE_ALERT_PLUGIN_INSTANCE_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
|
|
@ -97,26 +100,26 @@ public class AlertPluginInstanceController extends BaseController {
|
|||
* updateAlertPluginInstance
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param alertPluginInstanceId alert plugin instance id
|
||||
* @param id alert plugin instance id
|
||||
* @param instanceName instance name
|
||||
* @param pluginInstanceParams instance params
|
||||
* @return result
|
||||
*/
|
||||
@ApiOperation(value = "updateAlertPluginInstance", notes = "UPDATE_ALERT_PLUGIN_INSTANCE_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "alertPluginInstanceId", value = "ALERT_PLUGIN_INSTANCE_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "instanceName", value = "ALERT_PLUGIN_INSTANCE_NAME", required = true, dataType = "String", example = "DING TALK"),
|
||||
@ApiImplicitParam(name = "pluginInstanceParams", value = "ALERT_PLUGIN_INSTANCE_PARAMS", required = true, dataType = "String", example = "ALERT_PLUGIN_INSTANCE_PARAMS")
|
||||
@ApiImplicitParam(name = "alertPluginInstanceId", value = "ALERT_PLUGIN_INSTANCE_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "instanceName", value = "ALERT_PLUGIN_INSTANCE_NAME", required = true, dataType = "String", example = "DING TALK"),
|
||||
@ApiImplicitParam(name = "pluginInstanceParams", value = "ALERT_PLUGIN_INSTANCE_PARAMS", required = true, dataType = "String", example = "ALERT_PLUGIN_INSTANCE_PARAMS")
|
||||
})
|
||||
@PostMapping(value = "/update")
|
||||
@PutMapping(value = "/{id}")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(UPDATE_ALERT_PLUGIN_INSTANCE_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result updateAlertPluginInstance(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestParam(value = "alertPluginInstanceId") int alertPluginInstanceId,
|
||||
@PathVariable(value = "id") int id,
|
||||
@RequestParam(value = "instanceName") String instanceName,
|
||||
@RequestParam(value = "pluginInstanceParams") String pluginInstanceParams) {
|
||||
Map<String, Object> result = alertPluginInstanceService.update(loginUser, alertPluginInstanceId, instanceName, pluginInstanceParams);
|
||||
Map<String, Object> result = alertPluginInstanceService.update(loginUser, id, instanceName, pluginInstanceParams);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
|
|
@ -129,14 +132,14 @@ public class AlertPluginInstanceController extends BaseController {
|
|||
*/
|
||||
@ApiOperation(value = "deleteAlertPluginInstance", notes = "DELETE_ALERT_PLUGIN_INSTANCE_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "id", value = "ALERT_PLUGIN_ID", required = true, dataType = "Int", example = "100")
|
||||
@ApiImplicitParam(name = "id", value = "ALERT_PLUGIN_ID", required = true, dataType = "Int", example = "100")
|
||||
})
|
||||
@GetMapping(value = "/delete")
|
||||
@DeleteMapping(value = "/{id}")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(DELETE_ALERT_PLUGIN_INSTANCE_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result deleteAlertPluginInstance(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestParam(value = "id") int id) {
|
||||
@PathVariable(value = "id") int id) {
|
||||
|
||||
Map<String, Object> result = alertPluginInstanceService.delete(loginUser, id);
|
||||
return returnDataList(result);
|
||||
|
|
@ -150,12 +153,12 @@ public class AlertPluginInstanceController extends BaseController {
|
|||
* @return result
|
||||
*/
|
||||
@ApiOperation(value = "getAlertPluginInstance", notes = "GET_ALERT_PLUGIN_INSTANCE_NOTES")
|
||||
@PostMapping(value = "/get")
|
||||
@GetMapping(value = "/{id}")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(GET_ALERT_PLUGIN_INSTANCE_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result getAlertPluginInstance(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestParam(value = "id") int id) {
|
||||
@PathVariable(value = "id") int id) {
|
||||
Map<String, Object> result = alertPluginInstanceService.get(loginUser, id);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
|
@ -166,8 +169,8 @@ public class AlertPluginInstanceController extends BaseController {
|
|||
* @param loginUser login user
|
||||
* @return result
|
||||
*/
|
||||
@ApiOperation(value = "queryAllAlertPluginInstance", notes = "QUERY_ALL_ALERT_PLUGIN_INSTANCE_NOTES")
|
||||
@PostMapping(value = "/queryAll")
|
||||
@ApiOperation(value = "queryAlertPluginInstanceList", notes = "QUERY_ALL_ALERT_PLUGIN_INSTANCE_NOTES")
|
||||
@GetMapping(value = "/list")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(QUERY_ALL_ALERT_PLUGIN_INSTANCE_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
|
|
@ -185,9 +188,9 @@ public class AlertPluginInstanceController extends BaseController {
|
|||
*/
|
||||
@ApiOperation(value = "verifyAlertInstanceName", notes = "VERIFY_ALERT_INSTANCE_NAME_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "alertInstanceName", value = "ALERT_INSTANCE_NAME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "alertInstanceName", value = "ALERT_INSTANCE_NAME", required = true, dataType = "String"),
|
||||
})
|
||||
@GetMapping(value = "/verify-alert-instance-name")
|
||||
@GetMapping(value = "/verify-name")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result verifyGroupName(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
|
|
@ -216,10 +219,10 @@ public class AlertPluginInstanceController extends BaseController {
|
|||
*/
|
||||
@ApiOperation(value = "queryAlertPluginInstanceListPaging", notes = "QUERY_ALERT_PLUGIN_INSTANCE_LIST_PAGING_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "pageNo", value = "PAGE_NO", required = true, dataType = "Int", example = "1"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "PAGE_SIZE", required = true, dataType = "Int", example = "20")
|
||||
@ApiImplicitParam(name = "pageNo", value = "PAGE_NO", required = true, dataType = "Int", example = "1"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "PAGE_SIZE", required = true, dataType = "Int", example = "20")
|
||||
})
|
||||
@GetMapping(value = "/list-paging")
|
||||
@GetMapping()
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(LIST_PAGING_ALERT_PLUGIN_INSTANCE_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
|
|
|
|||
|
|
@ -172,11 +172,11 @@ public class BaseController {
|
|||
* @param totalList success object list
|
||||
* @param currentPage current page
|
||||
* @param total total
|
||||
* @param totalPage total page
|
||||
* @param totalPage total page
|
||||
* @return success result code
|
||||
*/
|
||||
public Result success(Object totalList, Integer currentPage,
|
||||
Integer total, Integer totalPage) {
|
||||
Integer total, Integer totalPage) {
|
||||
Result result = new Result();
|
||||
result.setCode(Status.SUCCESS.getCode());
|
||||
result.setMsg(Status.SUCCESS.getMsg());
|
||||
|
|
@ -240,6 +240,7 @@ public class BaseController {
|
|||
|
||||
/**
|
||||
* get result
|
||||
*
|
||||
* @param msg message
|
||||
* @param list object list
|
||||
* @return result code
|
||||
|
|
|
|||
|
|
@ -63,15 +63,15 @@ public class DataAnalysisController extends BaseController {
|
|||
*
|
||||
* @param loginUser login user
|
||||
* @param startDate count start date
|
||||
* @param endDate count end date
|
||||
* @param projectId project id
|
||||
* @param endDate count end date
|
||||
* @param projectCode project code
|
||||
* @return task instance count data
|
||||
*/
|
||||
@ApiOperation(value = "countTaskState", notes = "COUNT_TASK_STATE_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "startDate", value = "START_DATE", dataType = "String"),
|
||||
@ApiImplicitParam(name = "endDate", value = "END_DATE", dataType = "String"),
|
||||
@ApiImplicitParam(name = "projectId", value = "PROJECT_ID", dataType = "Int", example = "100")
|
||||
@ApiImplicitParam(name = "startDate", value = "START_DATE", dataType = "String"),
|
||||
@ApiImplicitParam(name = "endDate", value = "END_DATE", dataType = "String"),
|
||||
@ApiImplicitParam(name = "projectCode", value = "PROJECT_CODE", dataType = "Long", example = "100")
|
||||
})
|
||||
@GetMapping(value = "/task-state-count")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
|
|
@ -80,9 +80,9 @@ public class DataAnalysisController extends BaseController {
|
|||
public Result countTaskState(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestParam(value = "startDate", required = false) String startDate,
|
||||
@RequestParam(value = "endDate", required = false) String endDate,
|
||||
@RequestParam(value = "projectId", required = false, defaultValue = "0") int projectId) {
|
||||
@RequestParam(value = "projectCode", required = false, defaultValue = "0") long projectCode) {
|
||||
|
||||
Map<String, Object> result = dataAnalysisService.countTaskStateByProject(loginUser, projectId, startDate, endDate);
|
||||
Map<String, Object> result = dataAnalysisService.countTaskStateByProject(loginUser, projectCode, startDate, endDate);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
|
|
@ -91,15 +91,15 @@ public class DataAnalysisController extends BaseController {
|
|||
*
|
||||
* @param loginUser login user
|
||||
* @param startDate start date
|
||||
* @param endDate end date
|
||||
* @param projectId project id
|
||||
* @param endDate end date
|
||||
* @param projectCode project code
|
||||
* @return process instance data
|
||||
*/
|
||||
@ApiOperation(value = "countProcessInstanceState", notes = "COUNT_PROCESS_INSTANCE_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "startDate", value = "START_DATE", dataType = "String"),
|
||||
@ApiImplicitParam(name = "endDate", value = "END_DATE", dataType = "String"),
|
||||
@ApiImplicitParam(name = "projectId", value = "PROJECT_ID", dataType = "Int", example = "100")
|
||||
@ApiImplicitParam(name = "startDate", value = "START_DATE", dataType = "String"),
|
||||
@ApiImplicitParam(name = "endDate", value = "END_DATE", dataType = "String"),
|
||||
@ApiImplicitParam(name = "projectCode", value = "PROJECT_CODE", dataType = "Long", example = "100")
|
||||
})
|
||||
@GetMapping(value = "/process-state-count")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
|
|
@ -108,9 +108,9 @@ public class DataAnalysisController extends BaseController {
|
|||
public Result countProcessInstanceState(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestParam(value = "startDate", required = false) String startDate,
|
||||
@RequestParam(value = "endDate", required = false) String endDate,
|
||||
@RequestParam(value = "projectId", required = false, defaultValue = "0") int projectId) {
|
||||
@RequestParam(value = "projectCode", required = false, defaultValue = "0") long projectCode) {
|
||||
|
||||
Map<String, Object> result = dataAnalysisService.countProcessInstanceStateByProject(loginUser, projectId, startDate, endDate);
|
||||
Map<String, Object> result = dataAnalysisService.countProcessInstanceStateByProject(loginUser, projectCode, startDate, endDate);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
|
|
@ -118,50 +118,38 @@ public class DataAnalysisController extends BaseController {
|
|||
* statistics the process definition quantities of certain person
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectId project id
|
||||
* @return definition count in project id
|
||||
* @param projectCode project code
|
||||
* @return definition count in project code
|
||||
*/
|
||||
@ApiOperation(value = "countDefinitionByUser", notes = "COUNT_PROCESS_DEFINITION_BY_USER_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "projectId", value = "PROJECT_ID", dataType = "Int", example = "100")
|
||||
@ApiImplicitParam(name = "projectCode", value = "PROJECT_CODE", dataType = "Long", example = "100")
|
||||
})
|
||||
@GetMapping(value = "/define-user-count")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(COUNT_PROCESS_DEFINITION_USER_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result countDefinitionByUser(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestParam(value = "projectId", required = false, defaultValue = "0") int projectId) {
|
||||
@RequestParam(value = "projectCode", required = false, defaultValue = "0") long projectCode) {
|
||||
|
||||
Map<String, Object> result = dataAnalysisService.countDefinitionByUser(loginUser, projectId);
|
||||
Map<String, Object> result = dataAnalysisService.countDefinitionByUser(loginUser, projectCode);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* statistical command status data
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param startDate start date
|
||||
* @param endDate end date
|
||||
* @param projectId project id
|
||||
* @return command state in project id
|
||||
* @return command state of user projects
|
||||
*/
|
||||
@ApiOperation(value = "countCommandState", notes = "COUNT_COMMAND_STATE_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "startDate", value = "START_DATE", dataType = "String"),
|
||||
@ApiImplicitParam(name = "endDate", value = "END_DATE", dataType = "String"),
|
||||
@ApiImplicitParam(name = "projectId", value = "PROJECT_ID", dataType = "Int", example = "100")
|
||||
})
|
||||
@GetMapping(value = "/command-state-count")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(COMMAND_STATE_COUNT_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result countCommandState(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestParam(value = "startDate", required = false) String startDate,
|
||||
@RequestParam(value = "endDate", required = false) String endDate,
|
||||
@RequestParam(value = "projectId", required = false, defaultValue = "0") int projectId) {
|
||||
public Result countCommandState(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser) {
|
||||
|
||||
Map<String, Object> result = dataAnalysisService.countCommandState(loginUser, projectId, startDate, endDate);
|
||||
Map<String, Object> result = dataAnalysisService.countCommandState(loginUser);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
|
|
@ -169,21 +157,16 @@ public class DataAnalysisController extends BaseController {
|
|||
* queue count
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectId project id
|
||||
* @return queue state count
|
||||
*/
|
||||
@ApiOperation(value = "countQueueState", notes = "COUNT_QUEUE_STATE_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "projectId", value = "PROJECT_ID", dataType = "Int", example = "100")
|
||||
})
|
||||
@GetMapping(value = "/queue-count")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(QUEUE_COUNT_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result countQueueState(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestParam(value = "projectId", required = false, defaultValue = "0") int projectId) {
|
||||
public Result countQueueState(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser) {
|
||||
|
||||
Map<String, Object> result = dataAnalysisService.countQueueState(loginUser, projectId);
|
||||
Map<String, Object> result = dataAnalysisService.countQueueState(loginUser);
|
||||
return returnDataList(result);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -46,8 +46,11 @@ import java.util.Map;
|
|||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
import org.springframework.web.bind.annotation.RequestAttribute;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
|
@ -81,7 +84,7 @@ public class DataSourceController extends BaseController {
|
|||
* @return create result code
|
||||
*/
|
||||
@ApiOperation(value = "createDataSource", notes = "CREATE_DATA_SOURCE_NOTES")
|
||||
@PostMapping(value = "/create")
|
||||
@PostMapping()
|
||||
@ResponseStatus(HttpStatus.CREATED)
|
||||
@ApiException(CREATE_DATASOURCE_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
|
|
@ -96,19 +99,23 @@ public class DataSourceController extends BaseController {
|
|||
* updateProcessInstance data source
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param id datasource id
|
||||
* @param dataSourceParam datasource param
|
||||
* @return update result code
|
||||
*/
|
||||
@ApiOperation(value = "updateDataSource", notes = "UPDATE_DATA_SOURCE_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "dataSourceParam", value = "DATA_SOURCE_PARAM", required = true, dataType = "BaseDataSourceParamDTO"),
|
||||
@ApiImplicitParam(name = "id", value = "DATA_SOURCE_ID", required = true, dataType = "Integer"),
|
||||
@ApiImplicitParam(name = "dataSourceParam", value = "DATA_SOURCE_PARAM", required = true, dataType = "BaseDataSourceParamDTO")
|
||||
})
|
||||
@PostMapping(value = "/update")
|
||||
@PutMapping(value = "/{id}")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(UPDATE_DATASOURCE_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result updateDataSource(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@PathVariable(value = "id") Integer id,
|
||||
@RequestBody BaseDataSourceParamDTO dataSourceParam) {
|
||||
dataSourceParam.setId(id);
|
||||
return dataSourceService.updateDataSource(dataSourceParam.getId(), loginUser, dataSourceParam);
|
||||
}
|
||||
|
||||
|
|
@ -116,20 +123,20 @@ public class DataSourceController extends BaseController {
|
|||
* query data source detail
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param id datasource id
|
||||
* @param id datasource id
|
||||
* @return data source detail
|
||||
*/
|
||||
@ApiOperation(value = "queryDataSource", notes = "QUERY_DATA_SOURCE_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "id", value = "DATA_SOURCE_ID", required = true, dataType = "Int", example = "100")
|
||||
@ApiImplicitParam(name = "id", value = "DATA_SOURCE_ID", required = true, dataType = "Int", example = "100")
|
||||
|
||||
})
|
||||
@PostMapping(value = "/update-ui")
|
||||
@GetMapping(value = "/{id}")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(QUERY_DATASOURCE_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result queryDataSource(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestParam("id") int id) {
|
||||
@PathVariable("id") int id) {
|
||||
|
||||
Map<String, Object> result = dataSourceService.queryDataSource(id);
|
||||
return returnDataList(result);
|
||||
|
|
@ -139,12 +146,12 @@ public class DataSourceController extends BaseController {
|
|||
* query datasource by type
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param type data source type
|
||||
* @param type data source type
|
||||
* @return data source list page
|
||||
*/
|
||||
@ApiOperation(value = "queryDataSourceList", notes = "QUERY_DATA_SOURCE_LIST_BY_TYPE_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "type", value = "DB_TYPE", required = true, dataType = "DbType")
|
||||
@ApiImplicitParam(name = "type", value = "DB_TYPE", required = true, dataType = "DbType")
|
||||
})
|
||||
@GetMapping(value = "/list")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
|
|
@ -161,17 +168,17 @@ public class DataSourceController extends BaseController {
|
|||
*
|
||||
* @param loginUser login user
|
||||
* @param searchVal search value
|
||||
* @param pageNo page number
|
||||
* @param pageSize page size
|
||||
* @param pageNo page number
|
||||
* @param pageSize page size
|
||||
* @return data source list page
|
||||
*/
|
||||
@ApiOperation(value = "queryDataSourceListPaging", notes = "QUERY_DATA_SOURCE_LIST_PAGING_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "searchVal", value = "SEARCH_VAL", dataType = "String"),
|
||||
@ApiImplicitParam(name = "pageNo", value = "PAGE_NO", required = true, dataType = "Int", example = "1"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "PAGE_SIZE", required = true, dataType = "Int", example = "20")
|
||||
@ApiImplicitParam(name = "searchVal", value = "SEARCH_VAL", dataType = "String"),
|
||||
@ApiImplicitParam(name = "pageNo", value = "PAGE_NO", required = true, dataType = "Int", example = "1"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "PAGE_SIZE", required = true, dataType = "Int", example = "20")
|
||||
})
|
||||
@GetMapping(value = "/list-paging")
|
||||
@GetMapping()
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(QUERY_DATASOURCE_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
|
|
@ -191,12 +198,12 @@ public class DataSourceController extends BaseController {
|
|||
* connect datasource
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param dataSourceParam datasource param
|
||||
* @param dataSourceParam datasource param
|
||||
* @return connect result code
|
||||
*/
|
||||
@ApiOperation(value = "connectDataSource", notes = "CONNECT_DATA_SOURCE_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "dataSourceParam", value = "DATA_SOURCE_PARAM", required = true, dataType = "BaseDataSourceParamDTO"),
|
||||
@ApiImplicitParam(name = "dataSourceParam", value = "DATA_SOURCE_PARAM", required = true, dataType = "BaseDataSourceParamDTO")
|
||||
})
|
||||
@PostMapping(value = "/connect")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
|
|
@ -213,19 +220,19 @@ public class DataSourceController extends BaseController {
|
|||
* connection test
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param id data source id
|
||||
* @param id data source id
|
||||
* @return connect result code
|
||||
*/
|
||||
@ApiOperation(value = "connectionTest", notes = "CONNECT_DATA_SOURCE_TEST_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "id", value = "DATA_SOURCE_ID", required = true, dataType = "Int", example = "100")
|
||||
@ApiImplicitParam(name = "id", value = "DATA_SOURCE_ID", required = true, dataType = "Int", example = "100")
|
||||
})
|
||||
@GetMapping(value = "/connect-by-id")
|
||||
@GetMapping(value = "/{id}/connect-test")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(CONNECTION_TEST_FAILURE)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result connectionTest(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestParam("id") int id) {
|
||||
@PathVariable("id") int id) {
|
||||
return dataSourceService.connectionTest(id);
|
||||
}
|
||||
|
||||
|
|
@ -233,19 +240,19 @@ public class DataSourceController extends BaseController {
|
|||
* delete datasource by id
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param id datasource id
|
||||
* @param id datasource id
|
||||
* @return delete result
|
||||
*/
|
||||
@ApiOperation(value = "deleteDataSource", notes = "DELETE_DATA_SOURCE_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "id", value = "DATA_SOURCE_ID", required = true, dataType = "Int", example = "100")
|
||||
@ApiImplicitParam(name = "id", value = "DATA_SOURCE_ID", required = true, dataType = "Int", example = "100")
|
||||
})
|
||||
@GetMapping(value = "/delete")
|
||||
@DeleteMapping(value = "/{id}")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(DELETE_DATA_SOURCE_FAILURE)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result delete(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestParam("id") int id) {
|
||||
@PathVariable("id") int id) {
|
||||
return dataSourceService.delete(loginUser, id);
|
||||
}
|
||||
|
||||
|
|
@ -253,12 +260,12 @@ public class DataSourceController extends BaseController {
|
|||
* verify datasource name
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param name data source name
|
||||
* @param name data source name
|
||||
* @return true if data source name not exists.otherwise return false
|
||||
*/
|
||||
@ApiOperation(value = "verifyDataSourceName", notes = "VERIFY_DATA_SOURCE_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "name", value = "DATA_SOURCE_NAME", required = true, dataType = "String")
|
||||
@ApiImplicitParam(name = "name", value = "DATA_SOURCE_NAME", required = true, dataType = "String")
|
||||
})
|
||||
@GetMapping(value = "/verify-name")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
|
|
@ -275,14 +282,14 @@ public class DataSourceController extends BaseController {
|
|||
* unauthorized datasource
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param userId user id
|
||||
* @param userId user id
|
||||
* @return unauthed data source result code
|
||||
*/
|
||||
@ApiOperation(value = "unauthDatasource", notes = "UNAUTHORIZED_DATA_SOURCE_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "userId", value = "USER_ID", required = true, dataType = "Int", example = "100")
|
||||
@ApiImplicitParam(name = "userId", value = "USER_ID", required = true, dataType = "Int", example = "100")
|
||||
})
|
||||
@GetMapping(value = "/unauth-datasource")
|
||||
@GetMapping(value = "/unauth")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(UNAUTHORIZED_DATASOURCE)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
|
|
@ -298,14 +305,14 @@ public class DataSourceController extends BaseController {
|
|||
* authorized datasource
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param userId user id
|
||||
* @param userId user id
|
||||
* @return authorized result code
|
||||
*/
|
||||
@ApiOperation(value = "authedDatasource", notes = "AUTHORIZED_DATA_SOURCE_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "userId", value = "USER_ID", required = true, dataType = "Int", example = "100")
|
||||
@ApiImplicitParam(name = "userId", value = "USER_ID", required = true, dataType = "Int", example = "100")
|
||||
})
|
||||
@GetMapping(value = "/authed-datasource")
|
||||
@GetMapping(value = "/authed")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(AUTHORIZED_DATA_SOURCE)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ import springfox.documentation.annotations.ApiIgnore;
|
|||
*/
|
||||
@Api(tags = "EXECUTOR_TAG")
|
||||
@RestController
|
||||
@RequestMapping("projects/{projectName}/executors")
|
||||
@RequestMapping("projects/{projectCode}/executors")
|
||||
public class ExecutorController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
|
|
@ -70,8 +70,8 @@ public class ExecutorController extends BaseController {
|
|||
* execute process instance
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param processDefinitionId process definition id
|
||||
* @param projectCode project code
|
||||
* @param processDefinitionCode process definition code
|
||||
* @param scheduleTime schedule time
|
||||
* @param failureStrategy failure strategy
|
||||
* @param startNodeList start nodes list
|
||||
|
|
@ -88,7 +88,7 @@ public class ExecutorController extends BaseController {
|
|||
*/
|
||||
@ApiOperation(value = "startProcessInstance", notes = "RUN_PROCESS_INSTANCE_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "processDefinitionId", value = "PROCESS_DEFINITION_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "processDefinitionCode", value = "PROCESS_DEFINITION_CODE", required = true, dataType = "Long", example = "100"),
|
||||
@ApiImplicitParam(name = "scheduleTime", value = "SCHEDULE_TIME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "failureStrategy", value = "FAILURE_STRATEGY", required = true, dataType = "FailureStrategy"),
|
||||
@ApiImplicitParam(name = "startNodeList", value = "START_NODE_LIST", dataType = "String"),
|
||||
|
|
@ -108,8 +108,8 @@ public class ExecutorController extends BaseController {
|
|||
@ApiException(START_PROCESS_INSTANCE_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result startProcessInstance(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@RequestParam(value = "processDefinitionId") int processDefinitionId,
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@RequestParam(value = "processDefinitionCode") long processDefinitionCode,
|
||||
@RequestParam(value = "scheduleTime", required = false) String scheduleTime,
|
||||
@RequestParam(value = "failureStrategy", required = true) FailureStrategy failureStrategy,
|
||||
@RequestParam(value = "startNodeList", required = false) String startNodeList,
|
||||
|
|
@ -123,8 +123,7 @@ public class ExecutorController extends BaseController {
|
|||
@RequestParam(value = "environmentCode", required = false, defaultValue = "-1") Long environmentCode,
|
||||
@RequestParam(value = "timeout", required = false) Integer timeout,
|
||||
@RequestParam(value = "startParams", required = false) String startParams,
|
||||
@RequestParam(value = "expectedParallelismNumber", required = false) Integer expectedParallelismNumber
|
||||
) {
|
||||
@RequestParam(value = "expectedParallelismNumber", required = false) Integer expectedParallelismNumber) {
|
||||
|
||||
if (timeout == null) {
|
||||
timeout = Constants.MAX_TASK_TIMEOUT;
|
||||
|
|
@ -133,18 +132,16 @@ public class ExecutorController extends BaseController {
|
|||
if (startParams != null) {
|
||||
startParamMap = JSONUtils.toMap(startParams);
|
||||
}
|
||||
Map<String, Object> result = execService.execProcessInstance(loginUser, projectName, processDefinitionId, scheduleTime, execType, failureStrategy,
|
||||
startNodeList, taskDependType, warningType,
|
||||
warningGroupId, runMode, processInstancePriority, workerGroup, environmentCode, timeout, startParamMap, expectedParallelismNumber);
|
||||
Map<String, Object> result = execService.execProcessInstance(loginUser, projectCode, processDefinitionCode, scheduleTime, execType, failureStrategy,
|
||||
startNodeList, taskDependType, warningType, warningGroupId, runMode, processInstancePriority, workerGroup, environmentCode,timeout, startParamMap, expectedParallelismNumber);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* do action to process instance:pause, stop, repeat, recover from pause, recover from stop
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param processInstanceId process instance id
|
||||
* @param executeType execute type
|
||||
* @return execute result code
|
||||
|
|
@ -159,32 +156,30 @@ public class ExecutorController extends BaseController {
|
|||
@ApiException(EXECUTE_PROCESS_INSTANCE_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result execute(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@RequestParam("processInstanceId") Integer processInstanceId,
|
||||
@RequestParam("executeType") ExecuteType executeType
|
||||
) {
|
||||
Map<String, Object> result = execService.execute(loginUser, projectName, processInstanceId, executeType);
|
||||
Map<String, Object> result = execService.execute(loginUser, projectCode, processInstanceId, executeType);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* check process definition and all of the son process definitions is on line.
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param processDefinitionId process definition id
|
||||
* @param processDefinitionCode process definition code
|
||||
* @return check result code
|
||||
*/
|
||||
@ApiOperation(value = "startCheckProcessDefinition", notes = "START_CHECK_PROCESS_DEFINITION_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "processDefinitionId", value = "PROCESS_DEFINITION_ID", required = true, dataType = "Int", example = "100")
|
||||
@ApiImplicitParam(name = "processDefinitionCode", value = "PROCESS_DEFINITION_CODE", required = true, dataType = "Long", example = "100")
|
||||
})
|
||||
@PostMapping(value = "/start-check")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(CHECK_PROCESS_DEFINITION_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result startCheckProcessDefinition(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestParam(value = "processDefinitionId") int processDefinitionId) {
|
||||
Map<String, Object> result = execService.startCheckByProcessDefinedId(processDefinitionId);
|
||||
public Result startCheckProcessDefinition(@RequestParam(value = "processDefinitionCode") long processDefinitionCode) {
|
||||
Map<String, Object> result = execService.startCheckByProcessDefinedCode(processDefinitionCode);
|
||||
return returnDataList(result);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -59,26 +59,26 @@ public class LoggerController extends BaseController {
|
|||
/**
|
||||
* query task log
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param loginUser login user
|
||||
* @param taskInstanceId task instance id
|
||||
* @param skipNum skip number
|
||||
* @param limit limit
|
||||
* @param skipNum skip number
|
||||
* @param limit limit
|
||||
* @return task log content
|
||||
*/
|
||||
@ApiOperation(value = "queryLog", notes = "QUERY_TASK_INSTANCE_LOG_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "taskInstanceId", value = "TASK_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "skipLineNum", value = "SKIP_LINE_NUM", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "limit", value = "LIMIT", required = true, dataType = "Int", example = "100")
|
||||
@ApiImplicitParam(name = "taskInstanceId", value = "TASK_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "skipLineNum", value = "SKIP_LINE_NUM", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "limit", value = "LIMIT", required = true, dataType = "Int", example = "100")
|
||||
})
|
||||
@GetMapping(value = "/detail")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(QUERY_TASK_INSTANCE_LOG_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result<String> queryLog(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestParam(value = "taskInstanceId") int taskInstanceId,
|
||||
@RequestParam(value = "skipLineNum") int skipNum,
|
||||
@RequestParam(value = "limit") int limit) {
|
||||
@RequestParam(value = "taskInstanceId") int taskInstanceId,
|
||||
@RequestParam(value = "skipLineNum") int skipNum,
|
||||
@RequestParam(value = "limit") int limit) {
|
||||
return loggerService.queryLog(taskInstanceId, skipNum, limit);
|
||||
}
|
||||
|
||||
|
|
@ -86,13 +86,13 @@ public class LoggerController extends BaseController {
|
|||
/**
|
||||
* download log file
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param loginUser login user
|
||||
* @param taskInstanceId task instance id
|
||||
* @return log file content
|
||||
*/
|
||||
@ApiOperation(value = "downloadTaskLog", notes = "DOWNLOAD_TASK_INSTANCE_LOG_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "taskInstanceId", value = "TASK_ID", required = true, dataType = "Int", example = "100")
|
||||
@ApiImplicitParam(name = "taskInstanceId", value = "TASK_ID", required = true, dataType = "Int", example = "100")
|
||||
})
|
||||
@GetMapping(value = "/download-log")
|
||||
@ResponseBody
|
||||
|
|
@ -102,9 +102,9 @@ public class LoggerController extends BaseController {
|
|||
@RequestParam(value = "taskInstanceId") int taskInstanceId) {
|
||||
byte[] logBytes = loggerService.getLogBytes(taskInstanceId);
|
||||
return ResponseEntity
|
||||
.ok()
|
||||
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + System.currentTimeMillis() + ".log" + "\"")
|
||||
.body(logBytes);
|
||||
.ok()
|
||||
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + System.currentTimeMillis() + ".log" + "\"")
|
||||
.body(logBytes);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -70,16 +70,16 @@ public class LoginController extends BaseController {
|
|||
/**
|
||||
* login
|
||||
*
|
||||
* @param userName user name
|
||||
* @param userName user name
|
||||
* @param userPassword user password
|
||||
* @param request request
|
||||
* @param response response
|
||||
* @param request request
|
||||
* @param response response
|
||||
* @return login result
|
||||
*/
|
||||
@ApiOperation(value = "login", notes = "LOGIN_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "userName", value = "USER_NAME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "userPassword", value = "USER_PASSWORD", required = true, dataType = "String")
|
||||
@ApiImplicitParam(name = "userName", value = "USER_NAME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "userPassword", value = "USER_PASSWORD", required = true, dataType = "String")
|
||||
})
|
||||
@PostMapping(value = "/login")
|
||||
@ApiException(USER_LOGIN_FAILURE)
|
||||
|
|
@ -91,7 +91,7 @@ public class LoginController extends BaseController {
|
|||
//user name check
|
||||
if (StringUtils.isEmpty(userName)) {
|
||||
return error(Status.USER_NAME_NULL.getCode(),
|
||||
Status.USER_NAME_NULL.getMsg());
|
||||
Status.USER_NAME_NULL.getMsg());
|
||||
}
|
||||
|
||||
// user ip check
|
||||
|
|
@ -102,7 +102,7 @@ public class LoginController extends BaseController {
|
|||
|
||||
// verify username and password
|
||||
Result<Map<String, String>> result = authenticator.authenticate(userName, userPassword, ip);
|
||||
if (result.isFailed()) {
|
||||
if (result.getCode() != Status.SUCCESS.getCode()) {
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
@ -121,7 +121,7 @@ public class LoginController extends BaseController {
|
|||
* sign out
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param request request
|
||||
* @param request request
|
||||
* @return sign out result
|
||||
*/
|
||||
@ApiOperation(value = "signOut", notes = "SIGNOUT_NOTES")
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ public class MonitorController extends BaseController {
|
|||
* @return master list
|
||||
*/
|
||||
@ApiOperation(value = "listMaster", notes = "MASTER_LIST_NOTES")
|
||||
@GetMapping(value = "/master/list")
|
||||
@GetMapping(value = "/masters")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(LIST_MASTERS_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
|
|
@ -77,7 +77,7 @@ public class MonitorController extends BaseController {
|
|||
* @return worker information list
|
||||
*/
|
||||
@ApiOperation(value = "listWorker", notes = "WORKER_LIST_NOTES")
|
||||
@GetMapping(value = "/worker/list")
|
||||
@GetMapping(value = "/workers")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(LIST_WORKERS_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
|
|
@ -93,7 +93,7 @@ public class MonitorController extends BaseController {
|
|||
* @return data base state
|
||||
*/
|
||||
@ApiOperation(value = "queryDatabaseState", notes = "QUERY_DATABASE_STATE_NOTES")
|
||||
@GetMapping(value = "/database")
|
||||
@GetMapping(value = "/databases")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(QUERY_DATABASE_STATE_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
|
|
@ -109,7 +109,7 @@ public class MonitorController extends BaseController {
|
|||
* @return zookeeper information list
|
||||
*/
|
||||
@ApiOperation(value = "queryZookeeperState", notes = "QUERY_ZOOKEEPER_STATE_NOTES")
|
||||
@GetMapping(value = "/zookeeper/list")
|
||||
@GetMapping(value = "/zookeepers")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(QUERY_ZOOKEEPER_STATE_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
|
|
|
|||
|
|
@ -18,13 +18,14 @@
|
|||
package org.apache.dolphinscheduler.api.controller;
|
||||
|
||||
import static org.apache.dolphinscheduler.api.enums.Status.BATCH_COPY_PROCESS_DEFINITION_ERROR;
|
||||
import static org.apache.dolphinscheduler.api.enums.Status.BATCH_DELETE_PROCESS_DEFINE_BY_IDS_ERROR;
|
||||
import static org.apache.dolphinscheduler.api.enums.Status.BATCH_DELETE_PROCESS_DEFINE_BY_CODES_ERROR;
|
||||
import static org.apache.dolphinscheduler.api.enums.Status.BATCH_MOVE_PROCESS_DEFINITION_ERROR;
|
||||
import static org.apache.dolphinscheduler.api.enums.Status.CREATE_PROCESS_DEFINITION;
|
||||
import static org.apache.dolphinscheduler.api.enums.Status.DELETE_PROCESS_DEFINE_BY_ID_ERROR;
|
||||
import static org.apache.dolphinscheduler.api.enums.Status.CREATE_PROCESS_DEFINITION_ERROR;
|
||||
import static org.apache.dolphinscheduler.api.enums.Status.DELETE_PROCESS_DEFINE_BY_CODE_ERROR;
|
||||
import static org.apache.dolphinscheduler.api.enums.Status.DELETE_PROCESS_DEFINITION_VERSION_ERROR;
|
||||
import static org.apache.dolphinscheduler.api.enums.Status.ENCAPSULATION_TREEVIEW_STRUCTURE_ERROR;
|
||||
import static org.apache.dolphinscheduler.api.enums.Status.GET_TASKS_LIST_BY_PROCESS_DEFINITION_ID_ERROR;
|
||||
import static org.apache.dolphinscheduler.api.enums.Status.IMPORT_PROCESS_DEFINE_ERROR;
|
||||
import static org.apache.dolphinscheduler.api.enums.Status.QUERY_DATAIL_OF_PROCESS_DEFINITION_ERROR;
|
||||
import static org.apache.dolphinscheduler.api.enums.Status.QUERY_PROCESS_DEFINITION_LIST;
|
||||
import static org.apache.dolphinscheduler.api.enums.Status.QUERY_PROCESS_DEFINITION_LIST_PAGING_ERROR;
|
||||
|
|
@ -57,17 +58,18 @@ import org.slf4j.Logger;
|
|||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
import org.springframework.web.bind.annotation.RequestAttribute;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import org.springframework.web.bind.annotation.ResponseStatus;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
|
|
@ -81,7 +83,7 @@ import springfox.documentation.annotations.ApiIgnore;
|
|||
*/
|
||||
@Api(tags = "PROCESS_DEFINITION_TAG")
|
||||
@RestController
|
||||
@RequestMapping("projects/{projectName}/process")
|
||||
@RequestMapping("projects/{projectCode}/process-definition")
|
||||
public class ProcessDefinitionController extends BaseController {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(ProcessDefinitionController.class);
|
||||
|
|
@ -93,36 +95,39 @@ public class ProcessDefinitionController extends BaseController {
|
|||
* create process definition
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param name process definition name
|
||||
* @param json process definition json
|
||||
* @param description description
|
||||
* @param globalParams globalParams
|
||||
* @param locations locations for nodes
|
||||
* @param connects connects for nodes
|
||||
* @param timeout timeout
|
||||
* @param tenantCode tenantCode
|
||||
* @param taskRelationJson relation json for nodes
|
||||
* @param taskDefinitionJson taskDefinitionJson
|
||||
* @return create result code
|
||||
*/
|
||||
@ApiOperation(value = "createProcessDefinition", notes = "CREATE_PROCESS_DEFINITION_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "name", value = "PROCESS_DEFINITION_NAME", required = true, type = "String"),
|
||||
@ApiImplicitParam(name = "processDefinitionJson", value = "PROCESS_DEFINITION_JSON", required = true, type = "String"),
|
||||
@ApiImplicitParam(name = "locations", value = "PROCESS_DEFINITION_LOCATIONS", required = true, type = "String"),
|
||||
@ApiImplicitParam(name = "connects", value = "PROCESS_DEFINITION_CONNECTS", required = true, type = "String"),
|
||||
@ApiImplicitParam(name = "description", value = "PROCESS_DEFINITION_DESC", required = false, type = "String"),
|
||||
@ApiImplicitParam(name = "name", value = "PROCESS_DEFINITION_NAME", required = true, type = "String"),
|
||||
@ApiImplicitParam(name = "locations", value = "PROCESS_DEFINITION_LOCATIONS", required = true, type = "String"),
|
||||
@ApiImplicitParam(name = "description", value = "PROCESS_DEFINITION_DESC", required = false, type = "String")
|
||||
})
|
||||
@PostMapping(value = "/save")
|
||||
@PostMapping()
|
||||
@ResponseStatus(HttpStatus.CREATED)
|
||||
@ApiException(CREATE_PROCESS_DEFINITION)
|
||||
@ApiException(CREATE_PROCESS_DEFINITION_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result createProcessDefinition(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@RequestParam(value = "name", required = true) String name,
|
||||
@RequestParam(value = "processDefinitionJson", required = true) String json,
|
||||
@RequestParam(value = "locations", required = true) String locations,
|
||||
@RequestParam(value = "connects", required = true) String connects,
|
||||
@RequestParam(value = "description", required = false) String description) throws JsonProcessingException {
|
||||
|
||||
Map<String, Object> result = processDefinitionService.createProcessDefinition(loginUser, projectName, name, json,
|
||||
description, locations, connects);
|
||||
@RequestParam(value = "description", required = false) String description,
|
||||
@RequestParam(value = "globalParams", required = false, defaultValue = "[]") String globalParams,
|
||||
@RequestParam(value = "locations", required = false) String locations,
|
||||
@RequestParam(value = "timeout", required = false, defaultValue = "0") int timeout,
|
||||
@RequestParam(value = "tenantCode", required = true) String tenantCode,
|
||||
@RequestParam(value = "taskRelationJson", required = true) String taskRelationJson,
|
||||
@RequestParam(value = "taskDefinitionJson", required = true) String taskDefinitionJson) {
|
||||
Map<String, Object> result = processDefinitionService.createProcessDefinition(loginUser, projectCode, name, description, globalParams,
|
||||
locations, timeout, tenantCode, taskRelationJson, taskDefinitionJson);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
|
|
@ -130,74 +135,72 @@ public class ProcessDefinitionController extends BaseController {
|
|||
* copy process definition
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param processDefinitionIds process definition ids
|
||||
* @param targetProjectId target project id
|
||||
* @param projectCode project code
|
||||
* @param codes process definition codes
|
||||
* @param targetProjectCode target project code
|
||||
* @return copy result code
|
||||
*/
|
||||
@ApiOperation(value = "copyProcessDefinition", notes = "COPY_PROCESS_DEFINITION_NOTES")
|
||||
@ApiOperation(value = "batchCopyByCodes", notes = "COPY_PROCESS_DEFINITION_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "processDefinitionIds", value = "PROCESS_DEFINITION_IDS", required = true, dataType = "String", example = "3,4"),
|
||||
@ApiImplicitParam(name = "targetProjectId", value = "TARGET_PROJECT_ID", required = true, dataType = "Int", example = "10")
|
||||
@ApiImplicitParam(name = "codes", value = "PROCESS_DEFINITION_CODES", required = true, dataType = "String", example = "3,4"),
|
||||
@ApiImplicitParam(name = "targetProjectCode", value = "TARGET_PROJECT_CODE", required = true, dataType = "Long", example = "123")
|
||||
})
|
||||
@PostMapping(value = "/copy")
|
||||
@PostMapping(value = "/batch-copy")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(BATCH_COPY_PROCESS_DEFINITION_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result copyProcessDefinition(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@RequestParam(value = "processDefinitionIds", required = true) String processDefinitionIds,
|
||||
@RequestParam(value = "targetProjectId", required = true) int targetProjectId) {
|
||||
return returnDataList(
|
||||
processDefinitionService.batchCopyProcessDefinition(loginUser, projectName, processDefinitionIds, targetProjectId));
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@RequestParam(value = "codes", required = true) String codes,
|
||||
@RequestParam(value = "targetProjectCode", required = true) long targetProjectCode) {
|
||||
return returnDataList(processDefinitionService.batchCopyProcessDefinition(loginUser, projectCode, codes, targetProjectCode));
|
||||
}
|
||||
|
||||
/**
|
||||
* move process definition
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param processDefinitionIds process definition ids
|
||||
* @param targetProjectId target project id
|
||||
* @param projectCode project code
|
||||
* @param codes process definition codes
|
||||
* @param targetProjectCode target project code
|
||||
* @return move result code
|
||||
*/
|
||||
@ApiOperation(value = "moveProcessDefinition", notes = "MOVE_PROCESS_DEFINITION_NOTES")
|
||||
@ApiOperation(value = "batchMoveByCodes", notes = "MOVE_PROCESS_DEFINITION_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "processDefinitionIds", value = "PROCESS_DEFINITION_IDS", required = true, dataType = "String", example = "3,4"),
|
||||
@ApiImplicitParam(name = "targetProjectId", value = "TARGET_PROJECT_ID", required = true, dataType = "Int", example = "10")
|
||||
@ApiImplicitParam(name = "codes", value = "PROCESS_DEFINITION_CODES", required = true, dataType = "String", example = "3,4"),
|
||||
@ApiImplicitParam(name = "targetProjectCode", value = "TARGET_PROJECT_CODE", required = true, dataType = "Long", example = "123")
|
||||
})
|
||||
@PostMapping(value = "/move")
|
||||
@PostMapping(value = "/batch-move")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(BATCH_MOVE_PROCESS_DEFINITION_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result moveProcessDefinition(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@RequestParam(value = "processDefinitionIds", required = true) String processDefinitionIds,
|
||||
@RequestParam(value = "targetProjectId", required = true) int targetProjectId) {
|
||||
return returnDataList(
|
||||
processDefinitionService.batchMoveProcessDefinition(loginUser, projectName, processDefinitionIds, targetProjectId));
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@RequestParam(value = "codes", required = true) String codes,
|
||||
@RequestParam(value = "targetProjectCode", required = true) long targetProjectCode) {
|
||||
return returnDataList(processDefinitionService.batchMoveProcessDefinition(loginUser, projectCode, codes, targetProjectCode));
|
||||
}
|
||||
|
||||
/**
|
||||
* verify process definition name unique
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param name name
|
||||
* @return true if process definition name not exists, otherwise false
|
||||
*/
|
||||
@ApiOperation(value = "verify-name", notes = "VERIFY_PROCESS_DEFINITION_NAME_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "name", value = "PROCESS_DEFINITION_NAME", required = true, type = "String")
|
||||
@ApiImplicitParam(name = "name", value = "PROCESS_DEFINITION_NAME", required = true, type = "String")
|
||||
})
|
||||
@GetMapping(value = "/verify-name")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(VERIFY_PROCESS_DEFINITION_NAME_UNIQUE_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result verifyProcessDefinitionName(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@RequestParam(value = "name", required = true) String name) {
|
||||
Map<String, Object> result = processDefinitionService.verifyProcessDefinitionName(loginUser, projectName, name);
|
||||
Map<String, Object> result = processDefinitionService.verifyProcessDefinitionName(loginUser, projectCode, name);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
|
|
@ -205,42 +208,45 @@ public class ProcessDefinitionController extends BaseController {
|
|||
* update process definition
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param name process definition name
|
||||
* @param id process definition id
|
||||
* @param processDefinitionJson process definition json
|
||||
* @param code process definition code
|
||||
* @param description description
|
||||
* @param globalParams globalParams
|
||||
* @param locations locations for nodes
|
||||
* @param connects connects for nodes
|
||||
* @param timeout timeout
|
||||
* @param tenantCode tenantCode
|
||||
* @param taskRelationJson relation json for nodes
|
||||
* @param taskDefinitionJson taskDefinitionJson
|
||||
* @return update result code
|
||||
*/
|
||||
|
||||
@ApiOperation(value = "updateProcessDefinition", notes = "UPDATE_PROCESS_DEFINITION_NOTES")
|
||||
@ApiOperation(value = "update", notes = "UPDATE_PROCESS_DEFINITION_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "name", value = "PROCESS_DEFINITION_NAME", required = true, type = "String"),
|
||||
@ApiImplicitParam(name = "id", value = "PROCESS_DEFINITION_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "processDefinitionJson", value = "PROCESS_DEFINITION_JSON", required = true, type = "String"),
|
||||
@ApiImplicitParam(name = "locations", value = "PROCESS_DEFINITION_LOCATIONS", required = true, type = "String"),
|
||||
@ApiImplicitParam(name = "connects", value = "PROCESS_DEFINITION_CONNECTS", required = true, type = "String"),
|
||||
@ApiImplicitParam(name = "description", value = "PROCESS_DEFINITION_DESC", required = false, type = "String"),
|
||||
@ApiImplicitParam(name = "releaseState", value = "RELEASE_PROCESS_DEFINITION_NOTES", required = false, dataType = "ReleaseState")
|
||||
@ApiImplicitParam(name = "name", value = "PROCESS_DEFINITION_NAME", required = true, type = "String"),
|
||||
@ApiImplicitParam(name = "code", value = "PROCESS_DEFINITION_CODE", required = true, dataType = "Long", example = "123456789"),
|
||||
@ApiImplicitParam(name = "locations", value = "PROCESS_DEFINITION_LOCATIONS", required = true, type = "String"),
|
||||
@ApiImplicitParam(name = "description", value = "PROCESS_DEFINITION_DESC", required = false, type = "String"),
|
||||
@ApiImplicitParam(name = "releaseState", value = "RELEASE_PROCESS_DEFINITION_NOTES", required = false, dataType = "ReleaseState")
|
||||
})
|
||||
@PostMapping(value = "/update")
|
||||
@PutMapping(value = "/{code}")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(UPDATE_PROCESS_DEFINITION_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result updateProcessDefinition(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@RequestParam(value = "name", required = true) String name,
|
||||
@RequestParam(value = "id", required = true) int id,
|
||||
@RequestParam(value = "processDefinitionJson", required = true) String processDefinitionJson,
|
||||
@RequestParam(value = "locations", required = false) String locations,
|
||||
@RequestParam(value = "connects", required = false) String connects,
|
||||
@PathVariable(value = "code", required = true) long code,
|
||||
@RequestParam(value = "description", required = false) String description,
|
||||
@RequestParam(value = "globalParams", required = false, defaultValue = "[]") String globalParams,
|
||||
@RequestParam(value = "locations", required = false) String locations,
|
||||
@RequestParam(value = "timeout", required = false, defaultValue = "0") int timeout,
|
||||
@RequestParam(value = "tenantCode", required = true) String tenantCode,
|
||||
@RequestParam(value = "taskRelationJson", required = true) String taskRelationJson,
|
||||
@RequestParam(value = "taskDefinitionJson", required = true) String taskDefinitionJson,
|
||||
@RequestParam(value = "releaseState", required = false, defaultValue = "OFFLINE") ReleaseState releaseState) {
|
||||
|
||||
Map<String, Object> result = processDefinitionService.updateProcessDefinition(loginUser, projectName, id, name,
|
||||
processDefinitionJson, description, locations, connects);
|
||||
Map<String, Object> result = processDefinitionService.updateProcessDefinition(loginUser, projectCode, name, code, description, globalParams,
|
||||
locations, timeout, tenantCode, taskRelationJson, taskDefinitionJson);
|
||||
// If the update fails, the result will be returned directly
|
||||
if (result.get(Constants.STATUS) != Status.SUCCESS) {
|
||||
return returnDataList(result);
|
||||
|
|
@ -248,7 +254,7 @@ public class ProcessDefinitionController extends BaseController {
|
|||
|
||||
// Judge whether to go online after editing,0 means offline, 1 means online
|
||||
if (releaseState == ReleaseState.ONLINE) {
|
||||
result = processDefinitionService.releaseProcessDefinition(loginUser, projectName, id, releaseState);
|
||||
result = processDefinitionService.releaseProcessDefinition(loginUser, projectCode, code, releaseState);
|
||||
}
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
|
@ -257,33 +263,33 @@ public class ProcessDefinitionController extends BaseController {
|
|||
* query process definition version paging list info
|
||||
*
|
||||
* @param loginUser login user info
|
||||
* @param projectName the process definition project name
|
||||
* @param projectCode project code
|
||||
* @param pageNo the process definition version list current page number
|
||||
* @param pageSize the process definition version list page size
|
||||
* @param processDefinitionCode the process definition code
|
||||
* @param code the process definition code
|
||||
* @return the process definition version list
|
||||
*/
|
||||
@ApiOperation(value = "queryProcessDefinitionVersions", notes = "QUERY_PROCESS_DEFINITION_VERSIONS_NOTES")
|
||||
@ApiOperation(value = "queryVersions", notes = "QUERY_PROCESS_DEFINITION_VERSIONS_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "pageNo", value = "PAGE_NO", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "PAGE_SIZE", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "processDefinitionCode", value = "PROCESS_DEFINITION_CODE", required = true, dataType = "Long", example = "1")
|
||||
@ApiImplicitParam(name = "pageNo", value = "PAGE_NO", required = true, dataType = "Int", example = "1"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "PAGE_SIZE", required = true, dataType = "Int", example = "10"),
|
||||
@ApiImplicitParam(name = "code", value = "PROCESS_DEFINITION_CODE", required = true, dataType = "Long", example = "1")
|
||||
})
|
||||
@GetMapping(value = "/versions")
|
||||
@GetMapping(value = "/{code}/versions")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(QUERY_PROCESS_DEFINITION_VERSIONS_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result queryProcessDefinitionVersions(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@RequestParam(value = "pageNo") int pageNo,
|
||||
@RequestParam(value = "pageSize") int pageSize,
|
||||
@RequestParam(value = "processDefinitionCode") long processDefinitionCode) {
|
||||
@PathVariable(value = "code") long code) {
|
||||
|
||||
Result result = checkPageParams(pageNo, pageSize);
|
||||
if (!result.checkResult()) {
|
||||
return result;
|
||||
}
|
||||
result = processDefinitionService.queryProcessDefinitionVersions(loginUser
|
||||
, projectName, pageNo, pageSize, processDefinitionCode);
|
||||
result = processDefinitionService.queryProcessDefinitionVersions(loginUser, projectCode, pageNo, pageSize, code);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
|
@ -292,52 +298,51 @@ public class ProcessDefinitionController extends BaseController {
|
|||
* switch certain process definition version
|
||||
*
|
||||
* @param loginUser login user info
|
||||
* @param projectName the process definition project name
|
||||
* @param processDefinitionId the process definition id
|
||||
* @param projectCode project code
|
||||
* @param code the process definition code
|
||||
* @param version the version user want to switch
|
||||
* @return switch version result code
|
||||
*/
|
||||
@ApiOperation(value = "switchProcessDefinitionVersion", notes = "SWITCH_PROCESS_DEFINITION_VERSION_NOTES")
|
||||
@ApiOperation(value = "switchVersion", notes = "SWITCH_PROCESS_DEFINITION_VERSION_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "processDefinitionId", value = "PROCESS_DEFINITION_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "version", value = "VERSION", required = true, dataType = "Long", example = "100")
|
||||
@ApiImplicitParam(name = "code", value = "PROCESS_DEFINITION_CODE", required = true, dataType = "Long", example = "1"),
|
||||
@ApiImplicitParam(name = "version", value = "VERSION", required = true, dataType = "Int", example = "100")
|
||||
})
|
||||
@GetMapping(value = "/version/switch")
|
||||
@GetMapping(value = "/{code}/versions/{version}")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(SWITCH_PROCESS_DEFINITION_VERSION_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result switchProcessDefinitionVersion(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@RequestParam(value = "processDefinitionId") int processDefinitionId,
|
||||
@RequestParam(value = "version") long version) {
|
||||
Map<String, Object> result = processDefinitionService.switchProcessDefinitionVersion(loginUser, projectName
|
||||
, processDefinitionId, version);
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@PathVariable(value = "code") long code,
|
||||
@PathVariable(value = "version") int version) {
|
||||
Map<String, Object> result = processDefinitionService.switchProcessDefinitionVersion(loginUser, projectCode, code, version);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* delete the certain process definition version by version and process definition id
|
||||
* delete the certain process definition version by version and process definition code
|
||||
*
|
||||
* @param loginUser login user info
|
||||
* @param projectName the process definition project name
|
||||
* @param processDefinitionId process definition id
|
||||
* @param projectCode project code
|
||||
* @param code the process definition code
|
||||
* @param version the process definition version user want to delete
|
||||
* @return delete version result code
|
||||
*/
|
||||
@ApiOperation(value = "deleteProcessDefinitionVersion", notes = "DELETE_PROCESS_DEFINITION_VERSION_NOTES")
|
||||
@ApiOperation(value = "deleteVersion", notes = "DELETE_PROCESS_DEFINITION_VERSION_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "processDefinitionId", value = "PROCESS_DEFINITION_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "version", value = "VERSION", required = true, dataType = "Long", example = "100")
|
||||
@ApiImplicitParam(name = "code", value = "PROCESS_DEFINITION_CODE", required = true, dataType = "Long", example = "1"),
|
||||
@ApiImplicitParam(name = "version", value = "VERSION", required = true, dataType = "Int", example = "100")
|
||||
})
|
||||
@GetMapping(value = "/version/delete")
|
||||
@DeleteMapping(value = "/{code}/versions/{version}")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(DELETE_PROCESS_DEFINITION_VERSION_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result deleteProcessDefinitionVersion(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@RequestParam(value = "processDefinitionId") int processDefinitionId,
|
||||
@RequestParam(value = "version") long version) {
|
||||
Map<String, Object> result = processDefinitionService.deleteByProcessDefinitionIdAndVersion(loginUser, projectName, processDefinitionId, version);
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@PathVariable(value = "code") long code,
|
||||
@PathVariable(value = "version") int version) {
|
||||
Map<String, Object> result = processDefinitionService.deleteProcessDefinitionVersion(loginUser, projectCode, code, version);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
|
|
@ -345,51 +350,49 @@ public class ProcessDefinitionController extends BaseController {
|
|||
* release process definition
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param processId process definition id
|
||||
* @param projectCode project code
|
||||
* @param code process definition code
|
||||
* @param releaseState release state
|
||||
* @return release result code
|
||||
*/
|
||||
@ApiOperation(value = "releaseProcessDefinition", notes = "RELEASE_PROCESS_DEFINITION_NOTES")
|
||||
@ApiOperation(value = "release", notes = "RELEASE_PROCESS_DEFINITION_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "name", value = "PROCESS_DEFINITION_NAME", required = true, type = "String"),
|
||||
@ApiImplicitParam(name = "processId", value = "PROCESS_DEFINITION_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "releaseState", value = "PROCESS_DEFINITION_CONNECTS", required = true, dataType = "ReleaseState"),
|
||||
@ApiImplicitParam(name = "name", value = "PROCESS_DEFINITION_NAME", required = true, type = "String"),
|
||||
@ApiImplicitParam(name = "code", value = "PROCESS_DEFINITION_CODE", required = true, dataType = "Long", example = "123456789"),
|
||||
@ApiImplicitParam(name = "releaseState", value = "PROCESS_DEFINITION_RELEASE", required = true, dataType = "ReleaseState"),
|
||||
})
|
||||
@PostMapping(value = "/release")
|
||||
@PostMapping(value = "/{code}/release")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(RELEASE_PROCESS_DEFINITION_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result releaseProcessDefinition(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@RequestParam(value = "processId", required = true) int processId,
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@PathVariable(value = "code", required = true) long code,
|
||||
@RequestParam(value = "releaseState", required = true) ReleaseState releaseState) {
|
||||
|
||||
Map<String, Object> result = processDefinitionService.releaseProcessDefinition(loginUser, projectName, processId, releaseState);
|
||||
Map<String, Object> result = processDefinitionService.releaseProcessDefinition(loginUser, projectCode, code, releaseState);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* query detail of process definition by id
|
||||
* query detail of process definition by code
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param processId process definition id
|
||||
* @param projectCode project code
|
||||
* @param code process definition code
|
||||
* @return process definition detail
|
||||
*/
|
||||
@ApiOperation(value = "queryProcessDefinitionById", notes = "QUERY_PROCESS_DEFINITION_BY_ID_NOTES")
|
||||
@ApiOperation(value = "queryProcessDefinitionByCode", notes = "QUERY_PROCESS_DEFINITION_BY_CODE_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "processId", value = "PROCESS_DEFINITION_ID", required = true, dataType = "Int", example = "100")
|
||||
@ApiImplicitParam(name = "code", value = "PROCESS_DEFINITION_CODE", required = true, dataType = "Long", example = "123456789")
|
||||
})
|
||||
@GetMapping(value = "/select-by-id")
|
||||
@GetMapping(value = "/{code}")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(QUERY_DATAIL_OF_PROCESS_DEFINITION_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result queryProcessDefinitionById(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@RequestParam("processId") Integer processId
|
||||
) {
|
||||
Map<String, Object> result = processDefinitionService.queryProcessDefinitionById(loginUser, projectName, processId);
|
||||
public Result queryProcessDefinitionByCode(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@PathVariable(value = "code", required = true) long code) {
|
||||
Map<String, Object> result = processDefinitionService.queryProcessDefinitionByCode(loginUser, projectCode, code);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
|
|
@ -397,23 +400,22 @@ public class ProcessDefinitionController extends BaseController {
|
|||
* query detail of process definition by name
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param processDefinitionName process definition name
|
||||
* @param projectCode project code
|
||||
* @param name process definition name
|
||||
* @return process definition detail
|
||||
*/
|
||||
@ApiOperation(value = "queryProcessDefinitionByName", notes = "QUERY_PROCESS_DEFINITION_BY_NAME_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "processDefinitionName", value = "PROCESS_DEFINITION_ID", required = true, dataType = "String")
|
||||
@ApiImplicitParam(name = "name", value = "PROCESS_DEFINITION_NAME", required = true, dataType = "String")
|
||||
})
|
||||
@GetMapping(value = "/select-by-name")
|
||||
@GetMapping(value = "/query-by-name")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(QUERY_DATAIL_OF_PROCESS_DEFINITION_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result<ProcessDefinition> queryProcessDefinitionByName(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@RequestParam("processDefinitionName") String processDefinitionName
|
||||
) {
|
||||
Map<String, Object> result = processDefinitionService.queryProcessDefinitionByName(loginUser, projectName, processDefinitionName);
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@RequestParam("name") String name) {
|
||||
Map<String, Object> result = processDefinitionService.queryProcessDefinitionByName(loginUser, projectCode, name);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
|
|
@ -421,18 +423,17 @@ public class ProcessDefinitionController extends BaseController {
|
|||
* query Process definition list
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @return process definition list
|
||||
*/
|
||||
@ApiOperation(value = "queryProcessDefinitionList", notes = "QUERY_PROCESS_DEFINITION_LIST_NOTES")
|
||||
@ApiOperation(value = "queryList", notes = "QUERY_PROCESS_DEFINITION_LIST_NOTES")
|
||||
@GetMapping(value = "/list")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(QUERY_PROCESS_DEFINITION_LIST)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result queryProcessDefinitionList(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName
|
||||
) {
|
||||
Map<String, Object> result = processDefinitionService.queryProcessDefinitionList(loginUser, projectName);
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode) {
|
||||
Map<String, Object> result = processDefinitionService.queryProcessDefinitionList(loginUser, projectCode);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
|
|
@ -440,62 +441,62 @@ public class ProcessDefinitionController extends BaseController {
|
|||
* query process definition list paging
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param searchVal search value
|
||||
* @param pageNo page number
|
||||
* @param pageSize page size
|
||||
* @param userId user id
|
||||
* @return process definition page
|
||||
*/
|
||||
@ApiOperation(value = "queryProcessDefinitionListPaging", notes = "QUERY_PROCESS_DEFINITION_LIST_PAGING_NOTES")
|
||||
@ApiOperation(value = "queryListPaging", notes = "QUERY_PROCESS_DEFINITION_LIST_PAGING_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "pageNo", value = "PAGE_NO", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "searchVal", value = "SEARCH_VAL", required = false, type = "String"),
|
||||
@ApiImplicitParam(name = "userId", value = "USER_ID", required = false, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "PAGE_SIZE", required = true, dataType = "Int", example = "100")
|
||||
@ApiImplicitParam(name = "searchVal", value = "SEARCH_VAL", required = false, type = "String"),
|
||||
@ApiImplicitParam(name = "userId", value = "USER_ID", required = false, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "pageNo", value = "PAGE_NO", required = true, dataType = "Int", example = "1"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "PAGE_SIZE", required = true, dataType = "Int", example = "10")
|
||||
})
|
||||
@GetMapping(value = "/list-paging")
|
||||
@GetMapping()
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(QUERY_PROCESS_DEFINITION_LIST_PAGING_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result queryProcessDefinitionListPaging(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@RequestParam("pageNo") Integer pageNo,
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@RequestParam(value = "searchVal", required = false) String searchVal,
|
||||
@RequestParam(value = "userId", required = false, defaultValue = "0") Integer userId,
|
||||
@RequestParam("pageNo") Integer pageNo,
|
||||
@RequestParam("pageSize") Integer pageSize) {
|
||||
Result result = checkPageParams(pageNo, pageSize);
|
||||
if (!result.checkResult()) {
|
||||
return result;
|
||||
}
|
||||
searchVal = ParameterUtils.handleEscapes(searchVal);
|
||||
return processDefinitionService.queryProcessDefinitionListPaging(loginUser, projectName, searchVal, pageNo, pageSize, userId);
|
||||
|
||||
return processDefinitionService.queryProcessDefinitionListPaging(loginUser, projectCode, searchVal, userId, pageNo, pageSize);
|
||||
}
|
||||
|
||||
/**
|
||||
* encapsulation tree view structure
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param id process definition id
|
||||
* @param projectCode project code
|
||||
* @param code process definition code
|
||||
* @param limit limit
|
||||
* @return tree view json data
|
||||
*/
|
||||
@ApiOperation(value = "viewTree", notes = "VIEW_TREE_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "processId", value = "PROCESS_DEFINITION_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "limit", value = "LIMIT", required = true, dataType = "Int", example = "100")
|
||||
@ApiImplicitParam(name = "code", value = "PROCESS_DEFINITION_CODE", required = true, dataType = "Long", example = "100"),
|
||||
@ApiImplicitParam(name = "limit", value = "LIMIT", required = true, dataType = "Int", example = "100")
|
||||
})
|
||||
@GetMapping(value = "/view-tree")
|
||||
@GetMapping(value = "/{code}/view-tree")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(ENCAPSULATION_TREEVIEW_STRUCTURE_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result viewTree(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@RequestParam("processId") Integer id,
|
||||
@RequestParam("limit") Integer limit) throws Exception {
|
||||
Map<String, Object> result = processDefinitionService.viewTree(id, limit);
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@PathVariable("code") long code,
|
||||
@RequestParam("limit") Integer limit) {
|
||||
Map<String, Object> result = processDefinitionService.viewTree(code, limit);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
|
|
@ -503,167 +504,177 @@ public class ProcessDefinitionController extends BaseController {
|
|||
* get tasks list by process definition code
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param processDefinitionCode process definition code
|
||||
* @param projectCode project code
|
||||
* @param code process definition code
|
||||
* @return task list
|
||||
*/
|
||||
@ApiOperation(value = "getNodeListByDefinitionCode", notes = "GET_NODE_LIST_BY_DEFINITION_CODE_NOTES")
|
||||
@ApiOperation(value = "getTasksByDefinitionCode", notes = "GET_TASK_LIST_BY_DEFINITION_CODE_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "processDefinitionCode", value = "PROCESS_DEFINITION_CODE", required = true, dataType = "Long", example = "100")
|
||||
@ApiImplicitParam(name = "code", value = "PROCESS_DEFINITION_CODE", required = true, dataType = "Long", example = "100")
|
||||
})
|
||||
@GetMapping(value = "gen-task-list")
|
||||
@GetMapping(value = "/{code}/tasks")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(GET_TASKS_LIST_BY_PROCESS_DEFINITION_ID_ERROR)
|
||||
public Result getNodeListByDefinitionCode(
|
||||
@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@RequestParam("processDefinitionCode") Long processDefinitionCode) throws Exception {
|
||||
logger.info("query task node name list by definitionCode, login user:{}, project name:{}, code : {}",
|
||||
loginUser.getUserName(), projectName, processDefinitionCode);
|
||||
Map<String, Object> result = processDefinitionService.getTaskNodeListByDefinitionCode(processDefinitionCode);
|
||||
public Result getNodeListByDefinitionCode(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@PathVariable("code") long code) {
|
||||
Map<String, Object> result = processDefinitionService.getTaskNodeListByDefinitionCode(loginUser, projectCode, code);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* get tasks list by process definition code list
|
||||
* get tasks list map by process definition multiple code
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param processDefinitionCodeList process definition code list
|
||||
* @param projectCode project code
|
||||
* @param codes process definition codes
|
||||
* @return node list data
|
||||
*/
|
||||
@ApiOperation(value = "getNodeListByDefinitionCodeList", notes = "GET_NODE_LIST_BY_DEFINITION_CODE_NOTES")
|
||||
@ApiOperation(value = "getTaskListByDefinitionCodes", notes = "GET_TASK_LIST_BY_DEFINITION_CODE_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "processDefinitionCodeList", value = "PROCESS_DEFINITION_CODE_LIST", required = true, type = "String")
|
||||
@ApiImplicitParam(name = "processDefinitionCodes", value = "PROCESS_DEFINITION_CODES", required = true, type = "String", example = "100,200,300")
|
||||
})
|
||||
@GetMapping(value = "get-task-list")
|
||||
@GetMapping(value = "/batch-query-tasks")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(GET_TASKS_LIST_BY_PROCESS_DEFINITION_ID_ERROR)
|
||||
public Result getNodeListByDefinitionCodeList(
|
||||
@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@RequestParam("processDefinitionCodeList") String processDefinitionCodeList) {
|
||||
Map<String, Object> result = processDefinitionService.getTaskNodeListByDefinitionCodeList(processDefinitionCodeList);
|
||||
public Result getNodeListMapByDefinitionCodes(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@RequestParam("codes") String codes) {
|
||||
Map<String, Object> result = processDefinitionService.getNodeListMapByDefinitionCodes(loginUser, projectCode, codes);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* delete process definition by id
|
||||
* delete process definition by code
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param processDefinitionId process definition id
|
||||
* @param projectCode project code
|
||||
* @param code process definition code
|
||||
* @return delete result code
|
||||
*/
|
||||
@ApiOperation(value = "deleteProcessDefinitionById", notes = "DELETE_PROCESS_DEFINITION_BY_ID_NOTES")
|
||||
@ApiOperation(value = "deleteByCode", notes = "DELETE_PROCESS_DEFINITION_BY_ID_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "processDefinitionId", value = "PROCESS_DEFINITION_ID", required = true, dataType = "Int", example = "100")
|
||||
@ApiImplicitParam(name = "code", value = "PROCESS_DEFINITION_CODE", dataType = "Int", example = "100")
|
||||
})
|
||||
@GetMapping(value = "/delete")
|
||||
@DeleteMapping(value = "/{code}")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(DELETE_PROCESS_DEFINE_BY_ID_ERROR)
|
||||
@ApiException(DELETE_PROCESS_DEFINE_BY_CODE_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result deleteProcessDefinitionById(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@RequestParam("processDefinitionId") Integer processDefinitionId
|
||||
) {
|
||||
Map<String, Object> result = processDefinitionService.deleteProcessDefinitionById(loginUser, projectName, processDefinitionId);
|
||||
public Result deleteProcessDefinitionByCode(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@PathVariable("code") long code) {
|
||||
Map<String, Object> result = processDefinitionService.deleteProcessDefinitionByCode(loginUser, projectCode, code);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* batch delete process definition by ids
|
||||
* batch delete process definition by codes
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param processDefinitionIds process definition id list
|
||||
* @param projectCode project code
|
||||
* @param codes process definition code list
|
||||
* @return delete result code
|
||||
*/
|
||||
@ApiOperation(value = "batchDeleteProcessDefinitionByIds", notes = "BATCH_DELETE_PROCESS_DEFINITION_BY_IDS_NOTES")
|
||||
@ApiOperation(value = "batchDeleteByCodes", notes = "BATCH_DELETE_PROCESS_DEFINITION_BY_IDS_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "processDefinitionIds", value = "PROCESS_DEFINITION_IDS", required = true, type = "String")
|
||||
@ApiImplicitParam(name = "codes", value = "PROCESS_DEFINITION_CODE", required = true, dataType = "String")
|
||||
})
|
||||
@GetMapping(value = "/batch-delete")
|
||||
@PostMapping(value = "/batch-delete")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(BATCH_DELETE_PROCESS_DEFINE_BY_IDS_ERROR)
|
||||
@ApiException(BATCH_DELETE_PROCESS_DEFINE_BY_CODES_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result batchDeleteProcessDefinitionByIds(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@RequestParam("processDefinitionIds") String processDefinitionIds
|
||||
) {
|
||||
public Result batchDeleteProcessDefinitionByCodes(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@RequestParam("codes") String codes) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
List<String> deleteFailedIdList = new ArrayList<>();
|
||||
if (StringUtils.isNotEmpty(processDefinitionIds)) {
|
||||
String[] processDefinitionIdArray = processDefinitionIds.split(",");
|
||||
for (String strProcessDefinitionId : processDefinitionIdArray) {
|
||||
int processDefinitionId = Integer.parseInt(strProcessDefinitionId);
|
||||
List<String> deleteFailedCodeList = new ArrayList<>();
|
||||
if (StringUtils.isNotEmpty(codes)) {
|
||||
String[] processDefinitionCodeArray = codes.split(",");
|
||||
for (String strProcessDefinitionCode : processDefinitionCodeArray) {
|
||||
long code = Long.parseLong(strProcessDefinitionCode);
|
||||
try {
|
||||
Map<String, Object> deleteResult = processDefinitionService.deleteProcessDefinitionById(loginUser, projectName, processDefinitionId);
|
||||
Map<String, Object> deleteResult = processDefinitionService.deleteProcessDefinitionByCode(loginUser, projectCode, code);
|
||||
if (!Status.SUCCESS.equals(deleteResult.get(Constants.STATUS))) {
|
||||
deleteFailedIdList.add(strProcessDefinitionId);
|
||||
deleteFailedCodeList.add(strProcessDefinitionCode);
|
||||
logger.error((String) deleteResult.get(Constants.MSG));
|
||||
}
|
||||
} catch (Exception e) {
|
||||
deleteFailedIdList.add(strProcessDefinitionId);
|
||||
deleteFailedCodeList.add(strProcessDefinitionCode);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!deleteFailedIdList.isEmpty()) {
|
||||
putMsg(result, Status.BATCH_DELETE_PROCESS_DEFINE_BY_IDS_ERROR, String.join(",", deleteFailedIdList));
|
||||
if (!deleteFailedCodeList.isEmpty()) {
|
||||
putMsg(result, BATCH_DELETE_PROCESS_DEFINE_BY_CODES_ERROR, String.join(",", deleteFailedCodeList));
|
||||
} else {
|
||||
putMsg(result, Status.SUCCESS);
|
||||
}
|
||||
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* batch export process definition by ids
|
||||
* batch export process definition by codes
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param processDefinitionIds process definition ids
|
||||
* @param projectCode project code
|
||||
* @param codes process definition codes
|
||||
* @param response response
|
||||
*/
|
||||
|
||||
@ApiOperation(value = "batchExportProcessDefinitionByIds", notes = "BATCH_EXPORT_PROCESS_DEFINITION_BY_IDS_NOTES")
|
||||
@ApiOperation(value = "batchExportByCodes", notes = "BATCH_EXPORT_PROCESS_DEFINITION_BY_CODES_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "processDefinitionIds", value = "PROCESS_DEFINITION_ID", required = true, dataType = "String")
|
||||
@ApiImplicitParam(name = "codes", value = "PROCESS_DEFINITION_CODE", required = true, dataType = "String")
|
||||
})
|
||||
@GetMapping(value = "/export")
|
||||
@PostMapping(value = "/batch-export")
|
||||
@ResponseBody
|
||||
@AccessLogAnnotation(ignoreRequestArgs = {"loginUser", "response"})
|
||||
public void batchExportProcessDefinitionByIds(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@RequestParam("processDefinitionIds") String processDefinitionIds,
|
||||
HttpServletResponse response) {
|
||||
public void batchExportProcessDefinitionByCodes(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@RequestParam("codes") String codes,
|
||||
HttpServletResponse response) {
|
||||
try {
|
||||
processDefinitionService.batchExportProcessDefinitionByIds(loginUser, projectName, processDefinitionIds, response);
|
||||
processDefinitionService.batchExportProcessDefinitionByCodes(loginUser, projectCode, codes, response);
|
||||
} catch (Exception e) {
|
||||
logger.error(Status.BATCH_EXPORT_PROCESS_DEFINE_BY_IDS_ERROR.getMsg(), e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* query process definition all by project id
|
||||
* query all process definition by project code
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectId project id
|
||||
* @param projectCode project code
|
||||
* @return process definition list
|
||||
*/
|
||||
@ApiOperation(value = "queryProcessDefinitionAllByProjectId", notes = "QUERY_PROCESS_DEFINITION_All_BY_PROJECT_ID_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "projectId", value = "PROJECT_ID", required = true, dataType = "Int", example = "100")
|
||||
})
|
||||
@GetMapping(value = "/queryProcessDefinitionAllByProjectId")
|
||||
@ApiOperation(value = "queryAllByProjectCode", notes = "QUERY_PROCESS_DEFINITION_All_BY_PROJECT_CODE_NOTES")
|
||||
@GetMapping(value = "/all")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(QUERY_PROCESS_DEFINITION_LIST)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result queryProcessDefinitionAllByProjectId(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestParam("projectId") Integer projectId) {
|
||||
Map<String, Object> result = processDefinitionService.queryProcessDefinitionAllByProjectId(projectId);
|
||||
public Result queryAllProcessDefinitionByProjectCode(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode) {
|
||||
Map<String, Object> result = processDefinitionService.queryAllProcessDefinitionByProjectCode(loginUser, projectCode);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* import process definition
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectCode project code
|
||||
* @param file resource file
|
||||
* @return import result code
|
||||
*/
|
||||
@ApiOperation(value = "importProcessDefinition", notes = "IMPORT_PROCESS_DEFINITION_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "file", value = "RESOURCE_FILE", required = true, dataType = "MultipartFile")
|
||||
})
|
||||
@PostMapping(value = "/import")
|
||||
@ApiException(IMPORT_PROCESS_DEFINE_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = {"loginUser", "file"})
|
||||
public Result importProcessDefinition(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@RequestParam("file") MultipartFile file) {
|
||||
Map<String, Object> result = processDefinitionService.importProcessDefinition(loginUser, projectCode, file);
|
||||
return returnDataList(result);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,7 +42,6 @@ import org.apache.dolphinscheduler.dao.entity.ProcessInstance;
|
|||
import org.apache.dolphinscheduler.dao.entity.User;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.text.ParseException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
|
@ -52,9 +51,11 @@ import org.slf4j.Logger;
|
|||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
import org.springframework.web.bind.annotation.RequestAttribute;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
|
@ -73,49 +74,48 @@ import springfox.documentation.annotations.ApiIgnore;
|
|||
*/
|
||||
@Api(tags = "PROCESS_INSTANCE_TAG")
|
||||
@RestController
|
||||
@RequestMapping("projects/{projectName}/instance")
|
||||
@RequestMapping("projects/{projectCode}/process-instances")
|
||||
public class ProcessInstanceController extends BaseController {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(ProcessInstanceController.class);
|
||||
|
||||
|
||||
@Autowired
|
||||
ProcessInstanceService processInstanceService;
|
||||
|
||||
/**
|
||||
* query process instance list paging
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param pageNo page number
|
||||
* @param pageSize page size
|
||||
* @param processDefinitionId process definition id
|
||||
* @param searchVal search value
|
||||
* @param stateType state type
|
||||
* @param host host
|
||||
* @param startTime start time
|
||||
* @param endTime end time
|
||||
* @param loginUser login user
|
||||
* @param projectCode project code
|
||||
* @param pageNo page number
|
||||
* @param pageSize page size
|
||||
* @param processDefineCode process definition code
|
||||
* @param searchVal search value
|
||||
* @param stateType state type
|
||||
* @param host host
|
||||
* @param startTime start time
|
||||
* @param endTime end time
|
||||
* @return process instance list
|
||||
*/
|
||||
@ApiOperation(value = "queryProcessInstanceList", notes = "QUERY_PROCESS_INSTANCE_LIST_NOTES")
|
||||
@ApiOperation(value = "queryProcessInstanceListPaging", notes = "QUERY_PROCESS_INSTANCE_LIST_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "processDefinitionId", value = "PROCESS_DEFINITION_ID", dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "searchVal", value = "SEARCH_VAL", type = "String"),
|
||||
@ApiImplicitParam(name = "executorName", value = "EXECUTOR_NAME", type = "String"),
|
||||
@ApiImplicitParam(name = "stateType", value = "EXECUTION_STATUS", type = "ExecutionStatus"),
|
||||
@ApiImplicitParam(name = "host", value = "HOST", type = "String"),
|
||||
@ApiImplicitParam(name = "startDate", value = "START_DATE", type = "String"),
|
||||
@ApiImplicitParam(name = "endDate", value = "END_DATE", type = "String"),
|
||||
@ApiImplicitParam(name = "pageNo", value = "PAGE_NO", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "PAGE_SIZE", required = true, dataType = "Int", example = "100")
|
||||
@ApiImplicitParam(name = "processDefiniteCode", value = "PROCESS_DEFINITION_CODE", dataType = "Long", example = "100"),
|
||||
@ApiImplicitParam(name = "searchVal", value = "SEARCH_VAL", type = "String"),
|
||||
@ApiImplicitParam(name = "executorName", value = "EXECUTOR_NAME", type = "String"),
|
||||
@ApiImplicitParam(name = "stateType", value = "EXECUTION_STATUS", type = "ExecutionStatus"),
|
||||
@ApiImplicitParam(name = "host", value = "HOST", type = "String"),
|
||||
@ApiImplicitParam(name = "startDate", value = "START_DATE", type = "String"),
|
||||
@ApiImplicitParam(name = "endDate", value = "END_DATE", type = "String"),
|
||||
@ApiImplicitParam(name = "pageNo", value = "PAGE_NO", required = true, dataType = "Int", example = "1"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "PAGE_SIZE", required = true, dataType = "Int", example = "10")
|
||||
})
|
||||
@GetMapping(value = "list-paging")
|
||||
@GetMapping()
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(QUERY_PROCESS_INSTANCE_LIST_PAGING_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result queryProcessInstanceList(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@RequestParam(value = "processDefinitionId", required = false, defaultValue = "0") Integer processDefinitionId,
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@RequestParam(value = "processDefineCode", required = false, defaultValue = "0") long processDefineCode,
|
||||
@RequestParam(value = "searchVal", required = false) String searchVal,
|
||||
@RequestParam(value = "executorName", required = false) String executorName,
|
||||
@RequestParam(value = "stateType", required = false) ExecutionStatus stateType,
|
||||
|
|
@ -130,131 +130,130 @@ public class ProcessInstanceController extends BaseController {
|
|||
return result;
|
||||
}
|
||||
searchVal = ParameterUtils.handleEscapes(searchVal);
|
||||
result = processInstanceService.queryProcessInstanceList(
|
||||
loginUser, projectName, processDefinitionId, startTime, endTime, searchVal, executorName, stateType, host, pageNo, pageSize);
|
||||
result = processInstanceService.queryProcessInstanceList(loginUser, projectCode, processDefineCode, startTime, endTime,
|
||||
searchVal, executorName, stateType, host, pageNo, pageSize);
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* query task list by process instance id
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param processInstanceId process instance id
|
||||
* @param loginUser login user
|
||||
* @param projectCode project code
|
||||
* @param id process instance id
|
||||
* @return task list for the process instance
|
||||
*/
|
||||
@ApiOperation(value = "queryTaskListByProcessId", notes = "QUERY_TASK_LIST_BY_PROCESS_INSTANCE_ID_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "processInstanceId", value = "PROCESS_INSTANCE_ID", required = true, dataType = "Int", example = "100")
|
||||
@ApiImplicitParam(name = "id", value = "PROCESS_INSTANCE_ID", required = true, dataType = "Int", example = "100")
|
||||
})
|
||||
@GetMapping(value = "/task-list-by-process-id")
|
||||
@GetMapping(value = "/{id}/tasks")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(QUERY_TASK_LIST_BY_PROCESS_INSTANCE_ID_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result queryTaskListByProcessId(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@RequestParam("processInstanceId") Integer processInstanceId
|
||||
) throws IOException {
|
||||
Map<String, Object> result = processInstanceService.queryTaskListByProcessId(loginUser, projectName, processInstanceId);
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@PathVariable("id") Integer id) throws IOException {
|
||||
Map<String, Object> result = processInstanceService.queryTaskListByProcessId(loginUser, projectCode, id);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* update process instance
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param processInstanceJson process instance json
|
||||
* @param processInstanceId process instance id
|
||||
* @param scheduleTime schedule time
|
||||
* @param syncDefine sync define
|
||||
* @param flag flag
|
||||
* @param locations locations
|
||||
* @param connects connects
|
||||
* @param loginUser login user
|
||||
* @param projectCode project code
|
||||
* @param taskRelationJson process task relation json
|
||||
* @param taskDefinitionJson taskDefinitionJson
|
||||
* @param id process instance id
|
||||
* @param scheduleTime schedule time
|
||||
* @param syncDefine sync define
|
||||
* @param locations locations
|
||||
* @param tenantCode tenantCode
|
||||
* @return update result code
|
||||
*/
|
||||
@ApiOperation(value = "updateProcessInstance", notes = "UPDATE_PROCESS_INSTANCE_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "processInstanceJson", value = "PROCESS_INSTANCE_JSON", type = "String"),
|
||||
@ApiImplicitParam(name = "processInstanceId", value = "PROCESS_INSTANCE_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "scheduleTime", value = "SCHEDULE_TIME", type = "String"),
|
||||
@ApiImplicitParam(name = "syncDefine", value = "SYNC_DEFINE", required = true, type = "Boolean"),
|
||||
@ApiImplicitParam(name = "locations", value = "PROCESS_INSTANCE_LOCATIONS", type = "String"),
|
||||
@ApiImplicitParam(name = "connects", value = "PROCESS_INSTANCE_CONNECTS", type = "String"),
|
||||
@ApiImplicitParam(name = "flag", value = "RECOVERY_PROCESS_INSTANCE_FLAG", type = "Flag"),
|
||||
@ApiImplicitParam(name = "taskRelationJson", value = "TASK_RELATION_JSON", type = "String"),
|
||||
@ApiImplicitParam(name = "taskDefinitionJson", value = "TASK_DEFINITION_JSON", type = "String"),
|
||||
@ApiImplicitParam(name = "id", value = "PROCESS_INSTANCE_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "scheduleTime", value = "SCHEDULE_TIME", type = "String"),
|
||||
@ApiImplicitParam(name = "syncDefine", value = "SYNC_DEFINE", required = true, type = "Boolean"),
|
||||
@ApiImplicitParam(name = "globalParams", value = "PROCESS_GLOBAL_PARAMS", type = "String"),
|
||||
@ApiImplicitParam(name = "locations", value = "PROCESS_INSTANCE_LOCATIONS", type = "String"),
|
||||
@ApiImplicitParam(name = "timeout", value = "PROCESS_TIMEOUT", type = "String"),
|
||||
@ApiImplicitParam(name = "tenantCode", value = "TENANT_CODE", type = "Int", example = "0")
|
||||
})
|
||||
@PostMapping(value = "/update")
|
||||
@PutMapping(value = "/{id}")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(UPDATE_PROCESS_INSTANCE_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result updateProcessInstance(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@RequestParam(value = "processInstanceJson", required = false) String processInstanceJson,
|
||||
@RequestParam(value = "processInstanceId") Integer processInstanceId,
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@RequestParam(value = "taskRelationJson", required = true) String taskRelationJson,
|
||||
@RequestParam(value = "taskDefinitionJson", required = true) String taskDefinitionJson,
|
||||
@PathVariable(value = "id") Integer id,
|
||||
@RequestParam(value = "scheduleTime", required = false) String scheduleTime,
|
||||
@RequestParam(value = "syncDefine", required = true) Boolean syncDefine,
|
||||
@RequestParam(value = "globalParams", required = false, defaultValue = "[]") String globalParams,
|
||||
@RequestParam(value = "locations", required = false) String locations,
|
||||
@RequestParam(value = "connects", required = false) String connects,
|
||||
@RequestParam(value = "flag", required = false) Flag flag
|
||||
) throws ParseException {
|
||||
Map<String, Object> result = processInstanceService.updateProcessInstance(loginUser, projectName,
|
||||
processInstanceId, processInstanceJson, scheduleTime, syncDefine, flag, locations, connects);
|
||||
@RequestParam(value = "timeout", required = false, defaultValue = "0") int timeout,
|
||||
@RequestParam(value = "tenantCode", required = true) String tenantCode,
|
||||
@RequestParam(value = "flag", required = false) Flag flag) {
|
||||
Map<String, Object> result = processInstanceService.updateProcessInstance(loginUser, projectCode, id,
|
||||
taskRelationJson, taskDefinitionJson, scheduleTime, syncDefine, globalParams, locations, timeout, tenantCode);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* query process instance by id
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param processInstanceId process instance id
|
||||
* @param loginUser login user
|
||||
* @param projectCode project code
|
||||
* @param id process instance id
|
||||
* @return process instance detail
|
||||
*/
|
||||
@ApiOperation(value = "queryProcessInstanceById", notes = "QUERY_PROCESS_INSTANCE_BY_ID_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "processInstanceId", value = "PROCESS_INSTANCE_ID", required = true, dataType = "Int", example = "100")
|
||||
@ApiImplicitParam(name = "id", value = "PROCESS_INSTANCE_ID", required = true, dataType = "Int", example = "100")
|
||||
})
|
||||
@GetMapping(value = "/select-by-id")
|
||||
@GetMapping(value = "/{id}")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(QUERY_PROCESS_INSTANCE_BY_ID_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result queryProcessInstanceById(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@RequestParam("processInstanceId") Integer processInstanceId
|
||||
) {
|
||||
Map<String, Object> result = processInstanceService.queryProcessInstanceById(loginUser, projectName, processInstanceId);
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@PathVariable("id") Integer id) {
|
||||
Map<String, Object> result = processInstanceService.queryProcessInstanceById(loginUser, projectCode, id);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* query top n process instance order by running duration
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param size number of process instance
|
||||
* @param startTime start time
|
||||
* @param endTime end time
|
||||
* @return list of process instance
|
||||
* @param loginUser login user
|
||||
* @param projectCode project code
|
||||
* @param size number of process instance
|
||||
* @param startTime start time
|
||||
* @param endTime end time
|
||||
* @return list of process instance
|
||||
*/
|
||||
@ApiOperation(value = "queryTopNLongestRunningProcessInstance", notes = "QUERY_TOPN_LONGEST_RUNNING_PROCESS_INSTANCE_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "size", value = "PROCESS_INSTANCE_SIZE", required = true, dataType = "Int", example = "10"),
|
||||
@ApiImplicitParam(name = "startTime", value = "PROCESS_INSTANCE_START_TIME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "endTime", value = "PROCESS_INSTANCE_END_TIME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "size", value = "PROCESS_INSTANCE_SIZE", required = true, dataType = "Int", example = "10"),
|
||||
@ApiImplicitParam(name = "startTime", value = "PROCESS_INSTANCE_START_TIME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "endTime", value = "PROCESS_INSTANCE_END_TIME", required = true, dataType = "String"),
|
||||
})
|
||||
@GetMapping(value = "/top-n")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(QUERY_PROCESS_INSTANCE_BY_ID_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result<ProcessInstance> queryTopNLongestRunningProcessInstance(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@RequestParam("size") Integer size,
|
||||
@RequestParam(value = "startTime",required = true) String startTime,
|
||||
@RequestParam(value = "endTime",required = true) String endTime
|
||||
|
||||
) {
|
||||
projectName = ParameterUtils.handleEscapes(projectName);
|
||||
Map<String,Object> result = processInstanceService.queryTopNLongestRunningProcessInstance(loginUser, projectName, size, startTime, endTime);
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@RequestParam("size") Integer size,
|
||||
@RequestParam(value = "startTime", required = true) String startTime,
|
||||
@RequestParam(value = "endTime", required = true) String endTime) {
|
||||
Map<String, Object> result = processInstanceService.queryTopNLongestRunningProcessInstance(loginUser, projectCode, size, startTime, endTime);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
|
|
@ -262,115 +261,113 @@ public class ProcessInstanceController extends BaseController {
|
|||
* delete process instance by id, at the same time,
|
||||
* delete task instance and their mapping relation data
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param processInstanceId process instance id
|
||||
* @param loginUser login user
|
||||
* @param projectCode project code
|
||||
* @param id process instance id
|
||||
* @return delete result code
|
||||
*/
|
||||
@ApiOperation(value = "deleteProcessInstanceById", notes = "DELETE_PROCESS_INSTANCE_BY_ID_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "processInstanceId", value = "PROCESS_INSTANCE_ID", required = true, dataType = "Int", example = "100")
|
||||
@ApiImplicitParam(name = "id", value = "PROCESS_INSTANCE_ID", required = true, dataType = "Int", example = "100")
|
||||
})
|
||||
@GetMapping(value = "/delete")
|
||||
@DeleteMapping(value = "/{id}")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(DELETE_PROCESS_INSTANCE_BY_ID_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result<ProcessInstance> deleteProcessInstanceById(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@RequestParam("processInstanceId") Integer processInstanceId
|
||||
) {
|
||||
// task queue
|
||||
Map<String, Object> result = processInstanceService.deleteProcessInstanceById(loginUser, projectName, processInstanceId);
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@PathVariable("id") Integer id) {
|
||||
Map<String, Object> result = processInstanceService.deleteProcessInstanceById(loginUser, projectCode, id);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* query sub process instance detail info by task id
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param taskId task id
|
||||
* @param loginUser login user
|
||||
* @param projectCode project code
|
||||
* @param taskId task id
|
||||
* @return sub process instance detail
|
||||
*/
|
||||
@ApiOperation(value = "querySubProcessInstanceByTaskId", notes = "QUERY_SUBPROCESS_INSTANCE_BY_TASK_ID_NOTES")
|
||||
@ApiOperation(value = "querySubProcessInstanceByTaskCode", notes = "QUERY_SUBPROCESS_INSTANCE_BY_TASK_CODE_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "taskId", value = "TASK_ID", required = true, dataType = "Int", example = "100")
|
||||
@ApiImplicitParam(name = "taskCode", value = "TASK_CODE", required = true, dataType = "Long", example = "100")
|
||||
})
|
||||
@GetMapping(value = "/select-sub-process")
|
||||
@GetMapping(value = "/query-sub-by-parent")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(QUERY_SUB_PROCESS_INSTANCE_DETAIL_INFO_BY_TASK_ID_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result querySubProcessInstanceByTaskId(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@RequestParam("taskId") Integer taskId) {
|
||||
Map<String, Object> result = processInstanceService.querySubProcessInstanceByTaskId(loginUser, projectName, taskId);
|
||||
Map<String, Object> result = processInstanceService.querySubProcessInstanceByTaskId(loginUser, projectCode, taskId);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* query parent process instance detail info by sub process instance id
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param subId sub process id
|
||||
* @param loginUser login user
|
||||
* @param projectCode project code
|
||||
* @param subId sub process id
|
||||
* @return parent instance detail
|
||||
*/
|
||||
@ApiOperation(value = "queryParentInstanceBySubId", notes = "QUERY_PARENT_PROCESS_INSTANCE_BY_SUB_PROCESS_INSTANCE_ID_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "subId", value = "SUB_PROCESS_INSTANCE_ID", required = true, dataType = "Int", example = "100")
|
||||
@ApiImplicitParam(name = "subId", value = "SUB_PROCESS_INSTANCE_ID", required = true, dataType = "Int", example = "100")
|
||||
})
|
||||
@GetMapping(value = "/select-parent-process")
|
||||
@GetMapping(value = "/query-parent-by-sub")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(QUERY_PARENT_PROCESS_INSTANCE_DETAIL_INFO_BY_SUB_PROCESS_INSTANCE_ID_ERROR)
|
||||
@AccessLogAnnotation
|
||||
public Result queryParentInstanceBySubId(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@RequestParam("subId") Integer subId) {
|
||||
Map<String, Object> result = processInstanceService.queryParentInstanceBySubId(loginUser, projectName, subId);
|
||||
Map<String, Object> result = processInstanceService.queryParentInstanceBySubId(loginUser, projectCode, subId);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* query process instance global variables and local variables
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param processInstanceId process instance id
|
||||
* @param loginUser login user
|
||||
* @param id process instance id
|
||||
* @return variables data
|
||||
*/
|
||||
@ApiOperation(value = "viewVariables", notes = "QUERY_PROCESS_INSTANCE_GLOBAL_VARIABLES_AND_LOCAL_VARIABLES_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "processInstanceId", value = "PROCESS_INSTANCE_ID", required = true, dataType = "Int", example = "100")
|
||||
@ApiImplicitParam(name = "id", value = "PROCESS_INSTANCE_ID", required = true, dataType = "Int", example = "100")
|
||||
})
|
||||
@GetMapping(value = "/view-variables")
|
||||
@GetMapping(value = "/{id}/view-variables")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(QUERY_PROCESS_INSTANCE_ALL_VARIABLES_ERROR)
|
||||
@AccessLogAnnotation
|
||||
public Result viewVariables(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestParam("processInstanceId") Integer processInstanceId) throws Exception {
|
||||
Map<String, Object> result = processInstanceService.viewVariables(processInstanceId);
|
||||
@PathVariable("id") Integer id) {
|
||||
Map<String, Object> result = processInstanceService.viewVariables(id);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* encapsulation gantt structure
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param processInstanceId process instance id
|
||||
* @param loginUser login user
|
||||
* @param projectCode project code
|
||||
* @param id process instance id
|
||||
* @return gantt tree data
|
||||
*/
|
||||
@ApiOperation(value = "vieGanttTree", notes = "VIEW_GANTT_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "processInstanceId", value = "PROCESS_INSTANCE_ID", required = true, dataType = "Int", example = "100")
|
||||
@ApiImplicitParam(name = "id", value = "PROCESS_INSTANCE_ID", required = true, dataType = "Int", example = "100")
|
||||
})
|
||||
@GetMapping(value = "/view-gantt")
|
||||
@GetMapping(value = "/{id}/view-gantt")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(ENCAPSULATION_PROCESS_INSTANCE_GANTT_STRUCTURE_ERROR)
|
||||
@AccessLogAnnotation
|
||||
public Result viewTree(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@RequestParam("processInstanceId") Integer processInstanceId) throws Exception {
|
||||
Map<String, Object> result = processInstanceService.viewGantt(processInstanceId);
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@PathVariable("id") Integer id) throws Exception {
|
||||
Map<String, Object> result = processInstanceService.viewGantt(id);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
|
|
@ -378,24 +375,23 @@ public class ProcessInstanceController extends BaseController {
|
|||
* batch delete process instance by ids, at the same time,
|
||||
* delete task instance and their mapping relation data
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param loginUser login user
|
||||
* @param projectCode project code
|
||||
* @param processInstanceIds process instance id
|
||||
* @return delete result code
|
||||
*/
|
||||
@ApiOperation(value = "batchDeleteProcessInstanceByIds", notes = "BATCH_DELETE_PROCESS_INSTANCE_BY_IDS_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "projectName", value = "PROJECT_NAME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "processInstanceIds", value = "PROCESS_INSTANCE_IDS", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "projectName", value = "PROJECT_NAME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "processInstanceIds", value = "PROCESS_INSTANCE_IDS", required = true, dataType = "String"),
|
||||
})
|
||||
@GetMapping(value = "/batch-delete")
|
||||
@PostMapping(value = "/batch-delete")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(BATCH_DELETE_PROCESS_INSTANCE_BY_IDS_ERROR)
|
||||
@AccessLogAnnotation
|
||||
public Result batchDeleteProcessInstanceByIds(@RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@PathVariable String projectName,
|
||||
@RequestParam("processInstanceIds") String processInstanceIds
|
||||
) {
|
||||
@PathVariable long projectCode,
|
||||
@RequestParam("processInstanceIds") String processInstanceIds) {
|
||||
// task queue
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
List<String> deleteFailedIdList = new ArrayList<>();
|
||||
|
|
@ -405,7 +401,7 @@ public class ProcessInstanceController extends BaseController {
|
|||
for (String strProcessInstanceId : processInstanceIdArray) {
|
||||
int processInstanceId = Integer.parseInt(strProcessInstanceId);
|
||||
try {
|
||||
Map<String, Object> deleteResult = processInstanceService.deleteProcessInstanceById(loginUser, projectName, processInstanceId);
|
||||
Map<String, Object> deleteResult = processInstanceService.deleteProcessInstanceById(loginUser, projectCode, processInstanceId);
|
||||
if (!Status.SUCCESS.equals(deleteResult.get(Constants.STATUS))) {
|
||||
deleteFailedIdList.add(strProcessInstanceId);
|
||||
logger.error((String) deleteResult.get(Constants.MSG));
|
||||
|
|
@ -420,7 +416,6 @@ public class ProcessInstanceController extends BaseController {
|
|||
} else {
|
||||
putMsg(result, Status.SUCCESS);
|
||||
}
|
||||
|
||||
return returnDataList(result);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,17 +19,15 @@ package org.apache.dolphinscheduler.api.controller;
|
|||
|
||||
import static org.apache.dolphinscheduler.api.enums.Status.CREATE_PROJECT_ERROR;
|
||||
import static org.apache.dolphinscheduler.api.enums.Status.DELETE_PROJECT_ERROR;
|
||||
import static org.apache.dolphinscheduler.api.enums.Status.IMPORT_PROCESS_DEFINE_ERROR;
|
||||
import static org.apache.dolphinscheduler.api.enums.Status.LOGIN_USER_QUERY_PROJECT_LIST_PAGING_ERROR;
|
||||
import static org.apache.dolphinscheduler.api.enums.Status.QUERY_AUTHORIZED_AND_USER_CREATED_PROJECT_ERROR;
|
||||
import static org.apache.dolphinscheduler.api.enums.Status.QUERY_AUTHORIZED_PROJECT;
|
||||
import static org.apache.dolphinscheduler.api.enums.Status.QUERY_PROJECT_DETAILS_BY_ID_ERROR;
|
||||
import static org.apache.dolphinscheduler.api.enums.Status.QUERY_PROJECT_DETAILS_BY_CODE_ERROR;
|
||||
import static org.apache.dolphinscheduler.api.enums.Status.QUERY_UNAUTHORIZED_PROJECT_ERROR;
|
||||
import static org.apache.dolphinscheduler.api.enums.Status.UPDATE_PROJECT_ERROR;
|
||||
|
||||
import org.apache.dolphinscheduler.api.aspect.AccessLogAnnotation;
|
||||
import org.apache.dolphinscheduler.api.exceptions.ApiException;
|
||||
import org.apache.dolphinscheduler.api.service.ProcessDefinitionService;
|
||||
import org.apache.dolphinscheduler.api.service.ProjectService;
|
||||
import org.apache.dolphinscheduler.api.utils.Result;
|
||||
import org.apache.dolphinscheduler.common.Constants;
|
||||
|
|
@ -40,14 +38,16 @@ import java.util.Map;
|
|||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
import org.springframework.web.bind.annotation.RequestAttribute;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.ResponseStatus;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
|
|
@ -66,82 +66,77 @@ public class ProjectController extends BaseController {
|
|||
@Autowired
|
||||
private ProjectService projectService;
|
||||
|
||||
@Autowired
|
||||
private ProcessDefinitionService processDefinitionService;
|
||||
|
||||
/**
|
||||
* create project
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param description description
|
||||
* @return returns an error if it exists
|
||||
*/
|
||||
@ApiOperation(value = "createProject", notes = "CREATE_PROJECT_NOTES")
|
||||
@ApiOperation(value = "create", notes = "CREATE_PROJECT_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "projectName", value = "PROJECT_NAME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "description", value = "PROJECT_DESC", required = true, dataType = "String")
|
||||
@ApiImplicitParam(name = "projectName", value = "PROJECT_NAME", dataType = "String"),
|
||||
@ApiImplicitParam(name = "description", value = "PROJECT_DESC", dataType = "String")
|
||||
})
|
||||
@PostMapping(value = "/create")
|
||||
@PostMapping()
|
||||
@ResponseStatus(HttpStatus.CREATED)
|
||||
@ApiException(CREATE_PROJECT_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result createProject(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestParam("projectName") String projectName,
|
||||
@RequestParam(value = "description", required = false) String description) {
|
||||
|
||||
Map<String, Object> result = projectService.createProject(loginUser, projectName, description);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* updateProcessInstance project
|
||||
* update project
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectId project id
|
||||
* @param loginUser login user
|
||||
* @param code project code
|
||||
* @param projectName project name
|
||||
* @param description description
|
||||
* @return update result code
|
||||
*/
|
||||
@ApiOperation(value = "updateProject", notes = "UPDATE_PROJECT_NOTES")
|
||||
@ApiOperation(value = "update", notes = "UPDATE_PROJECT_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "projectId", value = "PROJECT_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "projectName", value = "PROJECT_NAME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "description", value = "PROJECT_DESC", dataType = "String"),
|
||||
@ApiImplicitParam(name = "userName", value = "USER_NAME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "code", value = "PROJECT_CODE", dataType = "Long", example = "123456"),
|
||||
@ApiImplicitParam(name = "projectName", value = "PROJECT_NAME", dataType = "String"),
|
||||
@ApiImplicitParam(name = "description", value = "PROJECT_DESC", dataType = "String"),
|
||||
@ApiImplicitParam(name = "userName", value = "USER_NAME", dataType = "String"),
|
||||
})
|
||||
@PostMapping(value = "/update")
|
||||
@PutMapping(value = "/{code}")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(UPDATE_PROJECT_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result updateProject(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestParam("projectId") Integer projectId,
|
||||
@PathVariable("code") Long code,
|
||||
@RequestParam("projectName") String projectName,
|
||||
@RequestParam(value = "description", required = false) String description,
|
||||
@RequestParam(value = "userName") String userName) {
|
||||
Map<String, Object> result = projectService.update(loginUser, projectId, projectName, description, userName);
|
||||
Map<String, Object> result = projectService.update(loginUser, code, projectName, description, userName);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* query project details by id
|
||||
* query project details by code
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectId project id
|
||||
* @param code project code
|
||||
* @return project detail information
|
||||
*/
|
||||
@ApiOperation(value = "queryProjectById", notes = "QUERY_PROJECT_BY_ID_NOTES")
|
||||
@ApiOperation(value = "queryProjectByCode", notes = "QUERY_PROJECT_BY_ID_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "projectId", value = "PROJECT_ID", required = true, dataType = "Int", example = "100")
|
||||
@ApiImplicitParam(name = "code", value = "PROJECT_CODE", dataType = "Long", example = "123456")
|
||||
})
|
||||
@GetMapping(value = "/query-by-id")
|
||||
@GetMapping(value = "/{code}")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(QUERY_PROJECT_DETAILS_BY_ID_ERROR)
|
||||
@ApiException(QUERY_PROJECT_DETAILS_BY_CODE_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result queryProjectById(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestParam("projectId") Integer projectId) {
|
||||
|
||||
Map<String, Object> result = projectService.queryById(projectId);
|
||||
public Result queryProjectByCode(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@PathVariable("code") long code) {
|
||||
Map<String, Object> result = projectService.queryByCode(loginUser, code);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
|
|
@ -150,17 +145,17 @@ public class ProjectController extends BaseController {
|
|||
*
|
||||
* @param loginUser login user
|
||||
* @param searchVal search value
|
||||
* @param pageSize page size
|
||||
* @param pageNo page number
|
||||
* @param pageSize page size
|
||||
* @param pageNo page number
|
||||
* @return project list which the login user have permission to see
|
||||
*/
|
||||
@ApiOperation(value = "queryProjectListPaging", notes = "QUERY_PROJECT_LIST_PAGING_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "searchVal", value = "SEARCH_VAL", dataType = "String"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "PAGE_SIZE", required = true, dataType = "Int", example = "20"),
|
||||
@ApiImplicitParam(name = "pageNo", value = "PAGE_NO", required = true, dataType = "Int", example = "1")
|
||||
@ApiImplicitParam(name = "searchVal", value = "SEARCH_VAL", dataType = "String"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "PAGE_SIZE", required = true, dataType = "Int", example = "10"),
|
||||
@ApiImplicitParam(name = "pageNo", value = "PAGE_NO", required = true, dataType = "Int", example = "1")
|
||||
})
|
||||
@GetMapping(value = "/list-paging")
|
||||
@GetMapping()
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(LOGIN_USER_QUERY_PROJECT_LIST_PAGING_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
|
|
@ -180,25 +175,23 @@ public class ProjectController extends BaseController {
|
|||
}
|
||||
|
||||
/**
|
||||
* delete project by id
|
||||
* delete project by code
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectId project id
|
||||
* @param code project code
|
||||
* @return delete result code
|
||||
*/
|
||||
@ApiOperation(value = "deleteProjectById", notes = "DELETE_PROJECT_BY_ID_NOTES")
|
||||
@ApiOperation(value = "delete", notes = "DELETE_PROJECT_BY_ID_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "projectId", value = "PROJECT_ID", required = true, dataType = "Int", example = "100")
|
||||
@ApiImplicitParam(name = "code", value = "PROJECT_CODE", dataType = "Long", example = "123456")
|
||||
})
|
||||
@GetMapping(value = "/delete")
|
||||
@DeleteMapping(value = "/{code}")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(DELETE_PROJECT_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result deleteProject(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestParam("projectId") Integer projectId
|
||||
) {
|
||||
|
||||
Map<String, Object> result = projectService.deleteProject(loginUser, projectId);
|
||||
@PathVariable("code") Long code) {
|
||||
Map<String, Object> result = projectService.deleteProject(loginUser, code);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
|
|
@ -206,14 +199,14 @@ public class ProjectController extends BaseController {
|
|||
* query unauthorized project
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param userId user id
|
||||
* @param userId user id
|
||||
* @return the projects which user have not permission to see
|
||||
*/
|
||||
@ApiOperation(value = "queryUnauthorizedProject", notes = "QUERY_UNAUTHORIZED_PROJECT_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "userId", value = "USER_ID", required = true, dataType = "Int", example = "100")
|
||||
@ApiImplicitParam(name = "userId", value = "USER_ID", dataType = "Int", example = "100")
|
||||
})
|
||||
@GetMapping(value = "/unauth-project")
|
||||
@GetMapping(value = "/unauth")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(QUERY_UNAUTHORIZED_PROJECT_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
|
|
@ -223,19 +216,18 @@ public class ProjectController extends BaseController {
|
|||
return returnDataList(result);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* query authorized project
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param userId user id
|
||||
* @param userId user id
|
||||
* @return projects which the user have permission to see, Except for items created by this user
|
||||
*/
|
||||
@ApiOperation(value = "queryAuthorizedProject", notes = "QUERY_AUTHORIZED_PROJECT_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "userId", value = "USER_ID", required = true, dataType = "Int", example = "100")
|
||||
@ApiImplicitParam(name = "userId", value = "USER_ID", dataType = "Int", example = "100")
|
||||
})
|
||||
@GetMapping(value = "/authed-project")
|
||||
@GetMapping(value = "/authed")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(QUERY_AUTHORIZED_PROJECT)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
|
|
@ -252,7 +244,7 @@ public class ProjectController extends BaseController {
|
|||
* @return projects which the user create and authorized
|
||||
*/
|
||||
@ApiOperation(value = "queryProjectCreatedAndAuthorizedByUser", notes = "QUERY_AUTHORIZED_AND_USER_CREATED_PROJECT_NOTES")
|
||||
@GetMapping(value = "/created-and-authorized-project")
|
||||
@GetMapping(value = "/created-and-authed")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(QUERY_AUTHORIZED_AND_USER_CREATED_PROJECT_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
|
|
@ -261,30 +253,6 @@ public class ProjectController extends BaseController {
|
|||
return returnDataList(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* import process definition
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param file resource file
|
||||
* @param projectName project name
|
||||
* @return import result code
|
||||
*/
|
||||
|
||||
@ApiOperation(value = "importProcessDefinition", notes = "IMPORT_PROCESS_DEFINITION_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "file", value = "RESOURCE_FILE", required = true, dataType = "MultipartFile"),
|
||||
@ApiImplicitParam(name = "projectName", value = "PROJECT_NAME", required = true, dataType = "String")
|
||||
})
|
||||
@PostMapping(value = "/import-definition")
|
||||
@ApiException(IMPORT_PROCESS_DEFINE_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = {"loginUser", "file"})
|
||||
public Result importProcessDefinition(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestParam("file") MultipartFile file,
|
||||
@RequestParam("projectName") String projectName) {
|
||||
Map<String, Object> result = processDefinitionService.importProcessDefinition(loginUser, file, projectName);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* query all project list
|
||||
*
|
||||
|
|
@ -292,7 +260,7 @@ public class ProjectController extends BaseController {
|
|||
* @return all project list
|
||||
*/
|
||||
@ApiOperation(value = "queryAllProjectList", notes = "QUERY_ALL_PROJECT_LIST_NOTES")
|
||||
@GetMapping(value = "/query-project-list")
|
||||
@GetMapping(value = "/list")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(LOGIN_USER_QUERY_PROJECT_LIST_PAGING_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
|
|
|
|||
|
|
@ -35,7 +35,9 @@ import java.util.Map;
|
|||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
import org.springframework.web.bind.annotation.RequestAttribute;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
|
@ -53,7 +55,7 @@ import springfox.documentation.annotations.ApiIgnore;
|
|||
*/
|
||||
@Api(tags = "QUEUE_TAG")
|
||||
@RestController
|
||||
@RequestMapping("/queue")
|
||||
@RequestMapping("/queues")
|
||||
public class QueueController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
|
|
@ -80,18 +82,18 @@ public class QueueController extends BaseController {
|
|||
* query queue list paging
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param pageNo page number
|
||||
* @param pageNo page number
|
||||
* @param searchVal search value
|
||||
* @param pageSize page size
|
||||
* @param pageSize page size
|
||||
* @return queue list
|
||||
*/
|
||||
@ApiOperation(value = "queryQueueListPaging", notes = "QUERY_QUEUE_LIST_PAGING_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "searchVal", value = "SEARCH_VAL", dataType = "String"),
|
||||
@ApiImplicitParam(name = "pageNo", value = "PAGE_NO", required = true, dataType = "Int", example = "1"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "PAGE_SIZE", required = true, dataType = "Int", example = "20")
|
||||
@ApiImplicitParam(name = "searchVal", value = "SEARCH_VAL", dataType = "String"),
|
||||
@ApiImplicitParam(name = "pageNo", value = "PAGE_NO", required = true, dataType = "Int", example = "1"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "PAGE_SIZE", required = true, dataType = "Int", example = "20")
|
||||
})
|
||||
@GetMapping(value = "/list-paging")
|
||||
@GetMapping()
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(QUERY_QUEUE_LIST_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
|
|
@ -113,16 +115,16 @@ public class QueueController extends BaseController {
|
|||
* create queue
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param queue queue
|
||||
* @param queue queue
|
||||
* @param queueName queue name
|
||||
* @return create result
|
||||
*/
|
||||
@ApiOperation(value = "createQueue", notes = "CREATE_QUEUE_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "queue", value = "YARN_QUEUE_NAME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "queueName", value = "QUEUE_NAME", required = true, dataType = "String")
|
||||
@ApiImplicitParam(name = "queue", value = "YARN_QUEUE_NAME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "queueName", value = "QUEUE_NAME", required = true, dataType = "String")
|
||||
})
|
||||
@PostMapping(value = "/create")
|
||||
@PostMapping()
|
||||
@ResponseStatus(HttpStatus.CREATED)
|
||||
@ApiException(CREATE_QUEUE_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
|
|
@ -137,23 +139,23 @@ public class QueueController extends BaseController {
|
|||
* update queue
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param queue queue
|
||||
* @param id queue id
|
||||
* @param queue queue
|
||||
* @param id queue id
|
||||
* @param queueName queue name
|
||||
* @return update result code
|
||||
*/
|
||||
@ApiOperation(value = "updateQueue", notes = "UPDATE_QUEUE_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "id", value = "QUEUE_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "queue", value = "YARN_QUEUE_NAME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "queueName", value = "QUEUE_NAME", required = true, dataType = "String")
|
||||
@ApiImplicitParam(name = "id", value = "QUEUE_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "queue", value = "YARN_QUEUE_NAME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "queueName", value = "QUEUE_NAME", required = true, dataType = "String")
|
||||
})
|
||||
@PostMapping(value = "/update")
|
||||
@PutMapping(value = "/{id}")
|
||||
@ResponseStatus(HttpStatus.CREATED)
|
||||
@ApiException(UPDATE_QUEUE_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result updateQueue(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestParam(value = "id") int id,
|
||||
@PathVariable(value = "id") int id,
|
||||
@RequestParam(value = "queue") String queue,
|
||||
@RequestParam(value = "queueName") String queueName) {
|
||||
Map<String, Object> result = queueService.updateQueue(loginUser, id, queue, queueName);
|
||||
|
|
@ -164,16 +166,16 @@ public class QueueController extends BaseController {
|
|||
* verify queue and queue name
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param queue queue
|
||||
* @param queue queue
|
||||
* @param queueName queue name
|
||||
* @return true if the queue name not exists, otherwise return false
|
||||
*/
|
||||
@ApiOperation(value = "verifyQueue", notes = "VERIFY_QUEUE_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "queue", value = "YARN_QUEUE_NAME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "queueName", value = "QUEUE_NAME", required = true, dataType = "String")
|
||||
@ApiImplicitParam(name = "queue", value = "YARN_QUEUE_NAME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "queueName", value = "QUEUE_NAME", required = true, dataType = "String")
|
||||
})
|
||||
@PostMapping(value = "/verify-queue")
|
||||
@PostMapping(value = "/verify")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(VERIFY_QUEUE_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
|
|
|
|||
|
|
@ -64,8 +64,11 @@ import org.springframework.core.io.Resource;
|
|||
import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
import org.springframework.web.bind.annotation.RequestAttribute;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
|
@ -96,24 +99,23 @@ public class ResourcesController extends BaseController {
|
|||
private UdfFuncService udfFuncService;
|
||||
|
||||
/**
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param type type
|
||||
* @param alias alias
|
||||
* @param loginUser login user
|
||||
* @param type type
|
||||
* @param alias alias
|
||||
* @param description description
|
||||
* @param pid parent id
|
||||
* @param currentDir current directory
|
||||
* @param pid parent id
|
||||
* @param currentDir current directory
|
||||
* @return create result code
|
||||
*/
|
||||
@ApiOperation(value = "createDirctory", notes = "CREATE_RESOURCE_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "type", value = "RESOURCE_TYPE", required = true, dataType = "ResourceType"),
|
||||
@ApiImplicitParam(name = "name", value = "RESOURCE_NAME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "description", value = "RESOURCE_DESC", dataType = "String"),
|
||||
@ApiImplicitParam(name = "pid", value = "RESOURCE_PID", required = true, dataType = "Int", example = "10"),
|
||||
@ApiImplicitParam(name = "currentDir", value = "RESOURCE_CURRENTDIR", required = true, dataType = "String")
|
||||
@ApiImplicitParam(name = "type", value = "RESOURCE_TYPE", required = true, dataType = "ResourceType"),
|
||||
@ApiImplicitParam(name = "name", value = "RESOURCE_NAME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "description", value = "RESOURCE_DESC", dataType = "String"),
|
||||
@ApiImplicitParam(name = "pid", value = "RESOURCE_PID", required = true, dataType = "Int", example = "10"),
|
||||
@ApiImplicitParam(name = "currentDir", value = "RESOURCE_CURRENTDIR", required = true, dataType = "String")
|
||||
})
|
||||
@PostMapping(value = "/directory/create")
|
||||
@PostMapping(value = "/directory")
|
||||
@ApiException(CREATE_RESOURCE_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result createDirectory(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
|
|
@ -127,25 +129,19 @@ public class ResourcesController extends BaseController {
|
|||
|
||||
/**
|
||||
* create resource
|
||||
* @param loginUser
|
||||
* @param type
|
||||
* @param alias
|
||||
* @param description
|
||||
* @param file
|
||||
* @param pid
|
||||
* @param currentDir
|
||||
*
|
||||
* @return create result code
|
||||
*/
|
||||
@ApiOperation(value = "createResource", notes = "CREATE_RESOURCE_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "type", value = "RESOURCE_TYPE", required = true, dataType = "ResourceType"),
|
||||
@ApiImplicitParam(name = "name", value = "RESOURCE_NAME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "description", value = "RESOURCE_DESC", dataType = "String"),
|
||||
@ApiImplicitParam(name = "file", value = "RESOURCE_FILE", required = true, dataType = "MultipartFile"),
|
||||
@ApiImplicitParam(name = "pid", value = "RESOURCE_PID", required = true, dataType = "Int", example = "10"),
|
||||
@ApiImplicitParam(name = "currentDir", value = "RESOURCE_CURRENTDIR", required = true, dataType = "String")
|
||||
@ApiImplicitParam(name = "type", value = "RESOURCE_TYPE", required = true, dataType = "ResourceType"),
|
||||
@ApiImplicitParam(name = "name", value = "RESOURCE_NAME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "description", value = "RESOURCE_DESC", dataType = "String"),
|
||||
@ApiImplicitParam(name = "file", value = "RESOURCE_FILE", required = true, dataType = "MultipartFile"),
|
||||
@ApiImplicitParam(name = "pid", value = "RESOURCE_PID", required = true, dataType = "Int", example = "10"),
|
||||
@ApiImplicitParam(name = "currentDir", value = "RESOURCE_CURRENTDIR", required = true, dataType = "String")
|
||||
})
|
||||
@PostMapping(value = "/create")
|
||||
@PostMapping()
|
||||
@ApiException(CREATE_RESOURCE_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result createResource(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
|
|
@ -166,26 +162,26 @@ public class ResourcesController extends BaseController {
|
|||
* @param resourceId resource id
|
||||
* @param type resource type
|
||||
* @param description description
|
||||
* @param file resource file
|
||||
* @param file resource file
|
||||
* @return update result code
|
||||
*/
|
||||
@ApiOperation(value = "updateResource", notes = "UPDATE_RESOURCE_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "id", value = "RESOURCE_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "type", value = "RESOURCE_TYPE", required = true, dataType = "ResourceType"),
|
||||
@ApiImplicitParam(name = "name", value = "RESOURCE_NAME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "description", value = "RESOURCE_DESC", dataType = "String"),
|
||||
@ApiImplicitParam(name = "file", value = "RESOURCE_FILE", required = true, dataType = "MultipartFile")
|
||||
@ApiImplicitParam(name = "id", value = "RESOURCE_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "type", value = "RESOURCE_TYPE", required = true, dataType = "ResourceType"),
|
||||
@ApiImplicitParam(name = "name", value = "RESOURCE_NAME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "description", value = "RESOURCE_DESC", dataType = "String"),
|
||||
@ApiImplicitParam(name = "file", value = "RESOURCE_FILE", required = true, dataType = "MultipartFile")
|
||||
})
|
||||
@PostMapping(value = "/update")
|
||||
@PutMapping(value = "/{id}")
|
||||
@ApiException(UPDATE_RESOURCE_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result updateResource(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestParam(value = "id") int resourceId,
|
||||
@PathVariable(value = "id") int resourceId,
|
||||
@RequestParam(value = "type") ResourceType type,
|
||||
@RequestParam(value = "name") String alias,
|
||||
@RequestParam(value = "description", required = false) String description,
|
||||
@RequestParam(value = "file",required = false) MultipartFile file) {
|
||||
@RequestParam(value = "file", required = false) MultipartFile file) {
|
||||
return resourceService.updateResource(loginUser, resourceId, alias, description, type, file);
|
||||
}
|
||||
|
||||
|
|
@ -198,7 +194,7 @@ public class ResourcesController extends BaseController {
|
|||
*/
|
||||
@ApiOperation(value = "queryResourceList", notes = "QUERY_RESOURCE_LIST_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "type", value = "RESOURCE_TYPE", required = true, dataType = "ResourceType")
|
||||
@ApiImplicitParam(name = "type", value = "RESOURCE_TYPE", required = true, dataType = "ResourceType")
|
||||
})
|
||||
@GetMapping(value = "/list")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
|
|
@ -223,13 +219,13 @@ public class ResourcesController extends BaseController {
|
|||
*/
|
||||
@ApiOperation(value = "queryResourceListPaging", notes = "QUERY_RESOURCE_LIST_PAGING_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "type", value = "RESOURCE_TYPE", required = true, dataType = "ResourceType"),
|
||||
@ApiImplicitParam(name = "id", value = "RESOURCE_ID", required = true, dataType = "int", example = "10"),
|
||||
@ApiImplicitParam(name = "searchVal", value = "SEARCH_VAL", dataType = "String"),
|
||||
@ApiImplicitParam(name = "pageNo", value = "PAGE_NO", required = true, dataType = "Int", example = "1"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "PAGE_SIZE", required = true, dataType = "Int", example = "20")
|
||||
@ApiImplicitParam(name = "type", value = "RESOURCE_TYPE", required = true, dataType = "ResourceType"),
|
||||
@ApiImplicitParam(name = "id", value = "RESOURCE_ID", required = true, dataType = "int", example = "10"),
|
||||
@ApiImplicitParam(name = "searchVal", value = "SEARCH_VAL", dataType = "String"),
|
||||
@ApiImplicitParam(name = "pageNo", value = "PAGE_NO", required = true, dataType = "Int", example = "1"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "PAGE_SIZE", required = true, dataType = "Int", example = "20")
|
||||
})
|
||||
@GetMapping(value = "/list-paging")
|
||||
@GetMapping()
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(QUERY_RESOURCES_LIST_PAGING)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
|
|
@ -260,14 +256,14 @@ public class ResourcesController extends BaseController {
|
|||
*/
|
||||
@ApiOperation(value = "deleteResource", notes = "DELETE_RESOURCE_BY_ID_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "id", value = "RESOURCE_ID", required = true, dataType = "Int", example = "100")
|
||||
@ApiImplicitParam(name = "id", value = "RESOURCE_ID", required = true, dataType = "Int", example = "100")
|
||||
})
|
||||
@GetMapping(value = "/delete")
|
||||
@DeleteMapping(value = "/{id}")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(DELETE_RESOURCE_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result deleteResource(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestParam(value = "id") int resourceId
|
||||
@PathVariable(value = "id") int resourceId
|
||||
) throws Exception {
|
||||
return resourceService.delete(loginUser, resourceId);
|
||||
}
|
||||
|
|
@ -283,8 +279,8 @@ public class ResourcesController extends BaseController {
|
|||
*/
|
||||
@ApiOperation(value = "verifyResourceName", notes = "VERIFY_RESOURCE_NAME_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "type", value = "RESOURCE_TYPE", required = true, dataType = "ResourceType"),
|
||||
@ApiImplicitParam(name = "fullName", value = "RESOURCE_FULL_NAME", required = true, dataType = "String")
|
||||
@ApiImplicitParam(name = "type", value = "RESOURCE_TYPE", required = true, dataType = "ResourceType"),
|
||||
@ApiImplicitParam(name = "fullName", value = "RESOURCE_FULL_NAME", required = true, dataType = "String")
|
||||
})
|
||||
@GetMapping(value = "/verify-name")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
|
|
@ -298,7 +294,7 @@ public class ResourcesController extends BaseController {
|
|||
}
|
||||
|
||||
/**
|
||||
* query resources jar list
|
||||
* query resources by type
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param type resource type
|
||||
|
|
@ -306,17 +302,17 @@ public class ResourcesController extends BaseController {
|
|||
*/
|
||||
@ApiOperation(value = "queryResourceByProgramType", notes = "QUERY_RESOURCE_LIST_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "type", value = "RESOURCE_TYPE", required = true, dataType = "ResourceType")
|
||||
@ApiImplicitParam(name = "type", value = "RESOURCE_TYPE", required = true, dataType = "ResourceType")
|
||||
})
|
||||
@GetMapping(value = "/list/jar")
|
||||
@GetMapping(value = "/query-by-type")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(QUERY_RESOURCES_LIST_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result queryResourceJarList(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestParam(value = "type") ResourceType type,
|
||||
@RequestParam(value = "programType",required = false) ProgramType programType
|
||||
@RequestParam(value = "programType", required = false) ProgramType programType
|
||||
) {
|
||||
Map<String, Object> result = resourceService.queryResourceByProgramType(loginUser, type,programType);
|
||||
Map<String, Object> result = resourceService.queryResourceByProgramType(loginUser, type, programType);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
|
|
@ -331,17 +327,17 @@ public class ResourcesController extends BaseController {
|
|||
*/
|
||||
@ApiOperation(value = "queryResource", notes = "QUERY_BY_RESOURCE_NAME")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "type", value = "RESOURCE_TYPE", required = true, dataType = "ResourceType"),
|
||||
@ApiImplicitParam(name = "fullName", value = "RESOURCE_FULL_NAME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "id", value = "RESOURCE_ID", required = false, dataType = "Int", example = "10")
|
||||
@ApiImplicitParam(name = "type", value = "RESOURCE_TYPE", required = true, dataType = "ResourceType"),
|
||||
@ApiImplicitParam(name = "fullName", value = "RESOURCE_FULL_NAME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "id", value = "RESOURCE_ID", required = false, dataType = "Int", example = "10")
|
||||
})
|
||||
@GetMapping(value = "/queryResource")
|
||||
@GetMapping(value = "/{id}")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(RESOURCE_NOT_EXIST)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result queryResource(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestParam(value = "fullName", required = false) String fullName,
|
||||
@RequestParam(value = "id", required = false) Integer id,
|
||||
@PathVariable(value = "id", required = false) Integer id,
|
||||
@RequestParam(value = "type") ResourceType type
|
||||
) {
|
||||
|
||||
|
|
@ -359,15 +355,15 @@ public class ResourcesController extends BaseController {
|
|||
*/
|
||||
@ApiOperation(value = "viewResource", notes = "VIEW_RESOURCE_BY_ID_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "id", value = "RESOURCE_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "skipLineNum", value = "SKIP_LINE_NUM", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "limit", value = "LIMIT", required = true, dataType = "Int", example = "100")
|
||||
@ApiImplicitParam(name = "id", value = "RESOURCE_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "skipLineNum", value = "SKIP_LINE_NUM", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "limit", value = "LIMIT", required = true, dataType = "Int", example = "100")
|
||||
})
|
||||
@GetMapping(value = "/view")
|
||||
@GetMapping(value = "/{id}/view")
|
||||
@ApiException(VIEW_RESOURCE_FILE_ON_LINE_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result viewResource(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestParam(value = "id") int resourceId,
|
||||
@PathVariable(value = "id") int resourceId,
|
||||
@RequestParam(value = "skipLineNum") int skipLineNum,
|
||||
@RequestParam(value = "limit") int limit
|
||||
) {
|
||||
|
|
@ -376,25 +372,18 @@ public class ResourcesController extends BaseController {
|
|||
|
||||
/**
|
||||
* create resource file online
|
||||
* @param loginUser
|
||||
* @param type
|
||||
* @param fileName
|
||||
* @param fileSuffix
|
||||
* @param description
|
||||
* @param content
|
||||
* @param pid
|
||||
* @param currentDir
|
||||
*
|
||||
* @return create result code
|
||||
*/
|
||||
@ApiOperation(value = "onlineCreateResource", notes = "ONLINE_CREATE_RESOURCE_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "type", value = "RESOURCE_TYPE", required = true, dataType = "ResourceType"),
|
||||
@ApiImplicitParam(name = "fileName", value = "RESOURCE_NAME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "suffix", value = "SUFFIX", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "description", value = "RESOURCE_DESC", dataType = "String"),
|
||||
@ApiImplicitParam(name = "content", value = "CONTENT", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "pid", value = "RESOURCE_PID", required = true, dataType = "Int", example = "10"),
|
||||
@ApiImplicitParam(name = "currentDir", value = "RESOURCE_CURRENTDIR", required = true, dataType = "String")
|
||||
@ApiImplicitParam(name = "type", value = "RESOURCE_TYPE", required = true, dataType = "ResourceType"),
|
||||
@ApiImplicitParam(name = "fileName", value = "RESOURCE_NAME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "suffix", value = "SUFFIX", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "description", value = "RESOURCE_DESC", dataType = "String"),
|
||||
@ApiImplicitParam(name = "content", value = "CONTENT", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "pid", value = "RESOURCE_PID", required = true, dataType = "Int", example = "10"),
|
||||
@ApiImplicitParam(name = "currentDir", value = "RESOURCE_CURRENTDIR", required = true, dataType = "String")
|
||||
})
|
||||
@PostMapping(value = "/online-create")
|
||||
@ApiException(CREATE_RESOURCE_FILE_ON_LINE_ERROR)
|
||||
|
|
@ -425,14 +414,14 @@ public class ResourcesController extends BaseController {
|
|||
*/
|
||||
@ApiOperation(value = "updateResourceContent", notes = "UPDATE_RESOURCE_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "id", value = "RESOURCE_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "content", value = "CONTENT", required = true, dataType = "String")
|
||||
@ApiImplicitParam(name = "id", value = "RESOURCE_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "content", value = "CONTENT", required = true, dataType = "String")
|
||||
})
|
||||
@PostMapping(value = "/update-content")
|
||||
@PutMapping(value = "/{id}/update-content")
|
||||
@ApiException(EDIT_RESOURCE_FILE_ON_LINE_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result updateResourceContent(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestParam(value = "id") int resourceId,
|
||||
@PathVariable(value = "id") int resourceId,
|
||||
@RequestParam(value = "content") String content
|
||||
) {
|
||||
if (StringUtils.isEmpty(content)) {
|
||||
|
|
@ -451,22 +440,22 @@ public class ResourcesController extends BaseController {
|
|||
*/
|
||||
@ApiOperation(value = "downloadResource", notes = "DOWNLOAD_RESOURCE_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "id", value = "RESOURCE_ID", required = true, dataType = "Int", example = "100")
|
||||
@ApiImplicitParam(name = "id", value = "RESOURCE_ID", required = true, dataType = "Int", example = "100")
|
||||
})
|
||||
@GetMapping(value = "/download")
|
||||
@GetMapping(value = "/{id}/download")
|
||||
@ResponseBody
|
||||
@ApiException(DOWNLOAD_RESOURCE_FILE_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public ResponseEntity downloadResource(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestParam(value = "id") int resourceId) throws Exception {
|
||||
@PathVariable(value = "id") int resourceId) throws Exception {
|
||||
Resource file = resourceService.downloadResource(resourceId);
|
||||
if (file == null) {
|
||||
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(Status.RESOURCE_NOT_EXIST.getMsg());
|
||||
}
|
||||
return ResponseEntity
|
||||
.ok()
|
||||
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + file.getFilename() + "\"")
|
||||
.body(file);
|
||||
.ok()
|
||||
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + file.getFilename() + "\"")
|
||||
.body(file);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -485,16 +474,16 @@ public class ResourcesController extends BaseController {
|
|||
*/
|
||||
@ApiOperation(value = "createUdfFunc", notes = "CREATE_UDF_FUNCTION_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "type", value = "UDF_TYPE", required = true, dataType = "UdfType"),
|
||||
@ApiImplicitParam(name = "funcName", value = "FUNC_NAME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "className", value = "CLASS_NAME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "argTypes", value = "ARG_TYPES", dataType = "String"),
|
||||
@ApiImplicitParam(name = "database", value = "DATABASE_NAME", dataType = "String"),
|
||||
@ApiImplicitParam(name = "description", value = "UDF_DESC", dataType = "String"),
|
||||
@ApiImplicitParam(name = "resourceId", value = "RESOURCE_ID", required = true, dataType = "Int", example = "100")
|
||||
@ApiImplicitParam(name = "type", value = "UDF_TYPE", required = true, dataType = "UdfType"),
|
||||
@ApiImplicitParam(name = "funcName", value = "FUNC_NAME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "className", value = "CLASS_NAME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "argTypes", value = "ARG_TYPES", dataType = "String"),
|
||||
@ApiImplicitParam(name = "database", value = "DATABASE_NAME", dataType = "String"),
|
||||
@ApiImplicitParam(name = "description", value = "UDF_DESC", dataType = "String"),
|
||||
@ApiImplicitParam(name = "resourceId", value = "RESOURCE_ID", required = true, dataType = "Int", example = "100")
|
||||
|
||||
})
|
||||
@PostMapping(value = "/udf-func/create")
|
||||
@PostMapping(value = "/{resourceId}/udf-func")
|
||||
@ResponseStatus(HttpStatus.CREATED)
|
||||
@ApiException(CREATE_UDF_FUNCTION_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
|
|
@ -505,7 +494,7 @@ public class ResourcesController extends BaseController {
|
|||
@RequestParam(value = "argTypes", required = false) String argTypes,
|
||||
@RequestParam(value = "database", required = false) String database,
|
||||
@RequestParam(value = "description", required = false) String description,
|
||||
@RequestParam(value = "resourceId") int resourceId) {
|
||||
@PathVariable(value = "resourceId") int resourceId) {
|
||||
return udfFuncService.createUdfFunction(loginUser, funcName, className, argTypes, database, description, type, resourceId);
|
||||
}
|
||||
|
||||
|
|
@ -518,15 +507,15 @@ public class ResourcesController extends BaseController {
|
|||
*/
|
||||
@ApiOperation(value = "viewUIUdfFunction", notes = "VIEW_UDF_FUNCTION_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "id", value = "RESOURCE_ID", required = true, dataType = "Int", example = "100")
|
||||
@ApiImplicitParam(name = "id", value = "RESOURCE_ID", required = true, dataType = "Int", example = "100")
|
||||
|
||||
})
|
||||
@GetMapping(value = "/udf-func/update-ui")
|
||||
@GetMapping(value = "/{id}/udf-func")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(VIEW_UDF_FUNCTION_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result viewUIUdfFunction(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestParam("id") int id) {
|
||||
@PathVariable("id") int id) {
|
||||
Map<String, Object> map = udfFuncService.queryUdfFuncDetail(id);
|
||||
return returnDataList(map);
|
||||
}
|
||||
|
|
@ -547,28 +536,28 @@ public class ResourcesController extends BaseController {
|
|||
*/
|
||||
@ApiOperation(value = "updateUdfFunc", notes = "UPDATE_UDF_FUNCTION_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "id", value = "UDF_ID", required = true, dataType = "Int"),
|
||||
@ApiImplicitParam(name = "type", value = "UDF_TYPE", required = true, dataType = "UdfType"),
|
||||
@ApiImplicitParam(name = "funcName", value = "FUNC_NAME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "className", value = "CLASS_NAME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "argTypes", value = "ARG_TYPES", dataType = "String"),
|
||||
@ApiImplicitParam(name = "database", value = "DATABASE_NAME", dataType = "String"),
|
||||
@ApiImplicitParam(name = "description", value = "UDF_DESC", dataType = "String"),
|
||||
@ApiImplicitParam(name = "resourceId", value = "RESOURCE_ID", required = true, dataType = "Int", example = "100")
|
||||
@ApiImplicitParam(name = "id", value = "UDF_ID", required = true, dataType = "Int"),
|
||||
@ApiImplicitParam(name = "type", value = "UDF_TYPE", required = true, dataType = "UdfType"),
|
||||
@ApiImplicitParam(name = "funcName", value = "FUNC_NAME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "className", value = "CLASS_NAME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "argTypes", value = "ARG_TYPES", dataType = "String"),
|
||||
@ApiImplicitParam(name = "database", value = "DATABASE_NAME", dataType = "String"),
|
||||
@ApiImplicitParam(name = "description", value = "UDF_DESC", dataType = "String"),
|
||||
@ApiImplicitParam(name = "resourceId", value = "RESOURCE_ID", required = true, dataType = "Int", example = "100")
|
||||
|
||||
})
|
||||
@PostMapping(value = "/udf-func/update")
|
||||
@PutMapping(value = "/{resourceId}/udf-func/{id}")
|
||||
@ApiException(UPDATE_UDF_FUNCTION_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result updateUdfFunc(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestParam(value = "id") int udfFuncId,
|
||||
@PathVariable(value = "id") int udfFuncId,
|
||||
@RequestParam(value = "type") UdfType type,
|
||||
@RequestParam(value = "funcName") String funcName,
|
||||
@RequestParam(value = "className") String className,
|
||||
@RequestParam(value = "argTypes", required = false) String argTypes,
|
||||
@RequestParam(value = "database", required = false) String database,
|
||||
@RequestParam(value = "description", required = false) String description,
|
||||
@RequestParam(value = "resourceId") int resourceId) {
|
||||
@PathVariable(value = "resourceId") int resourceId) {
|
||||
Map<String, Object> result = udfFuncService.updateUdfFunc(udfFuncId, funcName, className, argTypes, database, description, type, resourceId);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
|
@ -584,18 +573,18 @@ public class ResourcesController extends BaseController {
|
|||
*/
|
||||
@ApiOperation(value = "queryUdfFuncListPaging", notes = "QUERY_UDF_FUNCTION_LIST_PAGING_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "searchVal", value = "SEARCH_VAL", dataType = "String"),
|
||||
@ApiImplicitParam(name = "pageNo", value = "PAGE_NO", required = true, dataType = "Int", example = "1"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "PAGE_SIZE", required = true, dataType = "Int", example = "20")
|
||||
@ApiImplicitParam(name = "searchVal", value = "SEARCH_VAL", dataType = "String"),
|
||||
@ApiImplicitParam(name = "pageNo", value = "PAGE_NO", required = true, dataType = "Int", example = "1"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "PAGE_SIZE", required = true, dataType = "Int", example = "20")
|
||||
})
|
||||
@GetMapping(value = "/udf-func/list-paging")
|
||||
@GetMapping(value = "/udf-func")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(QUERY_UDF_FUNCTION_LIST_PAGING_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result<Object> queryUdfFuncListPaging(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestParam("pageNo") Integer pageNo,
|
||||
@RequestParam(value = "searchVal", required = false) String searchVal,
|
||||
@RequestParam("pageSize") Integer pageSize
|
||||
@RequestParam("pageNo") Integer pageNo,
|
||||
@RequestParam(value = "searchVal", required = false) String searchVal,
|
||||
@RequestParam("pageSize") Integer pageSize
|
||||
) {
|
||||
Result result = checkPageParams(pageNo, pageSize);
|
||||
if (!result.checkResult()) {
|
||||
|
|
@ -615,14 +604,14 @@ public class ResourcesController extends BaseController {
|
|||
*/
|
||||
@ApiOperation(value = "queryUdfFuncList", notes = "QUERY_UDF_FUNC_LIST_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "type", value = "UDF_TYPE", required = true, dataType = "UdfType")
|
||||
@ApiImplicitParam(name = "type", value = "UDF_TYPE", required = true, dataType = "UdfType")
|
||||
})
|
||||
@GetMapping(value = "/udf-func/list")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(QUERY_DATASOURCE_BY_TYPE_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result<Object> queryUdfFuncList(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestParam("type") UdfType type) {
|
||||
@RequestParam("type") UdfType type) {
|
||||
Map<String, Object> result = udfFuncService.queryUdfFuncList(loginUser, type.ordinal());
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
|
@ -636,7 +625,7 @@ public class ResourcesController extends BaseController {
|
|||
*/
|
||||
@ApiOperation(value = "verifyUdfFuncName", notes = "VERIFY_UDF_FUNCTION_NAME_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "name", value = "FUNC_NAME", required = true, dataType = "String")
|
||||
@ApiImplicitParam(name = "name", value = "FUNC_NAME", required = true, dataType = "String")
|
||||
|
||||
})
|
||||
@GetMapping(value = "/udf-func/verify-name")
|
||||
|
|
@ -659,14 +648,14 @@ public class ResourcesController extends BaseController {
|
|||
*/
|
||||
@ApiOperation(value = "deleteUdfFunc", notes = "DELETE_UDF_FUNCTION_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "id", value = "RESOURCE_ID", required = true, dataType = "Int", example = "100")
|
||||
@ApiImplicitParam(name = "id", value = "UDF_FUNC_ID", required = true, dataType = "Int", example = "100")
|
||||
})
|
||||
@GetMapping(value = "/udf-func/delete")
|
||||
@DeleteMapping(value = "/udf-func/{id}")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(DELETE_UDF_FUNCTION_ERROR)
|
||||
@AccessLogAnnotation
|
||||
public Result deleteUdfFunc(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestParam(value = "id") int udfFuncId
|
||||
@PathVariable(value = "id") int udfFuncId
|
||||
) {
|
||||
return udfFuncService.delete(udfFuncId);
|
||||
}
|
||||
|
|
@ -680,7 +669,7 @@ public class ResourcesController extends BaseController {
|
|||
*/
|
||||
@ApiOperation(value = "authorizedFile", notes = "AUTHORIZED_FILE_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "userId", value = "USER_ID", required = true, dataType = "Int", example = "100")
|
||||
@ApiImplicitParam(name = "userId", value = "USER_ID", required = true, dataType = "Int", example = "100")
|
||||
})
|
||||
@GetMapping(value = "/authed-file")
|
||||
@ResponseStatus(HttpStatus.CREATED)
|
||||
|
|
@ -702,9 +691,9 @@ public class ResourcesController extends BaseController {
|
|||
*/
|
||||
@ApiOperation(value = "authorizeResourceTree", notes = "AUTHORIZE_RESOURCE_TREE_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "userId", value = "USER_ID", required = true, dataType = "Int", example = "100")
|
||||
@ApiImplicitParam(name = "userId", value = "USER_ID", required = true, dataType = "Int", example = "100")
|
||||
})
|
||||
@GetMapping(value = "/authorize-resource-tree")
|
||||
@GetMapping(value = "/authed-resource-tree")
|
||||
@ResponseStatus(HttpStatus.CREATED)
|
||||
@ApiException(AUTHORIZE_RESOURCE_TREE)
|
||||
@AccessLogAnnotation
|
||||
|
|
@ -724,7 +713,7 @@ public class ResourcesController extends BaseController {
|
|||
*/
|
||||
@ApiOperation(value = "unauthUDFFunc", notes = "UNAUTHORIZED_UDF_FUNC_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "userId", value = "USER_ID", required = true, dataType = "Int", example = "100")
|
||||
@ApiImplicitParam(name = "userId", value = "USER_ID", required = true, dataType = "Int", example = "100")
|
||||
})
|
||||
@GetMapping(value = "/unauth-udf-func")
|
||||
@ResponseStatus(HttpStatus.CREATED)
|
||||
|
|
@ -747,7 +736,7 @@ public class ResourcesController extends BaseController {
|
|||
*/
|
||||
@ApiOperation(value = "authUDFFunc", notes = "AUTHORIZED_UDF_FUNC_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "userId", value = "USER_ID", required = true, dataType = "Int", example = "100")
|
||||
@ApiImplicitParam(name = "userId", value = "USER_ID", required = true, dataType = "Int", example = "100")
|
||||
})
|
||||
@GetMapping(value = "/authed-udf-func")
|
||||
@ResponseStatus(HttpStatus.CREATED)
|
||||
|
|
|
|||
|
|
@ -42,9 +42,11 @@ import java.util.Map;
|
|||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
import org.springframework.web.bind.annotation.RequestAttribute;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
|
@ -63,7 +65,7 @@ import springfox.documentation.annotations.ApiIgnore;
|
|||
*/
|
||||
@Api(tags = "SCHEDULER_TAG")
|
||||
@RestController
|
||||
@RequestMapping("/projects/{projectName}/schedule")
|
||||
@RequestMapping("/projects/{projectCode}/schedules")
|
||||
public class SchedulerController extends BaseController {
|
||||
|
||||
public static final String DEFAULT_WARNING_TYPE = "NONE";
|
||||
|
|
@ -78,8 +80,8 @@ public class SchedulerController extends BaseController {
|
|||
* create schedule
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param processDefinitionId process definition id
|
||||
* @param projectCode project code
|
||||
* @param processDefinitionCode process definition code
|
||||
* @param schedule scheduler
|
||||
* @param warningType warning type
|
||||
* @param warningGroupId warning group id
|
||||
|
|
@ -90,24 +92,23 @@ public class SchedulerController extends BaseController {
|
|||
*/
|
||||
@ApiOperation(value = "createSchedule", notes = "CREATE_SCHEDULE_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "processDefinitionId", value = "PROCESS_DEFINITION_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "schedule", value = "SCHEDULE", required = true, dataType = "String",
|
||||
example = "{'startTime':'2019-06-10 00:00:00','endTime':'2019-06-13 00:00:00','timezoneId':'America/Phoenix','crontab':'0 0 3/6 * * ? *'}"),
|
||||
@ApiImplicitParam(name = "processDefinitionCode", value = "PROCESS_DEFINITION_CODE", required = true, dataType = "Long", example = "100"),
|
||||
@ApiImplicitParam(name = "schedule", value = "SCHEDULE", dataType = "String",
|
||||
example = "{'startTime':'2019-06-10 00:00:00','endTime':'2019-06-13 00:00:00','timezoneId':'America/Phoenix','crontab':'0 0 3/6 * * ? *'}"),
|
||||
@ApiImplicitParam(name = "warningType", value = "WARNING_TYPE", type = "WarningType"),
|
||||
@ApiImplicitParam(name = "warningGroupId", value = "WARNING_GROUP_ID", dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "failureStrategy", value = "FAILURE_STRATEGY", type = "FailureStrategy"),
|
||||
@ApiImplicitParam(name = "workerGroupId", value = "WORKER_GROUP_ID", dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "workerGroup", value = "WORKER_GROUP", dataType = "String"),
|
||||
@ApiImplicitParam(name = "environmentCode", value = "ENVIRONMENT_CODE", dataType = "Long"),
|
||||
@ApiImplicitParam(name = "processInstancePriority", value = "PROCESS_INSTANCE_PRIORITY", type = "Priority"),
|
||||
})
|
||||
@PostMapping("/create")
|
||||
@PostMapping()
|
||||
@ResponseStatus(HttpStatus.CREATED)
|
||||
@ApiException(CREATE_SCHEDULE_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result createSchedule(@ApiIgnore @RequestAttribute(value = SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@RequestParam(value = "processDefinitionId") Integer processDefinitionId,
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@RequestParam(value = "processDefinitionCode") long processDefinitionCode,
|
||||
@RequestParam(value = "schedule") String schedule,
|
||||
@RequestParam(value = "warningType", required = false, defaultValue = DEFAULT_WARNING_TYPE) WarningType warningType,
|
||||
@RequestParam(value = "warningGroupId", required = false, defaultValue = DEFAULT_NOTIFY_GROUP_ID) int warningGroupId,
|
||||
|
|
@ -115,8 +116,8 @@ public class SchedulerController extends BaseController {
|
|||
@RequestParam(value = "workerGroup", required = false, defaultValue = "default") String workerGroup,
|
||||
@RequestParam(value = "environmentCode", required = false, defaultValue = "-1") Long environmentCode,
|
||||
@RequestParam(value = "processInstancePriority", required = false, defaultValue = DEFAULT_PROCESS_INSTANCE_PRIORITY) Priority processInstancePriority) {
|
||||
Map<String, Object> result = schedulerService.insertSchedule(loginUser, projectName, processDefinitionId, schedule,
|
||||
warningType, warningGroupId, failureStrategy, processInstancePriority, workerGroup, environmentCode);
|
||||
Map<String, Object> result = schedulerService.insertSchedule(loginUser, projectCode, processDefinitionCode, schedule,
|
||||
warningType, warningGroupId, failureStrategy, processInstancePriority, workerGroup, environmentCode);
|
||||
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
|
@ -125,7 +126,7 @@ public class SchedulerController extends BaseController {
|
|||
* updateProcessInstance schedule
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param id scheduler id
|
||||
* @param schedule scheduler
|
||||
* @param warningType warning type
|
||||
|
|
@ -138,23 +139,20 @@ public class SchedulerController extends BaseController {
|
|||
@ApiOperation(value = "updateSchedule", notes = "UPDATE_SCHEDULE_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "id", value = "SCHEDULE_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "schedule", value = "SCHEDULE", required = true, dataType = "String",
|
||||
example = "{'startTime':'2019-06-10 00:00:00','endTime':'2019-06-13 00:00:00',"
|
||||
+ "'crontab':'0 0 3/6 * * ? *'}"),
|
||||
@ApiImplicitParam(name = "schedule", value = "SCHEDULE", dataType = "String", example = "{'startTime':'2019-06-10 00:00:00','endTime':'2019-06-13 00:00:00','crontab':'0 0 3/6 * * ? *'}"),
|
||||
@ApiImplicitParam(name = "warningType", value = "WARNING_TYPE", type = "WarningType"),
|
||||
@ApiImplicitParam(name = "warningGroupId", value = "WARNING_GROUP_ID", dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "failureStrategy", value = "FAILURE_STRATEGY", type = "FailureStrategy"),
|
||||
@ApiImplicitParam(name = "workerGroupId", value = "WORKER_GROUP_ID", dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "workerGroup", value = "WORKER_GROUP", dataType = "String"),
|
||||
@ApiImplicitParam(name = "processInstancePriority", value = "PROCESS_INSTANCE_PRIORITY", type = "Priority"),
|
||||
@ApiImplicitParam(name = "environmentCode", value = "ENVIRONMENT_CODE", dataType = "Long"),
|
||||
@ApiImplicitParam(name = "processInstancePriority", value = "PROCESS_INSTANCE_PRIORITY", type = "Priority")
|
||||
})
|
||||
@PostMapping("/update")
|
||||
@PutMapping("/{id}")
|
||||
@ApiException(UPDATE_SCHEDULE_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result updateSchedule(@ApiIgnore @RequestAttribute(value = SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@RequestParam(value = "id") Integer id,
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@PathVariable(value = "id") Integer id,
|
||||
@RequestParam(value = "schedule") String schedule,
|
||||
@RequestParam(value = "warningType", required = false, defaultValue = DEFAULT_WARNING_TYPE) WarningType warningType,
|
||||
@RequestParam(value = "warningGroupId", required = false) int warningGroupId,
|
||||
|
|
@ -163,8 +161,8 @@ public class SchedulerController extends BaseController {
|
|||
@RequestParam(value = "environmentCode", required = false, defaultValue = "-1") Long environmentCode,
|
||||
@RequestParam(value = "processInstancePriority", required = false) Priority processInstancePriority) {
|
||||
|
||||
Map<String, Object> result = schedulerService.updateSchedule(loginUser, projectName, id, schedule,
|
||||
warningType, warningGroupId, failureStrategy, null, processInstancePriority, workerGroup, environmentCode);
|
||||
Map<String, Object> result = schedulerService.updateSchedule(loginUser, projectCode, id, schedule,
|
||||
warningType, warningGroupId, failureStrategy, processInstancePriority, workerGroup, environmentCode);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
|
|
@ -172,7 +170,7 @@ public class SchedulerController extends BaseController {
|
|||
* publish schedule setScheduleState
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param id scheduler id
|
||||
* @return publish result code
|
||||
*/
|
||||
|
|
@ -180,13 +178,13 @@ public class SchedulerController extends BaseController {
|
|||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "id", value = "SCHEDULE_ID", required = true, dataType = "Int", example = "100")
|
||||
})
|
||||
@PostMapping("/online")
|
||||
@PostMapping("/{id}/online")
|
||||
@ApiException(PUBLISH_SCHEDULE_ONLINE_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result online(@ApiIgnore @RequestAttribute(value = SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@RequestParam("id") Integer id) {
|
||||
Map<String, Object> result = schedulerService.setScheduleState(loginUser, projectName, id, ReleaseState.ONLINE);
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@PathVariable("id") Integer id) {
|
||||
Map<String, Object> result = schedulerService.setScheduleState(loginUser, projectCode, id, ReleaseState.ONLINE);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
|
|
@ -194,7 +192,7 @@ public class SchedulerController extends BaseController {
|
|||
* offline schedule
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param id schedule id
|
||||
* @return operation result code
|
||||
*/
|
||||
|
|
@ -202,14 +200,14 @@ public class SchedulerController extends BaseController {
|
|||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "id", value = "SCHEDULE_ID", required = true, dataType = "Int", example = "100")
|
||||
})
|
||||
@PostMapping("/offline")
|
||||
@PostMapping("/{id}/offline")
|
||||
@ApiException(OFFLINE_SCHEDULE_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result offline(@ApiIgnore @RequestAttribute(value = SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@RequestParam("id") Integer id) {
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@PathVariable("id") Integer id) {
|
||||
|
||||
Map<String, Object> result = schedulerService.setScheduleState(loginUser, projectName, id, ReleaseState.OFFLINE);
|
||||
Map<String, Object> result = schedulerService.setScheduleState(loginUser, projectCode, id, ReleaseState.OFFLINE);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
|
|
@ -217,8 +215,8 @@ public class SchedulerController extends BaseController {
|
|||
* query schedule list paging
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param processDefinitionId process definition id
|
||||
* @param projectCode project code
|
||||
* @param processDefinitionCode process definition code
|
||||
* @param pageNo page number
|
||||
* @param pageSize page size
|
||||
* @param searchVal search value
|
||||
|
|
@ -228,16 +226,15 @@ public class SchedulerController extends BaseController {
|
|||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "processDefinitionId", value = "PROCESS_DEFINITION_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "searchVal", value = "SEARCH_VAL", type = "String"),
|
||||
@ApiImplicitParam(name = "pageNo", value = "PAGE_NO", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "PAGE_SIZE", required = true, dataType = "Int", example = "100")
|
||||
|
||||
@ApiImplicitParam(name = "pageNo", value = "PAGE_NO", dataType = "Int", example = "1"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "PAGE_SIZE", dataType = "Int", example = "20")
|
||||
})
|
||||
@GetMapping("/list-paging")
|
||||
@GetMapping()
|
||||
@ApiException(QUERY_SCHEDULE_LIST_PAGING_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result queryScheduleListPaging(@ApiIgnore @RequestAttribute(value = SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@RequestParam Integer processDefinitionId,
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@RequestParam long processDefinitionCode,
|
||||
@RequestParam(value = "searchVal", required = false) String searchVal,
|
||||
@RequestParam("pageNo") Integer pageNo,
|
||||
@RequestParam("pageSize") Integer pageSize) {
|
||||
|
|
@ -246,32 +243,31 @@ public class SchedulerController extends BaseController {
|
|||
return result;
|
||||
}
|
||||
searchVal = ParameterUtils.handleEscapes(searchVal);
|
||||
result = schedulerService.querySchedule(loginUser, projectName, processDefinitionId, searchVal, pageNo, pageSize);
|
||||
result = schedulerService.querySchedule(loginUser, projectCode, processDefinitionCode, searchVal, pageNo, pageSize);
|
||||
return result;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* delete schedule by id
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param scheduleId schedule id
|
||||
* @param projectCode project code
|
||||
* @param id scheule id
|
||||
* @return delete result code
|
||||
*/
|
||||
@ApiOperation(value = "deleteScheduleById", notes = "OFFLINE_SCHEDULE_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "scheduleId", value = "SCHEDULE_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "projectName", value = "PROJECT_NAME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "id", value = "SCHEDULE_ID", required = true, dataType = "Int", example = "100")
|
||||
})
|
||||
@GetMapping(value = "/delete")
|
||||
@DeleteMapping(value = "/{id}")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(DELETE_SCHEDULE_CRON_BY_ID_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result deleteScheduleById(@RequestAttribute(value = SESSION_USER) User loginUser,
|
||||
@PathVariable String projectName,
|
||||
@RequestParam("scheduleId") Integer scheduleId
|
||||
) {
|
||||
Map<String, Object> result = schedulerService.deleteScheduleById(loginUser, projectName, scheduleId);
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@PathVariable("id") Integer id) {
|
||||
Map<String, Object> result = schedulerService.deleteScheduleById(loginUser, projectCode, id);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
|
|
@ -279,7 +275,7 @@ public class SchedulerController extends BaseController {
|
|||
* query schedule list
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @return schedule list
|
||||
*/
|
||||
@ApiOperation(value = "queryScheduleList", notes = "QUERY_SCHEDULE_LIST_NOTES")
|
||||
|
|
@ -287,8 +283,8 @@ public class SchedulerController extends BaseController {
|
|||
@ApiException(QUERY_SCHEDULE_LIST_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result queryScheduleList(@ApiIgnore @RequestAttribute(value = SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName) {
|
||||
Map<String, Object> result = schedulerService.queryScheduleList(loginUser, projectName);
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode) {
|
||||
Map<String, Object> result = schedulerService.queryScheduleList(loginUser, projectCode);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
|
|
@ -296,25 +292,20 @@ public class SchedulerController extends BaseController {
|
|||
* preview schedule
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param schedule schedule expression
|
||||
* @return the next five fire time
|
||||
*/
|
||||
@ApiOperation(value = "previewSchedule", notes = "PREVIEW_SCHEDULE_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "schedule", value = "SCHEDULE", required = true, dataType = "String",
|
||||
example = "{'startTime':'2019-06-10 00:00:00',"
|
||||
+ "'endTime':'2019-06-13 00:00:00','crontab':'0 0 3/6 * * ? *'}"),
|
||||
@ApiImplicitParam(name = "schedule", value = "SCHEDULE", dataType = "String", example = "{'startTime':'2019-06-10 00:00:00','endTime':'2019-06-13 00:00:00','crontab':'0 0 3/6 * * ? *'}"),
|
||||
})
|
||||
@PostMapping("/preview")
|
||||
@ResponseStatus(HttpStatus.CREATED)
|
||||
@ApiException(PREVIEW_SCHEDULE_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result previewSchedule(@ApiIgnore @RequestAttribute(value = SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@RequestParam(value = "schedule") String schedule
|
||||
) {
|
||||
Map<String, Object> result = schedulerService.previewSchedule(loginUser, projectName, schedule);
|
||||
@RequestParam(value = "schedule") String schedule) {
|
||||
Map<String, Object> result = schedulerService.previewSchedule(loginUser, schedule);
|
||||
return returnDataList(result);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,313 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The ASF licenses this file to You 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 org.apache.dolphinscheduler.api.controller;
|
||||
|
||||
import static org.apache.dolphinscheduler.api.enums.Status.CREATE_TASK_DEFINITION_ERROR;
|
||||
import static org.apache.dolphinscheduler.api.enums.Status.DELETE_TASK_DEFINE_BY_CODE_ERROR;
|
||||
import static org.apache.dolphinscheduler.api.enums.Status.DELETE_TASK_DEFINITION_VERSION_ERROR;
|
||||
import static org.apache.dolphinscheduler.api.enums.Status.LOGIN_USER_QUERY_PROJECT_LIST_PAGING_ERROR;
|
||||
import static org.apache.dolphinscheduler.api.enums.Status.QUERY_DETAIL_OF_TASK_DEFINITION_ERROR;
|
||||
import static org.apache.dolphinscheduler.api.enums.Status.QUERY_TASK_DEFINITION_LIST_PAGING_ERROR;
|
||||
import static org.apache.dolphinscheduler.api.enums.Status.QUERY_TASK_DEFINITION_VERSIONS_ERROR;
|
||||
import static org.apache.dolphinscheduler.api.enums.Status.SWITCH_TASK_DEFINITION_VERSION_ERROR;
|
||||
import static org.apache.dolphinscheduler.api.enums.Status.UPDATE_TASK_DEFINITION_ERROR;
|
||||
|
||||
import org.apache.dolphinscheduler.api.aspect.AccessLogAnnotation;
|
||||
import org.apache.dolphinscheduler.api.exceptions.ApiException;
|
||||
import org.apache.dolphinscheduler.api.service.TaskDefinitionService;
|
||||
import org.apache.dolphinscheduler.api.utils.Result;
|
||||
import org.apache.dolphinscheduler.common.Constants;
|
||||
import org.apache.dolphinscheduler.common.utils.ParameterUtils;
|
||||
import org.apache.dolphinscheduler.dao.entity.User;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
import org.springframework.web.bind.annotation.RequestAttribute;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.ResponseStatus;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiImplicitParams;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import io.swagger.annotations.ApiParam;
|
||||
import springfox.documentation.annotations.ApiIgnore;
|
||||
|
||||
/**
|
||||
* task definition controller
|
||||
*/
|
||||
@Api(tags = "TASK_DEFINITION_TAG")
|
||||
@RestController
|
||||
@RequestMapping("projects/{projectCode}/task-definition")
|
||||
public class TaskDefinitionController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private TaskDefinitionService taskDefinitionService;
|
||||
|
||||
/**
|
||||
* create task definition
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectCode project code
|
||||
* @param taskDefinitionJson task definition json
|
||||
* @return create result code
|
||||
*/
|
||||
@ApiOperation(value = "save", notes = "CREATE_TASK_DEFINITION_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "projectCode", value = "PROJECT_CODE", required = true, type = "Long"),
|
||||
@ApiImplicitParam(name = "taskDefinitionJson", value = "TASK_DEFINITION_JSON", required = true, type = "String")
|
||||
})
|
||||
@PostMapping()
|
||||
@ResponseStatus(HttpStatus.CREATED)
|
||||
@ApiException(CREATE_TASK_DEFINITION_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result createTaskDefinition(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@RequestParam(value = "taskDefinitionJson", required = true) String taskDefinitionJson) {
|
||||
Map<String, Object> result = taskDefinitionService.createTaskDefinition(loginUser, projectCode, taskDefinitionJson);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* update task definition
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectCode project code
|
||||
* @param code task definition code
|
||||
* @param taskDefinitionJsonObj task definition json object
|
||||
* @return update result code
|
||||
*/
|
||||
@ApiOperation(value = "update", notes = "UPDATE_TASK_DEFINITION_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "projectCode", value = "PROJECT_CODE", required = true, type = "Long"),
|
||||
@ApiImplicitParam(name = "code", value = "TASK_DEFINITION_CODE", required = true, dataType = "Long", example = "1"),
|
||||
@ApiImplicitParam(name = "taskDefinitionJsonObj", value = "TASK_DEFINITION_JSON", required = true, type = "String")
|
||||
})
|
||||
@PutMapping(value = "/{code}")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(UPDATE_TASK_DEFINITION_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result updateTaskDefinition(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@PathVariable(value = "code") long code,
|
||||
@RequestParam(value = "taskDefinitionJsonObj", required = true) String taskDefinitionJsonObj) {
|
||||
Map<String, Object> result = taskDefinitionService.updateTaskDefinition(loginUser, projectCode, code, taskDefinitionJsonObj);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* query task definition version paging list info
|
||||
*
|
||||
* @param loginUser login user info
|
||||
* @param projectCode project code
|
||||
* @param code task definition code
|
||||
* @param pageNo the task definition version list current page number
|
||||
* @param pageSize the task definition version list page size
|
||||
* @param code the task definition code
|
||||
* @return the task definition version list
|
||||
*/
|
||||
@ApiOperation(value = "queryVersions", notes = "QUERY_TASK_DEFINITION_VERSIONS_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "code", value = "TASK_DEFINITION_CODE", required = true, dataType = "Long", example = "1"),
|
||||
@ApiImplicitParam(name = "pageNo", value = "PAGE_NO", required = true, dataType = "Int", example = "1"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "PAGE_SIZE", required = true, dataType = "Int", example = "10")
|
||||
})
|
||||
@GetMapping(value = "/{code}/versions")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(QUERY_TASK_DEFINITION_VERSIONS_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result queryTaskDefinitionVersions(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@PathVariable(value = "code") long code,
|
||||
@RequestParam(value = "pageNo") int pageNo,
|
||||
@RequestParam(value = "pageSize") int pageSize) {
|
||||
Result result = checkPageParams(pageNo, pageSize);
|
||||
if (!result.checkResult()) {
|
||||
return result;
|
||||
}
|
||||
return taskDefinitionService.queryTaskDefinitionVersions(loginUser, projectCode, code, pageNo, pageSize);
|
||||
}
|
||||
|
||||
/**
|
||||
* switch task definition version
|
||||
*
|
||||
* @param loginUser login user info
|
||||
* @param projectCode project code
|
||||
* @param code the task definition code
|
||||
* @param version the version user want to switch
|
||||
* @return switch version result code
|
||||
*/
|
||||
@ApiOperation(value = "switchVersion", notes = "SWITCH_TASK_DEFINITION_VERSION_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "code", value = "TASK_DEFINITION_CODE", required = true, dataType = "Long", example = "1"),
|
||||
@ApiImplicitParam(name = "version", value = "VERSION", required = true, dataType = "Int", example = "100")
|
||||
})
|
||||
@GetMapping(value = "/{code}/versions/{version}")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(SWITCH_TASK_DEFINITION_VERSION_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result switchTaskDefinitionVersion(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@PathVariable(value = "code") long code,
|
||||
@PathVariable(value = "version") int version) {
|
||||
Map<String, Object> result = taskDefinitionService.switchVersion(loginUser, projectCode, code, version);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* delete the certain task definition version by version and code
|
||||
*
|
||||
* @param loginUser login user info
|
||||
* @param projectCode project code
|
||||
* @param code the task definition code
|
||||
* @param version the task definition version user want to delete
|
||||
* @return delete version result code
|
||||
*/
|
||||
@ApiOperation(value = "deleteVersion", notes = "DELETE_TASK_DEFINITION_VERSION_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "code", value = "TASK_DEFINITION_CODE", required = true, dataType = "Long", example = "1"),
|
||||
@ApiImplicitParam(name = "version", value = "VERSION", required = true, dataType = "Int", example = "100")
|
||||
})
|
||||
@DeleteMapping(value = "/{code}/versions/{version}")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(DELETE_TASK_DEFINITION_VERSION_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result deleteTaskDefinitionVersion(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@PathVariable(value = "code") long code,
|
||||
@PathVariable(value = "version") int version) {
|
||||
Map<String, Object> result = taskDefinitionService.deleteByCodeAndVersion(loginUser, projectCode, code, version);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* delete task definition by code
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectCode project code
|
||||
* @param code the task definition code
|
||||
* @return delete result code
|
||||
*/
|
||||
@ApiOperation(value = "deleteTaskDefinition", notes = "DELETE_TASK_DEFINITION_BY_CODE_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "code", value = "TASK_DEFINITION_CODE", required = true, dataType = "Long", example = "1")
|
||||
})
|
||||
@DeleteMapping(value = "/{code}")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(DELETE_TASK_DEFINE_BY_CODE_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result deleteTaskDefinitionByCode(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@PathVariable(value = "code") long code) {
|
||||
Map<String, Object> result = taskDefinitionService.deleteTaskDefinitionByCode(loginUser, projectCode, code);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* query detail of task definition by code
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectCode project code
|
||||
* @param code the task definition code
|
||||
* @return task definition detail
|
||||
*/
|
||||
@ApiOperation(value = "queryTaskDefinitionByCode", notes = "QUERY_TASK_DEFINITION_DETAIL_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "code", value = "TASK_DEFINITION_CODE", required = true, dataType = "Long", example = "1")
|
||||
})
|
||||
@GetMapping(value = "/{code}")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(QUERY_DETAIL_OF_TASK_DEFINITION_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result queryTaskDefinitionDetail(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@PathVariable(value = "code") long code) {
|
||||
Map<String, Object> result = taskDefinitionService.queryTaskDefinitionDetail(loginUser, projectCode, code);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* query task definition list paging
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectCode project code
|
||||
* @param taskType taskType
|
||||
* @param searchVal search value
|
||||
* @param userId user id
|
||||
* @param pageNo page number
|
||||
* @param pageSize page size
|
||||
* @return task definition page
|
||||
*/
|
||||
@ApiOperation(value = "queryTaskDefinitionListPaging", notes = "QUERY_TASK_DEFINITION_LIST_PAGING_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "taskType", value = "TASK_TYPE", required = false, type = "String"),
|
||||
@ApiImplicitParam(name = "searchVal", value = "SEARCH_VAL", required = false, type = "String"),
|
||||
@ApiImplicitParam(name = "userId", value = "USER_ID", required = false, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "pageNo", value = "PAGE_NO", required = true, dataType = "Int", example = "1"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "PAGE_SIZE", required = true, dataType = "Int", example = "10")
|
||||
})
|
||||
@GetMapping()
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(QUERY_TASK_DEFINITION_LIST_PAGING_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result queryTaskDefinitionListPaging(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@RequestParam(value = "taskType", required = false) String taskType,
|
||||
@RequestParam(value = "searchVal", required = false) String searchVal,
|
||||
@RequestParam(value = "userId", required = false, defaultValue = "0") Integer userId,
|
||||
@RequestParam("pageNo") Integer pageNo,
|
||||
@RequestParam("pageSize") Integer pageSize) {
|
||||
Result result = checkPageParams(pageNo, pageSize);
|
||||
if (!result.checkResult()) {
|
||||
return result;
|
||||
}
|
||||
taskType = ParameterUtils.handleEscapes(taskType);
|
||||
searchVal = ParameterUtils.handleEscapes(searchVal);
|
||||
return taskDefinitionService.queryTaskDefinitionListPaging(loginUser, projectCode, taskType, searchVal, userId, pageNo, pageSize);
|
||||
}
|
||||
|
||||
/**
|
||||
* gen task code list
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param genNum gen num
|
||||
* @return task code list
|
||||
*/
|
||||
@ApiOperation(value = "genTaskCodeList", notes = "GEN_TASK_CODE_LIST_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "genNum", value = "GEN_NUM", required = true, dataType = "Int", example = "1")
|
||||
})
|
||||
@GetMapping(value = "/gen-task-codes")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(LOGIN_USER_QUERY_PROJECT_LIST_PAGING_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result genTaskCodeList(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestParam("genNum") Integer genNum) {
|
||||
Map<String, Object> result = taskDefinitionService.genTaskCodeList(loginUser, genNum);
|
||||
return returnDataList(result);
|
||||
}
|
||||
}
|
||||
|
|
@ -54,49 +54,48 @@ import springfox.documentation.annotations.ApiIgnore;
|
|||
*/
|
||||
@Api(tags = "TASK_INSTANCE_TAG")
|
||||
@RestController
|
||||
@RequestMapping("/projects/{projectName}/task-instance")
|
||||
@RequestMapping("/projects/{projectCode}/task-instances")
|
||||
public class TaskInstanceController extends BaseController {
|
||||
|
||||
|
||||
@Autowired
|
||||
TaskInstanceService taskInstanceService;
|
||||
|
||||
/**
|
||||
* query task list paging
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param loginUser login user
|
||||
* @param projectCode project code
|
||||
* @param processInstanceId process instance id
|
||||
* @param searchVal search value
|
||||
* @param taskName task name
|
||||
* @param stateType state type
|
||||
* @param host host
|
||||
* @param startTime start time
|
||||
* @param endTime end time
|
||||
* @param pageNo page number
|
||||
* @param pageSize page size
|
||||
* @param searchVal search value
|
||||
* @param taskName task name
|
||||
* @param stateType state type
|
||||
* @param host host
|
||||
* @param startTime start time
|
||||
* @param endTime end time
|
||||
* @param pageNo page number
|
||||
* @param pageSize page size
|
||||
* @return task list page
|
||||
*/
|
||||
@ApiOperation(value = "queryTaskListPaging", notes = "QUERY_TASK_INSTANCE_LIST_PAGING_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "processInstanceId", value = "PROCESS_INSTANCE_ID", required = false, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "processInstanceName", value = "PROCESS_INSTANCE_NAME", required = false, type = "String"),
|
||||
@ApiImplicitParam(name = "searchVal", value = "SEARCH_VAL", type = "String"),
|
||||
@ApiImplicitParam(name = "taskName", value = "TASK_NAME", type = "String"),
|
||||
@ApiImplicitParam(name = "executorName", value = "EXECUTOR_NAME", type = "String"),
|
||||
@ApiImplicitParam(name = "stateType", value = "EXECUTION_STATUS", type = "ExecutionStatus"),
|
||||
@ApiImplicitParam(name = "host", value = "HOST", type = "String"),
|
||||
@ApiImplicitParam(name = "startDate", value = "START_DATE", type = "String"),
|
||||
@ApiImplicitParam(name = "endDate", value = "END_DATE", type = "String"),
|
||||
@ApiImplicitParam(name = "pageNo", value = "PAGE_NO", required = true, dataType = "Int", example = "1"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "PAGE_SIZE", required = true, dataType = "Int", example = "20")
|
||||
@ApiImplicitParam(name = "processInstanceId", value = "PROCESS_INSTANCE_ID", required = false, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "processInstanceName", value = "PROCESS_INSTANCE_NAME", required = false, type = "String"),
|
||||
@ApiImplicitParam(name = "searchVal", value = "SEARCH_VAL", type = "String"),
|
||||
@ApiImplicitParam(name = "taskName", value = "TASK_NAME", type = "String"),
|
||||
@ApiImplicitParam(name = "executorName", value = "EXECUTOR_NAME", type = "String"),
|
||||
@ApiImplicitParam(name = "stateType", value = "EXECUTION_STATUS", type = "ExecutionStatus"),
|
||||
@ApiImplicitParam(name = "host", value = "HOST", type = "String"),
|
||||
@ApiImplicitParam(name = "startDate", value = "START_DATE", type = "String"),
|
||||
@ApiImplicitParam(name = "endDate", value = "END_DATE", type = "String"),
|
||||
@ApiImplicitParam(name = "pageNo", value = "PAGE_NO", required = true, dataType = "Int", example = "1"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "PAGE_SIZE", required = true, dataType = "Int", example = "20")
|
||||
})
|
||||
@GetMapping("/list-paging")
|
||||
@GetMapping()
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(QUERY_TASK_LIST_PAGING_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result queryTaskListPaging(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@RequestParam(value = "processInstanceId", required = false, defaultValue = "0") Integer processInstanceId,
|
||||
@RequestParam(value = "processInstanceName", required = false) String processInstanceName,
|
||||
@RequestParam(value = "searchVal", required = false) String searchVal,
|
||||
|
|
@ -113,31 +112,31 @@ public class TaskInstanceController extends BaseController {
|
|||
return result;
|
||||
}
|
||||
searchVal = ParameterUtils.handleEscapes(searchVal);
|
||||
result = taskInstanceService.queryTaskListPaging(
|
||||
loginUser, projectName, processInstanceId, processInstanceName, taskName, executorName, startTime, endTime, searchVal, stateType, host, pageNo, pageSize);
|
||||
result = taskInstanceService.queryTaskListPaging(loginUser, projectCode, processInstanceId, processInstanceName,
|
||||
taskName, executorName, startTime, endTime, searchVal, stateType, host, pageNo, pageSize);
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* change one task instance's state from FAILURE to FORCED_SUCCESS
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param taskInstanceId task instance id
|
||||
* @param loginUser login user
|
||||
* @param projectCode project code
|
||||
* @param id task instance id
|
||||
* @return the result code and msg
|
||||
*/
|
||||
@ApiOperation(value = "force-success", notes = "FORCE_TASK_SUCCESS")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "taskInstanceId", value = "TASK_INSTANCE_ID", required = true, dataType = "Int", example = "12")
|
||||
@ApiImplicitParam(name = "id", value = "TASK_INSTANCE_ID", required = true, dataType = "Int", example = "12")
|
||||
})
|
||||
@PostMapping(value = "/force-success")
|
||||
@PostMapping(value = "/{id}/force-success")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(FORCE_TASK_SUCCESS_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result<Object> forceTaskSuccess(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@RequestParam(value = "taskInstanceId") Integer taskInstanceId) {
|
||||
Map<String, Object> result = taskInstanceService.forceTaskSuccess(loginUser, projectName, taskInstanceId);
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@PathVariable(value = "id") Integer id) {
|
||||
Map<String, Object> result = taskInstanceService.forceTaskSuccess(loginUser, projectCode, id);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -36,8 +36,11 @@ import java.util.Map;
|
|||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
import org.springframework.web.bind.annotation.RequestAttribute;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
|
@ -55,7 +58,7 @@ import springfox.documentation.annotations.ApiIgnore;
|
|||
*/
|
||||
@Api(tags = "TENANT_TAG")
|
||||
@RestController
|
||||
@RequestMapping("/tenant")
|
||||
@RequestMapping("/tenants")
|
||||
public class TenantController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
|
|
@ -72,12 +75,11 @@ public class TenantController extends BaseController {
|
|||
*/
|
||||
@ApiOperation(value = "createTenant", notes = "CREATE_TENANT_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "tenantCode", value = "TENANT_CODE", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "queueId", value = "QUEUE_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "description", value = "TENANT_DESC", dataType = "String")
|
||||
|
||||
@ApiImplicitParam(name = "tenantCode", value = "TENANT_CODE", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "queueId", value = "QUEUE_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "description", value = "TENANT_DESC", dataType = "String")
|
||||
})
|
||||
@PostMapping(value = "/create")
|
||||
@PostMapping()
|
||||
@ResponseStatus(HttpStatus.CREATED)
|
||||
@ApiException(CREATE_TENANT_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
|
|
@ -101,11 +103,11 @@ public class TenantController extends BaseController {
|
|||
*/
|
||||
@ApiOperation(value = "queryTenantlistPaging", notes = "QUERY_TENANT_LIST_PAGING_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "searchVal", value = "SEARCH_VAL", dataType = "String"),
|
||||
@ApiImplicitParam(name = "pageNo", value = "PAGE_NO", required = true, dataType = "Int", example = "1"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "PAGE_SIZE", required = true, dataType = "Int", example = "20")
|
||||
@ApiImplicitParam(name = "searchVal", value = "SEARCH_VAL", dataType = "String"),
|
||||
@ApiImplicitParam(name = "pageNo", value = "PAGE_NO", required = true, dataType = "Int", example = "1"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "PAGE_SIZE", required = true, dataType = "Int", example = "20")
|
||||
})
|
||||
@GetMapping(value = "/list-paging")
|
||||
@GetMapping()
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(QUERY_TENANT_LIST_PAGING_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
|
|
@ -153,18 +155,17 @@ public class TenantController extends BaseController {
|
|||
*/
|
||||
@ApiOperation(value = "updateTenant", notes = "UPDATE_TENANT_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "id", value = "TENANT_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "tenantCode", value = "TENANT_CODE", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "queueId", value = "QUEUE_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "description", value = "TENANT_DESC", type = "String")
|
||||
|
||||
@ApiImplicitParam(name = "id", value = "TENANT_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "tenantCode", value = "TENANT_CODE", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "queueId", value = "QUEUE_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "description", value = "TENANT_DESC", type = "String")
|
||||
})
|
||||
@PostMapping(value = "/update")
|
||||
@PutMapping(value = "/{id}")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(UPDATE_TENANT_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result updateTenant(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestParam(value = "id") int id,
|
||||
@PathVariable(value = "id") int id,
|
||||
@RequestParam(value = "tenantCode") String tenantCode,
|
||||
@RequestParam(value = "queueId") int queueId,
|
||||
@RequestParam(value = "description", required = false) String description) throws Exception {
|
||||
|
|
@ -182,15 +183,14 @@ public class TenantController extends BaseController {
|
|||
*/
|
||||
@ApiOperation(value = "deleteTenantById", notes = "DELETE_TENANT_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "id", value = "TENANT_ID", required = true, dataType = "Int", example = "100")
|
||||
|
||||
@ApiImplicitParam(name = "id", value = "TENANT_ID", required = true, dataType = "Int", example = "100")
|
||||
})
|
||||
@PostMapping(value = "/delete")
|
||||
@DeleteMapping(value = "/{id}")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(DELETE_TENANT_BY_ID_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result deleteTenantById(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestParam(value = "id") int id) throws Exception {
|
||||
@PathVariable(value = "id") int id) throws Exception {
|
||||
Map<String, Object> result = tenantService.deleteTenantById(loginUser, id);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
|
@ -204,9 +204,9 @@ public class TenantController extends BaseController {
|
|||
*/
|
||||
@ApiOperation(value = "verifyTenantCode", notes = "VERIFY_TENANT_CODE_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "tenantCode", value = "TENANT_CODE", required = true, dataType = "String")
|
||||
@ApiImplicitParam(name = "tenantCode", value = "TENANT_CODE", required = true, dataType = "String")
|
||||
})
|
||||
@GetMapping(value = "/verify-tenant-code")
|
||||
@GetMapping(value = "/verify-code")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(VERIFY_OS_TENANT_CODE_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
|
|
|
|||
|
|
@ -31,6 +31,8 @@ import java.util.Map;
|
|||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestAttribute;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
|
@ -62,7 +64,7 @@ public class UiPluginController extends BaseController {
|
|||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "pluginType", value = "pluginType", required = true, dataType = "PluginType"),
|
||||
})
|
||||
@PostMapping(value = "/queryUiPluginsByType")
|
||||
@GetMapping(value = "/query-by-type")
|
||||
@ResponseStatus(HttpStatus.CREATED)
|
||||
@ApiException(QUERY_PLUGINS_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
|
|
@ -75,14 +77,14 @@ public class UiPluginController extends BaseController {
|
|||
|
||||
@ApiOperation(value = "queryUiPluginDetailById", notes = "QUERY_UI_PLUGIN_DETAIL_BY_ID")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "pluginId", value = "PLUGIN_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "id", value = "PLUGIN_ID", required = true, dataType = "Int", example = "100"),
|
||||
})
|
||||
@PostMapping(value = "/queryUiPluginDetailById")
|
||||
@GetMapping(value = "/{id}")
|
||||
@ResponseStatus(HttpStatus.CREATED)
|
||||
@ApiException(QUERY_PLUGINS_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result queryUiPluginDetailById(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestParam("pluginId") Integer pluginId) {
|
||||
@PathVariable("id") Integer pluginId) {
|
||||
|
||||
Map<String, Object> result = uiPluginService.queryUiPluginDetailById(pluginId);
|
||||
return returnDataList(result);
|
||||
|
|
|
|||
|
|
@ -79,24 +79,24 @@ public class UsersController extends BaseController {
|
|||
/**
|
||||
* create user
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param userName user name
|
||||
* @param loginUser login user
|
||||
* @param userName user name
|
||||
* @param userPassword user password
|
||||
* @param email email
|
||||
* @param tenantId tenant id
|
||||
* @param phone phone
|
||||
* @param queue queue
|
||||
* @param email email
|
||||
* @param tenantId tenant id
|
||||
* @param phone phone
|
||||
* @param queue queue
|
||||
* @return create result code
|
||||
*/
|
||||
@ApiOperation(value = "createUser", notes = "CREATE_USER_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "userName", value = "USER_NAME", required = true, type = "String"),
|
||||
@ApiImplicitParam(name = "userPassword", value = "USER_PASSWORD", required = true, type = "String"),
|
||||
@ApiImplicitParam(name = "tenantId", value = "TENANT_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "queue", value = "QUEUE", dataType = "String"),
|
||||
@ApiImplicitParam(name = "email", value = "EMAIL", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "phone", value = "PHONE", dataType = "String"),
|
||||
@ApiImplicitParam(name = "state", value = "STATE", dataType = "Int", example = "1")
|
||||
@ApiImplicitParam(name = "userName", value = "USER_NAME", required = true, type = "String"),
|
||||
@ApiImplicitParam(name = "userPassword", value = "USER_PASSWORD", required = true, type = "String"),
|
||||
@ApiImplicitParam(name = "tenantId", value = "TENANT_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "queue", value = "QUEUE", dataType = "String"),
|
||||
@ApiImplicitParam(name = "email", value = "EMAIL", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "phone", value = "PHONE", dataType = "String"),
|
||||
@ApiImplicitParam(name = "state", value = "STATE", dataType = "Int", example = "1")
|
||||
})
|
||||
@PostMapping(value = "/create")
|
||||
@ResponseStatus(HttpStatus.CREATED)
|
||||
|
|
@ -118,16 +118,16 @@ public class UsersController extends BaseController {
|
|||
* query user list paging
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param pageNo page number
|
||||
* @param searchVal search value
|
||||
* @param pageSize page size
|
||||
* @param pageNo page number
|
||||
* @param searchVal search avlue
|
||||
* @param pageSize page size
|
||||
* @return user list page
|
||||
*/
|
||||
@ApiOperation(value = "queryUserList", notes = "QUERY_USER_LIST_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "pageNo", value = "PAGE_NO", required = true, dataType = "Int", example = "1"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "PAGE_SIZE", required = true, dataType = "Int", example = "10"),
|
||||
@ApiImplicitParam(name = "searchVal", value = "SEARCH_VAL", type = "String")
|
||||
@ApiImplicitParam(name = "pageNo", value = "PAGE_NO", required = true, dataType = "Int", example = "1"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "PAGE_SIZE", required = true, dataType = "Int", example = "10"),
|
||||
@ApiImplicitParam(name = "searchVal", value = "SEARCH_VAL", type = "String")
|
||||
})
|
||||
@GetMapping(value = "/list-paging")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
|
|
@ -151,26 +151,26 @@ public class UsersController extends BaseController {
|
|||
/**
|
||||
* update user
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param id user id
|
||||
* @param userName user name
|
||||
* @param loginUser login user
|
||||
* @param id user id
|
||||
* @param userName user name
|
||||
* @param userPassword user password
|
||||
* @param email email
|
||||
* @param tenantId tenant id
|
||||
* @param phone phone
|
||||
* @param queue queue
|
||||
* @param email email
|
||||
* @param tenantId tennat id
|
||||
* @param phone phone
|
||||
* @param queue queue
|
||||
* @return update result code
|
||||
*/
|
||||
@ApiOperation(value = "updateUser", notes = "UPDATE_USER_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "id", value = "USER_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "userName", value = "USER_NAME", required = true, type = "String"),
|
||||
@ApiImplicitParam(name = "userPassword", value = "USER_PASSWORD", required = true, type = "String"),
|
||||
@ApiImplicitParam(name = "tenantId", value = "TENANT_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "queue", value = "QUEUE", dataType = "String"),
|
||||
@ApiImplicitParam(name = "email", value = "EMAIL", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "phone", value = "PHONE", dataType = "String"),
|
||||
@ApiImplicitParam(name = "state", value = "STATE", dataType = "Int", example = "1")
|
||||
@ApiImplicitParam(name = "id", value = "USER_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "userName", value = "USER_NAME", required = true, type = "String"),
|
||||
@ApiImplicitParam(name = "userPassword", value = "USER_PASSWORD", required = true, type = "String"),
|
||||
@ApiImplicitParam(name = "tenantId", value = "TENANT_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "queue", value = "QUEUE", dataType = "String"),
|
||||
@ApiImplicitParam(name = "email", value = "EMAIL", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "phone", value = "PHONE", dataType = "String"),
|
||||
@ApiImplicitParam(name = "state", value = "STATE", dataType = "Int", example = "1")
|
||||
})
|
||||
@PostMapping(value = "/update")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
|
|
@ -193,12 +193,12 @@ public class UsersController extends BaseController {
|
|||
* delete user by id
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param id user id
|
||||
* @param id user id
|
||||
* @return delete result code
|
||||
*/
|
||||
@ApiOperation(value = "delUserById", notes = "DELETE_USER_BY_ID_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "id", value = "USER_ID", required = true, dataType = "Int", example = "100")
|
||||
@ApiImplicitParam(name = "id", value = "USER_ID", required = true, dataType = "Int", example = "100")
|
||||
})
|
||||
@PostMapping(value = "/delete")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
|
|
@ -213,15 +213,15 @@ public class UsersController extends BaseController {
|
|||
/**
|
||||
* grant project
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param userId user id
|
||||
* @param loginUser login user
|
||||
* @param userId user id
|
||||
* @param projectIds project id array
|
||||
* @return grant result code
|
||||
*/
|
||||
@ApiOperation(value = "grantProject", notes = "GRANT_PROJECT_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "userId", value = "USER_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "projectIds", value = "PROJECT_IDS", required = true, type = "String")
|
||||
@ApiImplicitParam(name = "userId", value = "USER_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "projectIds", value = "PROJECT_IDS", required = true, type = "String")
|
||||
})
|
||||
@PostMapping(value = "/grant-project")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
|
|
@ -237,15 +237,15 @@ public class UsersController extends BaseController {
|
|||
/**
|
||||
* grant resource
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param userId user id
|
||||
* @param loginUser login user
|
||||
* @param userId user id
|
||||
* @param resourceIds resource id array
|
||||
* @return grant result code
|
||||
*/
|
||||
@ApiOperation(value = "grantResource", notes = "GRANT_RESOURCE_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "userId", value = "USER_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "resourceIds", value = "RESOURCE_IDS", required = true, type = "String")
|
||||
@ApiImplicitParam(name = "userId", value = "USER_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "resourceIds", value = "RESOURCE_IDS", required = true, type = "String")
|
||||
})
|
||||
@PostMapping(value = "/grant-file")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
|
|
@ -263,14 +263,14 @@ public class UsersController extends BaseController {
|
|||
* grant udf function
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param userId user id
|
||||
* @param udfIds udf id array
|
||||
* @param userId user id
|
||||
* @param udfIds udf id array
|
||||
* @return grant result code
|
||||
*/
|
||||
@ApiOperation(value = "grantUDFFunc", notes = "GRANT_UDF_FUNC_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "userId", value = "USER_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "udfIds", value = "UDF_IDS", required = true, type = "String")
|
||||
@ApiImplicitParam(name = "userId", value = "USER_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "udfIds", value = "UDF_IDS", required = true, type = "String")
|
||||
})
|
||||
@PostMapping(value = "/grant-udf-func")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
|
|
@ -287,15 +287,15 @@ public class UsersController extends BaseController {
|
|||
/**
|
||||
* grant datasource
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param userId user id
|
||||
* @param loginUser login user
|
||||
* @param userId user id
|
||||
* @param datasourceIds data source id array
|
||||
* @return grant result code
|
||||
*/
|
||||
@ApiOperation(value = "grantDataSource", notes = "GRANT_DATASOURCE_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "userId", value = "USER_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "datasourceIds", value = "DATASOURCE_IDS", required = true, type = "String")
|
||||
@ApiImplicitParam(name = "userId", value = "USER_ID", required = true, dataType = "Int", example = "100"),
|
||||
@ApiImplicitParam(name = "datasourceIds", value = "DATASOURCE_IDS", required = true, type = "String")
|
||||
})
|
||||
@PostMapping(value = "/grant-datasource")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
|
|
@ -362,12 +362,12 @@ public class UsersController extends BaseController {
|
|||
* verify username
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param userName user name
|
||||
* @param userName user name
|
||||
* @return true if user name not exists, otherwise return false
|
||||
*/
|
||||
@ApiOperation(value = "verifyUserName", notes = "VERIFY_USER_NAME_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "userName", value = "USER_NAME", required = true, type = "String")
|
||||
@ApiImplicitParam(name = "userName", value = "USER_NAME", required = true, type = "String")
|
||||
})
|
||||
@GetMapping(value = "/verify-user-name")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
|
|
@ -383,13 +383,13 @@ public class UsersController extends BaseController {
|
|||
/**
|
||||
* unauthorized user
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param loginUser login user
|
||||
* @param alertgroupId alert group id
|
||||
* @return unauthorize result code
|
||||
*/
|
||||
@ApiOperation(value = "unauthorizedUser", notes = "UNAUTHORIZED_USER_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "alertgroupId", value = "ALERT_GROUP_ID", required = true, type = "String")
|
||||
@ApiImplicitParam(name = "alertgroupId", value = "ALERT_GROUP_ID", required = true, type = "String")
|
||||
})
|
||||
@GetMapping(value = "/unauth-user")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
|
|
@ -405,13 +405,13 @@ public class UsersController extends BaseController {
|
|||
/**
|
||||
* authorized user
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param loginUser login user
|
||||
* @param alertgroupId alert group id
|
||||
* @return authorized result code
|
||||
*/
|
||||
@ApiOperation(value = "authorizedUser", notes = "AUTHORIZED_USER_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "alertgroupId", value = "ALERT_GROUP_ID", required = true, type = "String")
|
||||
@ApiImplicitParam(name = "alertgroupId", value = "ALERT_GROUP_ID", required = true, type = "String")
|
||||
})
|
||||
@GetMapping(value = "/authed-user")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
|
|
@ -431,26 +431,26 @@ public class UsersController extends BaseController {
|
|||
/**
|
||||
* user registry
|
||||
*
|
||||
* @param userName user name
|
||||
* @param userPassword user password
|
||||
* @param userName user name
|
||||
* @param userPassword user password
|
||||
* @param repeatPassword repeat password
|
||||
* @param email user email
|
||||
* @param email user email
|
||||
*/
|
||||
@ApiOperation(value = "registerUser",notes = "REGISTER_USER_NOTES")
|
||||
@ApiOperation(value = "registerUser", notes = "REGISTER_USER_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "userName", value = "USER_NAME", required = true, type = "String"),
|
||||
@ApiImplicitParam(name = "userPassword", value = "USER_PASSWORD", required = true, type = "String"),
|
||||
@ApiImplicitParam(name = "repeatPassword", value = "REPEAT_PASSWORD", required = true, type = "String"),
|
||||
@ApiImplicitParam(name = "email", value = "EMAIL", required = true, type = "String"),
|
||||
@ApiImplicitParam(name = "userName", value = "USER_NAME", required = true, type = "String"),
|
||||
@ApiImplicitParam(name = "userPassword", value = "USER_PASSWORD", required = true, type = "String"),
|
||||
@ApiImplicitParam(name = "repeatPassword", value = "REPEAT_PASSWORD", required = true, type = "String"),
|
||||
@ApiImplicitParam(name = "email", value = "EMAIL", required = true, type = "String"),
|
||||
})
|
||||
@PostMapping("/register")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(CREATE_USER_ERROR)
|
||||
@AccessLogAnnotation
|
||||
public Result<Object> registerUser(@RequestParam(value = "userName") String userName,
|
||||
@RequestParam(value = "userPassword") String userPassword,
|
||||
@RequestParam(value = "repeatPassword") String repeatPassword,
|
||||
@RequestParam(value = "email") String email) throws Exception {
|
||||
@RequestParam(value = "userPassword") String userPassword,
|
||||
@RequestParam(value = "repeatPassword") String repeatPassword,
|
||||
@RequestParam(value = "email") String email) throws Exception {
|
||||
userName = ParameterUtils.handleEscapes(userName);
|
||||
userPassword = ParameterUtils.handleEscapes(userPassword);
|
||||
repeatPassword = ParameterUtils.handleEscapes(repeatPassword);
|
||||
|
|
@ -462,11 +462,11 @@ public class UsersController extends BaseController {
|
|||
/**
|
||||
* user activate
|
||||
*
|
||||
* @param userName user name
|
||||
* @param userName user name
|
||||
*/
|
||||
@ApiOperation(value = "activateUser",notes = "ACTIVATE_USER_NOTES")
|
||||
@ApiOperation(value = "activateUser", notes = "ACTIVATE_USER_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "userName", value = "USER_NAME", type = "String"),
|
||||
@ApiImplicitParam(name = "userName", value = "USER_NAME", type = "String"),
|
||||
})
|
||||
@PostMapping("/activate")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
|
|
@ -482,18 +482,18 @@ public class UsersController extends BaseController {
|
|||
/**
|
||||
* user batch activate
|
||||
*
|
||||
* @param userNames user names
|
||||
* @param userNames user names
|
||||
*/
|
||||
@ApiOperation(value = "batchActivateUser",notes = "BATCH_ACTIVATE_USER_NOTES")
|
||||
@ApiOperation(value = "batchActivateUser", notes = "BATCH_ACTIVATE_USER_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "userNames", value = "USER_NAMES", required = true, type = "String"),
|
||||
@ApiImplicitParam(name = "userNames", value = "USER_NAMES", required = true, type = "String"),
|
||||
})
|
||||
@PostMapping("/batch/activate")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(UPDATE_USER_ERROR)
|
||||
@AccessLogAnnotation
|
||||
public Result<Object> batchActivateUser(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestBody List<String> userNames) {
|
||||
@RequestBody List<String> userNames) {
|
||||
List<String> formatUserNames = userNames.stream().map(ParameterUtils::handleEscapes).collect(Collectors.toList());
|
||||
Map<String, Object> result = usersService.batchActivateUser(loginUser, formatUserNames);
|
||||
return returnDataList(result);
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ import springfox.documentation.annotations.ApiIgnore;
|
|||
*/
|
||||
@Api(tags = "WORK_FLOW_LINEAGE_TAG")
|
||||
@RestController
|
||||
@RequestMapping("lineages/{projectId}")
|
||||
@RequestMapping("lineages/{projectCode}")
|
||||
public class WorkFlowLineageController extends BaseController {
|
||||
private static final Logger logger = LoggerFactory.getLogger(WorkFlowLineageController.class);
|
||||
|
||||
|
|
@ -66,14 +66,14 @@ public class WorkFlowLineageController extends BaseController {
|
|||
@ResponseStatus(HttpStatus.OK)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result<List<WorkFlowLineage>> queryWorkFlowLineageByName(@ApiIgnore @RequestAttribute(value = SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectId", value = "PROJECT_ID", required = true, example = "1") @PathVariable int projectId,
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true, example = "1") @PathVariable long projectCode,
|
||||
@ApiIgnore @RequestParam(value = "searchVal", required = false) String searchVal) {
|
||||
try {
|
||||
searchVal = ParameterUtils.handleEscapes(searchVal);
|
||||
Map<String, Object> result = workFlowLineageService.queryWorkFlowLineageByName(searchVal,projectId);
|
||||
Map<String, Object> result = workFlowLineageService.queryWorkFlowLineageByName(searchVal, projectCode);
|
||||
return returnDataList(result);
|
||||
} catch (Exception e) {
|
||||
logger.error(QUERY_WORKFLOW_LINEAGE_ERROR.getMsg(),e);
|
||||
logger.error(QUERY_WORKFLOW_LINEAGE_ERROR.getMsg(), e);
|
||||
return error(QUERY_WORKFLOW_LINEAGE_ERROR.getCode(), QUERY_WORKFLOW_LINEAGE_ERROR.getMsg());
|
||||
}
|
||||
}
|
||||
|
|
@ -83,7 +83,7 @@ public class WorkFlowLineageController extends BaseController {
|
|||
@ResponseStatus(HttpStatus.OK)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result<Map<String, Object>> queryWorkFlowLineageByIds(@ApiIgnore @RequestAttribute(value = SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectId", value = "PROJECT_ID", required = true, example = "1") @PathVariable int projectId,
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true, example = "1") @PathVariable long projectCode,
|
||||
@ApiIgnore @RequestParam(value = "ids", required = false) String ids) {
|
||||
try {
|
||||
ids = ParameterUtils.handleEscapes(ids);
|
||||
|
|
@ -95,10 +95,10 @@ public class WorkFlowLineageController extends BaseController {
|
|||
}
|
||||
}
|
||||
|
||||
Map<String, Object> result = workFlowLineageService.queryWorkFlowLineageByIds(idsSet, projectId);
|
||||
Map<String, Object> result = workFlowLineageService.queryWorkFlowLineageByIds(idsSet, projectCode);
|
||||
return returnDataList(result);
|
||||
} catch (Exception e) {
|
||||
logger.error(QUERY_WORKFLOW_LINEAGE_ERROR.getMsg(),e);
|
||||
logger.error(QUERY_WORKFLOW_LINEAGE_ERROR.getMsg(), e);
|
||||
return error(QUERY_WORKFLOW_LINEAGE_ERROR.getCode(), QUERY_WORKFLOW_LINEAGE_ERROR.getMsg());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,7 +34,9 @@ import java.util.Map;
|
|||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestAttribute;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
|
@ -53,7 +55,7 @@ import springfox.documentation.annotations.ApiIgnore;
|
|||
*/
|
||||
@Api(tags = "WORKER_GROUP_TAG")
|
||||
@RestController
|
||||
@RequestMapping("/worker-group")
|
||||
@RequestMapping("/worker-groups")
|
||||
public class WorkerGroupController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
|
|
@ -63,18 +65,18 @@ public class WorkerGroupController extends BaseController {
|
|||
* create or update a worker group
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param id worker group id
|
||||
* @param name worker group name
|
||||
* @param addrList addr list
|
||||
* @param id worker group id
|
||||
* @param name worker group name
|
||||
* @param addrList addr list
|
||||
* @return create or update result code
|
||||
*/
|
||||
@ApiOperation(value = "saveWorkerGroup", notes = "CREATE_WORKER_GROUP_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "id", value = "WORKER_GROUP_ID", dataType = "Int", example = "10", defaultValue = "0"),
|
||||
@ApiImplicitParam(name = "name", value = "WORKER_GROUP_NAME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "addrList", value = "WORKER_ADDR_LIST", required = true, dataType = "String")
|
||||
@ApiImplicitParam(name = "id", value = "WORKER_GROUP_ID", dataType = "Int", example = "10", defaultValue = "0"),
|
||||
@ApiImplicitParam(name = "name", value = "WORKER_GROUP_NAME", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "addrList", value = "WORKER_ADDR_LIST", required = true, dataType = "String")
|
||||
})
|
||||
@PostMapping(value = "/save")
|
||||
@PostMapping()
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(SAVE_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
|
|
@ -91,18 +93,18 @@ public class WorkerGroupController extends BaseController {
|
|||
* query worker groups paging
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param pageNo page number
|
||||
* @param pageNo page number
|
||||
* @param searchVal search value
|
||||
* @param pageSize page size
|
||||
* @param pageSize page size
|
||||
* @return worker group list page
|
||||
*/
|
||||
@ApiOperation(value = "queryAllWorkerGroupsPaging", notes = "QUERY_WORKER_GROUP_PAGING_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "pageNo", value = "PAGE_NO", required = true, dataType = "Int", example = "1"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "PAGE_SIZE", required = true, dataType = "Int", example = "20"),
|
||||
@ApiImplicitParam(name = "searchVal", value = "SEARCH_VAL", dataType = "String")
|
||||
@ApiImplicitParam(name = "pageNo", value = "PAGE_NO", required = true, dataType = "Int", example = "1"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "PAGE_SIZE", required = true, dataType = "Int", example = "20"),
|
||||
@ApiImplicitParam(name = "searchVal", value = "SEARCH_VAL", dataType = "String")
|
||||
})
|
||||
@GetMapping(value = "/list-paging")
|
||||
@GetMapping()
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(QUERY_WORKER_GROUP_FAIL)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
|
|
@ -128,7 +130,7 @@ public class WorkerGroupController extends BaseController {
|
|||
* @return all worker group list
|
||||
*/
|
||||
@ApiOperation(value = "queryAllWorkerGroups", notes = "QUERY_WORKER_GROUP_LIST_NOTES")
|
||||
@GetMapping(value = "/all-groups")
|
||||
@GetMapping(value = "/all")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(QUERY_WORKER_GROUP_FAIL)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
|
|
@ -141,19 +143,19 @@ public class WorkerGroupController extends BaseController {
|
|||
* delete worker group by id
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param id group id
|
||||
* @param id group id
|
||||
* @return delete result code
|
||||
*/
|
||||
@ApiOperation(value = "deleteById", notes = "DELETE_WORKER_GROUP_BY_ID_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "id", value = "WORKER_GROUP_ID", required = true, dataType = "Int", example = "10"),
|
||||
@ApiImplicitParam(name = "id", value = "WORKER_GROUP_ID", required = true, dataType = "Int", example = "10"),
|
||||
})
|
||||
@PostMapping(value = "/delete-by-id")
|
||||
@DeleteMapping(value = "/{id}")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(DELETE_WORKER_GROUP_FAIL)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result deleteById(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@RequestParam("id") Integer id
|
||||
@PathVariable("id") Integer id
|
||||
) {
|
||||
Map<String, Object> result = workerGroupService.deleteWorkerGroupById(loginUser, id);
|
||||
return returnDataList(result);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,47 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The ASF licenses this file to You 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 org.apache.dolphinscheduler.api.dto;
|
||||
|
||||
import org.apache.dolphinscheduler.dao.entity.DagData;
|
||||
import org.apache.dolphinscheduler.dao.entity.Schedule;
|
||||
|
||||
/**
|
||||
* DagDataSchedule
|
||||
*/
|
||||
public class DagDataSchedule extends DagData {
|
||||
|
||||
/**
|
||||
* schedule
|
||||
*/
|
||||
private Schedule schedule;
|
||||
|
||||
public DagDataSchedule(DagData dagData) {
|
||||
super();
|
||||
this.setProcessDefinition(dagData.getProcessDefinition());
|
||||
this.setTaskDefinitionList(dagData.getTaskDefinitionList());
|
||||
this.setProcessTaskRelationList(dagData.getProcessTaskRelationList());
|
||||
}
|
||||
|
||||
public Schedule getSchedule() {
|
||||
return schedule;
|
||||
}
|
||||
|
||||
public void setSchedule(Schedule schedule) {
|
||||
this.schedule = schedule;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,231 +0,0 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The ASF licenses this file to You 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 org.apache.dolphinscheduler.api.dto;
|
||||
|
||||
/**
|
||||
* ProcessMeta
|
||||
*/
|
||||
public class ProcessMeta {
|
||||
|
||||
/**
|
||||
* project name
|
||||
*/
|
||||
private String projectName;
|
||||
|
||||
/**
|
||||
* process definition name
|
||||
*/
|
||||
private String processDefinitionName;
|
||||
|
||||
/**
|
||||
* processs definition json
|
||||
*/
|
||||
private String processDefinitionJson;
|
||||
|
||||
/**
|
||||
* process definition desc
|
||||
*/
|
||||
private String processDefinitionDescription;
|
||||
|
||||
/**
|
||||
* process definition locations
|
||||
*/
|
||||
private String processDefinitionLocations;
|
||||
|
||||
/**
|
||||
* process definition connects
|
||||
*/
|
||||
private String processDefinitionConnects;
|
||||
|
||||
/**
|
||||
* warning type
|
||||
*/
|
||||
private String scheduleWarningType;
|
||||
|
||||
/**
|
||||
* warning group id
|
||||
*/
|
||||
private Integer scheduleWarningGroupId;
|
||||
|
||||
/**
|
||||
* warning group name
|
||||
*/
|
||||
private String scheduleWarningGroupName;
|
||||
|
||||
/**
|
||||
* start time
|
||||
*/
|
||||
private String scheduleStartTime;
|
||||
|
||||
/**
|
||||
* end time
|
||||
*/
|
||||
private String scheduleEndTime;
|
||||
|
||||
/**
|
||||
* crontab
|
||||
*/
|
||||
private String scheduleCrontab;
|
||||
|
||||
/**
|
||||
* failure strategy
|
||||
*/
|
||||
private String scheduleFailureStrategy;
|
||||
|
||||
/**
|
||||
* release state
|
||||
*/
|
||||
private String scheduleReleaseState;
|
||||
|
||||
/**
|
||||
* process instance priority
|
||||
*/
|
||||
private String scheduleProcessInstancePriority;
|
||||
|
||||
/**
|
||||
* worker group name
|
||||
*/
|
||||
private String scheduleWorkerGroupName;
|
||||
|
||||
public String getProjectName() {
|
||||
return projectName;
|
||||
}
|
||||
|
||||
public void setProjectName(String projectName) {
|
||||
this.projectName = projectName;
|
||||
}
|
||||
|
||||
public String getProcessDefinitionName() {
|
||||
return processDefinitionName;
|
||||
}
|
||||
|
||||
public void setProcessDefinitionName(String processDefinitionName) {
|
||||
this.processDefinitionName = processDefinitionName;
|
||||
}
|
||||
|
||||
public String getProcessDefinitionJson() {
|
||||
return processDefinitionJson;
|
||||
}
|
||||
|
||||
public void setProcessDefinitionJson(String processDefinitionJson) {
|
||||
this.processDefinitionJson = processDefinitionJson;
|
||||
}
|
||||
|
||||
public String getProcessDefinitionDescription() {
|
||||
return processDefinitionDescription;
|
||||
}
|
||||
|
||||
public void setProcessDefinitionDescription(String processDefinitionDescription) {
|
||||
this.processDefinitionDescription = processDefinitionDescription;
|
||||
}
|
||||
|
||||
public String getProcessDefinitionLocations() {
|
||||
return processDefinitionLocations;
|
||||
}
|
||||
|
||||
public void setProcessDefinitionLocations(String processDefinitionLocations) {
|
||||
this.processDefinitionLocations = processDefinitionLocations;
|
||||
}
|
||||
|
||||
public String getProcessDefinitionConnects() {
|
||||
return processDefinitionConnects;
|
||||
}
|
||||
|
||||
public void setProcessDefinitionConnects(String processDefinitionConnects) {
|
||||
this.processDefinitionConnects = processDefinitionConnects;
|
||||
}
|
||||
|
||||
public String getScheduleWarningType() {
|
||||
return scheduleWarningType;
|
||||
}
|
||||
|
||||
public void setScheduleWarningType(String scheduleWarningType) {
|
||||
this.scheduleWarningType = scheduleWarningType;
|
||||
}
|
||||
|
||||
public Integer getScheduleWarningGroupId() {
|
||||
return scheduleWarningGroupId;
|
||||
}
|
||||
|
||||
public void setScheduleWarningGroupId(int scheduleWarningGroupId) {
|
||||
this.scheduleWarningGroupId = scheduleWarningGroupId;
|
||||
}
|
||||
|
||||
public String getScheduleWarningGroupName() {
|
||||
return scheduleWarningGroupName;
|
||||
}
|
||||
|
||||
public void setScheduleWarningGroupName(String scheduleWarningGroupName) {
|
||||
this.scheduleWarningGroupName = scheduleWarningGroupName;
|
||||
}
|
||||
|
||||
public String getScheduleStartTime() {
|
||||
return scheduleStartTime;
|
||||
}
|
||||
|
||||
public void setScheduleStartTime(String scheduleStartTime) {
|
||||
this.scheduleStartTime = scheduleStartTime;
|
||||
}
|
||||
|
||||
public String getScheduleEndTime() {
|
||||
return scheduleEndTime;
|
||||
}
|
||||
|
||||
public void setScheduleEndTime(String scheduleEndTime) {
|
||||
this.scheduleEndTime = scheduleEndTime;
|
||||
}
|
||||
|
||||
public String getScheduleCrontab() {
|
||||
return scheduleCrontab;
|
||||
}
|
||||
|
||||
public void setScheduleCrontab(String scheduleCrontab) {
|
||||
this.scheduleCrontab = scheduleCrontab;
|
||||
}
|
||||
|
||||
public String getScheduleFailureStrategy() {
|
||||
return scheduleFailureStrategy;
|
||||
}
|
||||
|
||||
public void setScheduleFailureStrategy(String scheduleFailureStrategy) {
|
||||
this.scheduleFailureStrategy = scheduleFailureStrategy;
|
||||
}
|
||||
|
||||
public String getScheduleReleaseState() {
|
||||
return scheduleReleaseState;
|
||||
}
|
||||
|
||||
public void setScheduleReleaseState(String scheduleReleaseState) {
|
||||
this.scheduleReleaseState = scheduleReleaseState;
|
||||
}
|
||||
|
||||
public String getScheduleProcessInstancePriority() {
|
||||
return scheduleProcessInstancePriority;
|
||||
}
|
||||
|
||||
public void setScheduleProcessInstancePriority(String scheduleProcessInstancePriority) {
|
||||
this.scheduleProcessInstancePriority = scheduleProcessInstancePriority;
|
||||
}
|
||||
|
||||
public String getScheduleWorkerGroupName() {
|
||||
return scheduleWorkerGroupName;
|
||||
}
|
||||
|
||||
public void setScheduleWorkerGroupName(String scheduleWorkerGroupName) {
|
||||
this.scheduleWorkerGroupName = scheduleWorkerGroupName;
|
||||
}
|
||||
}
|
||||
|
|
@ -74,7 +74,7 @@ public enum Status {
|
|||
LIST_WORKERS_ERROR(10044, "list workers error", "查询worker列表错误"),
|
||||
LIST_MASTERS_ERROR(10045, "list masters error", "查询master列表错误"),
|
||||
UPDATE_PROJECT_ERROR(10046, "update project error", "更新项目信息错误"),
|
||||
QUERY_PROJECT_DETAILS_BY_ID_ERROR(10047, "query project details by id error", "查询项目详细信息错误"),
|
||||
QUERY_PROJECT_DETAILS_BY_CODE_ERROR(10047, "query project details by code error", "查询项目详细信息错误"),
|
||||
CREATE_PROJECT_ERROR(10048, "create project error", "创建项目错误"),
|
||||
LOGIN_USER_QUERY_PROJECT_LIST_PAGING_ERROR(10049, "login user query project list paging error", "分页查询项目列表错误"),
|
||||
DELETE_PROJECT_ERROR(10050, "delete project error", "删除项目错误"),
|
||||
|
|
@ -132,7 +132,7 @@ public enum Status {
|
|||
AUTHORIZED_USER_ERROR(10102, "authorized user error", "查询授权用户错误"),
|
||||
QUERY_TASK_INSTANCE_LOG_ERROR(10103, "view task instance log error", "查询任务实例日志错误"),
|
||||
DOWNLOAD_TASK_INSTANCE_LOG_FILE_ERROR(10104, "download task instance log file error", "下载任务日志文件错误"),
|
||||
CREATE_PROCESS_DEFINITION(10105, "create process definition", "创建工作流错误"),
|
||||
CREATE_PROCESS_DEFINITION_ERROR(10105, "create process definition error", "创建工作流错误"),
|
||||
VERIFY_PROCESS_DEFINITION_NAME_UNIQUE_ERROR(10106, "verify process definition name unique error", "工作流定义名称验证错误"),
|
||||
UPDATE_PROCESS_DEFINITION_ERROR(10107, "update process definition error", "更新工作流定义错误"),
|
||||
RELEASE_PROCESS_DEFINITION_ERROR(10108, "release process definition error", "上线工作流错误"),
|
||||
|
|
@ -184,17 +184,15 @@ public enum Status {
|
|||
SWITCH_PROCESS_DEFINITION_VERSION_NOT_EXIST_PROCESS_DEFINITION_VERSION_ERROR(10153
|
||||
, "Switch process definition version error: not exists process definition version, [process definition id {0}] [version number {1}]", "切换工作流版本出错:工作流版本信息不存在,[工作流id {0}] [版本号 {1}]"),
|
||||
QUERY_PROCESS_DEFINITION_VERSIONS_ERROR(10154, "query process definition versions error", "查询工作流历史版本信息出错"),
|
||||
QUERY_PROCESS_DEFINITION_VERSIONS_PAGE_NO_OR_PAGE_SIZE_LESS_THAN_1_ERROR(10155
|
||||
, "query process definition versions error: [page number:{0}] < 1 or [page size:{1}] < 1", "查询工作流历史版本出错:[pageNo:{0}] < 1 或 [pageSize:{1}] < 1"),
|
||||
DELETE_PROCESS_DEFINITION_VERSION_ERROR(10156, "delete process definition version error", "删除工作流历史版本出错"),
|
||||
|
||||
QUERY_USER_CREATED_PROJECT_ERROR(10157, "query user created project error error", "查询用户创建的项目错误"),
|
||||
PROCESS_DEFINITION_IDS_IS_EMPTY(10158, "process definition ids is empty", "工作流IDS不能为空"),
|
||||
PROCESS_DEFINITION_CODES_IS_EMPTY(10158, "process definition codes is empty", "工作流CODES不能为空"),
|
||||
BATCH_COPY_PROCESS_DEFINITION_ERROR(10159, "batch copy process definition error", "复制工作流错误"),
|
||||
BATCH_MOVE_PROCESS_DEFINITION_ERROR(10160, "batch move process definition error", "移动工作流错误"),
|
||||
QUERY_WORKFLOW_LINEAGE_ERROR(10161, "query workflow lineage error", "查询血缘失败"),
|
||||
QUERY_AUTHORIZED_AND_USER_CREATED_PROJECT_ERROR(10162, "query authorized and user created project error error", "查询授权的和用户创建的项目错误"),
|
||||
DELETE_PROCESS_DEFINITION_BY_ID_FAIL(10163, "delete process definition by id fail, for there are {0} process instances in executing using it", "删除工作流定义失败,有[{0}]个运行中的工作流实例正在使用"),
|
||||
DELETE_PROCESS_DEFINITION_BY_CODE_FAIL(10163, "delete process definition by code fail, for there are {0} process instances in executing using it", "删除工作流定义失败,有[{0}]个运行中的工作流实例正在使用"),
|
||||
CHECK_OS_TENANT_CODE_ERROR(10164, "Please enter the English os tenant code", "请输入英文操作系统租户"),
|
||||
FORCE_TASK_SUCCESS_ERROR(10165, "force task success error", "强制成功任务实例错误"),
|
||||
TASK_INSTANCE_STATE_OPERATION_ERROR(10166, "the status of task instance {0} is {1},Cannot perform force success operation", "任务实例[{0}]的状态是[{1}],无法执行强制成功操作"),
|
||||
|
|
@ -256,21 +254,30 @@ public enum Status {
|
|||
PROCESS_NODE_HAS_CYCLE(50019, "process node has cycle", "流程节点间存在循环依赖"),
|
||||
PROCESS_NODE_S_PARAMETER_INVALID(50020, "process node {0} parameter invalid", "流程节点[{0}]参数无效"),
|
||||
PROCESS_DEFINE_STATE_ONLINE(50021, "process definition {0} is already on line", "工作流定义[{0}]已上线"),
|
||||
DELETE_PROCESS_DEFINE_BY_ID_ERROR(50022, "delete process definition by id error", "删除工作流定义错误"),
|
||||
DELETE_PROCESS_DEFINE_BY_CODE_ERROR(50022, "delete process definition by code error", "删除工作流定义错误"),
|
||||
SCHEDULE_CRON_STATE_ONLINE(50023, "the status of schedule {0} is already on line", "调度配置[{0}]已上线"),
|
||||
DELETE_SCHEDULE_CRON_BY_ID_ERROR(50024, "delete schedule by id error", "删除调度配置错误"),
|
||||
BATCH_DELETE_PROCESS_DEFINE_ERROR(50025, "batch delete process definition error", "批量删除工作流定义错误"),
|
||||
BATCH_DELETE_PROCESS_DEFINE_BY_IDS_ERROR(50026, "batch delete process definition by ids {0} error", "批量删除工作流定义[{0}]错误"),
|
||||
BATCH_DELETE_PROCESS_DEFINE_BY_CODES_ERROR(50026, "batch delete process definition by codes {0} error", "批量删除工作流定义[{0}]错误"),
|
||||
TENANT_NOT_SUITABLE(50027, "there is not any tenant suitable, please choose a tenant available.", "没有合适的租户,请选择可用的租户"),
|
||||
EXPORT_PROCESS_DEFINE_BY_ID_ERROR(50028, "export process definition by id error", "导出工作流定义错误"),
|
||||
BATCH_EXPORT_PROCESS_DEFINE_BY_IDS_ERROR(50028, "batch export process definition by ids error", "批量导出工作流定义错误"),
|
||||
IMPORT_PROCESS_DEFINE_ERROR(50029, "import process definition error", "导入工作流定义错误"),
|
||||
TASK_DEFINE_NOT_EXIST(50030, "task definition {0} does not exist", "任务定义[{0}]不存在"),
|
||||
DELETE_TASK_DEFINE_BY_CODE_ERROR(50031, "delete task definition by code error", "删除任务定义错误"),
|
||||
DELETE_PROCESS_TASK_RELATION_ERROR(50032, "delete process task relation error", "删除工作流任务关系错误"),
|
||||
PROCESS_TASK_RELATION_NOT_EXIST(50033, "process task relation {0} does not exist", "工作流任务关系[{0}]不存在"),
|
||||
PROCESS_TASK_RELATION_EXIST(50034, "process task relation is already exist, processCode:[{0}]", "工作流任务关系已存在, processCode:[{0}]"),
|
||||
PROCESS_DAG_IS_EMPTY(50035, "process dag can not be empty", "工作流dag不能为空"),
|
||||
CHECK_PROCESS_TASK_RELATION_ERROR(50036, "check process task relation error", "工作流任务关系参数错误"),
|
||||
CREATE_TASK_DEFINITION_ERROR(50037, "create task definition error", "创建任务错误"),
|
||||
UPDATE_TASK_DEFINITION_ERROR(50038, "update task definition error", "更新任务定义错误"),
|
||||
QUERY_TASK_DEFINITION_VERSIONS_ERROR(50039, "query task definition versions error", "查询任务历史版本信息出错"),
|
||||
SWITCH_TASK_DEFINITION_VERSION_ERROR(50040, "Switch task definition version error", "切换任务版本出错"),
|
||||
DELETE_TASK_DEFINITION_VERSION_ERROR(50041, "delete task definition version error", "删除任务历史版本出错"),
|
||||
DELETE_TASK_DEFINE_BY_CODE_ERROR(50042, "delete task definition by code error", "删除任务定义错误"),
|
||||
QUERY_DETAIL_OF_TASK_DEFINITION_ERROR(50043, "query detail of task definition error", "查询任务详细信息错误"),
|
||||
QUERY_TASK_DEFINITION_LIST_PAGING_ERROR(50044, "query task definition list paging error", "分页查询任务定义列表错误"),
|
||||
TASK_DEFINITION_NAME_EXISTED(50045, "task definition name [{0}] already exists", "任务定义名称[{0}]已经存在"),
|
||||
HDFS_NOT_STARTUP(60001, "hdfs not startup", "hdfs未启用"),
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -30,51 +30,47 @@ public interface DataAnalysisService {
|
|||
* statistical task instance status data
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectId project id
|
||||
* @param projectCode project code
|
||||
* @param startDate start date
|
||||
* @param endDate end date
|
||||
* @return task state count data
|
||||
*/
|
||||
Map<String, Object> countTaskStateByProject(User loginUser, int projectId, String startDate, String endDate);
|
||||
Map<String, Object> countTaskStateByProject(User loginUser, long projectCode, String startDate, String endDate);
|
||||
|
||||
/**
|
||||
* statistical process instance status data
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectId project id
|
||||
* @param projectCode project code
|
||||
* @param startDate start date
|
||||
* @param endDate end date
|
||||
* @return process instance state count data
|
||||
*/
|
||||
Map<String, Object> countProcessInstanceStateByProject(User loginUser, int projectId, String startDate, String endDate);
|
||||
Map<String, Object> countProcessInstanceStateByProject(User loginUser, long projectCode, String startDate, String endDate);
|
||||
|
||||
/**
|
||||
* statistics the process definition quantities of certain person
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectId project id
|
||||
* @param projectCode project code
|
||||
* @return definition count data
|
||||
*/
|
||||
Map<String, Object> countDefinitionByUser(User loginUser, int projectId);
|
||||
Map<String, Object> countDefinitionByUser(User loginUser, long projectCode);
|
||||
|
||||
/**
|
||||
* statistical command status data
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectId project id
|
||||
* @param startDate start date
|
||||
* @param endDate end date
|
||||
* @return command state count data
|
||||
*/
|
||||
Map<String, Object> countCommandState(User loginUser, int projectId, String startDate, String endDate);
|
||||
Map<String, Object> countCommandState(User loginUser);
|
||||
|
||||
/**
|
||||
* count queue state
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectId project id
|
||||
* @return queue state count data
|
||||
*/
|
||||
Map<String, Object> countQueueState(User loginUser, int projectId);
|
||||
Map<String, Object> countQueueState(User loginUser);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,8 +38,8 @@ public interface ExecutorService {
|
|||
* execute process instance
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param processDefinitionId process Definition Id
|
||||
* @param projectCode project code
|
||||
* @param processDefinitionCode process definition code
|
||||
* @param cronTime cron time
|
||||
* @param commandType command type
|
||||
* @param failureStrategy failuer strategy
|
||||
|
|
@ -56,8 +56,8 @@ public interface ExecutorService {
|
|||
* @param expectedParallelismNumber the expected parallelism number when execute complement in parallel mode
|
||||
* @return execute process instance code
|
||||
*/
|
||||
Map<String, Object> execProcessInstance(User loginUser, String projectName,
|
||||
int processDefinitionId, String cronTime, CommandType commandType,
|
||||
Map<String, Object> execProcessInstance(User loginUser, long projectCode,
|
||||
long processDefinitionCode, String cronTime, CommandType commandType,
|
||||
FailureStrategy failureStrategy, String startNodeList,
|
||||
TaskDependType taskDependType, WarningType warningType, int warningGroupId,
|
||||
RunMode runMode,
|
||||
|
|
@ -77,18 +77,18 @@ public interface ExecutorService {
|
|||
* do action to process instance:pause, stop, repeat, recover from pause, recover from stop
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param processInstanceId process instance id
|
||||
* @param executeType execute type
|
||||
* @return execute result code
|
||||
*/
|
||||
Map<String, Object> execute(User loginUser, String projectName, Integer processInstanceId, ExecuteType executeType);
|
||||
Map<String, Object> execute(User loginUser, long projectCode, Integer processInstanceId, ExecuteType executeType);
|
||||
|
||||
/**
|
||||
* check if sub processes are offline before starting process definition
|
||||
*
|
||||
* @param processDefineId process definition id
|
||||
* @param processDefinitionCode process definition code
|
||||
* @return check result code
|
||||
*/
|
||||
Map<String, Object> startCheckByProcessDefinedId(int processDefineId);
|
||||
Map<String, Object> startCheckByProcessDefinedCode(long processDefinitionCode);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@ package org.apache.dolphinscheduler.api.service;
|
|||
|
||||
import org.apache.dolphinscheduler.api.utils.Result;
|
||||
import org.apache.dolphinscheduler.common.enums.ReleaseState;
|
||||
import org.apache.dolphinscheduler.dao.entity.ProcessData;
|
||||
import org.apache.dolphinscheduler.dao.entity.User;
|
||||
|
||||
import java.util.Map;
|
||||
|
|
@ -28,8 +27,6 @@ import javax.servlet.http.HttpServletResponse;
|
|||
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
|
||||
/**
|
||||
* process definition service
|
||||
*/
|
||||
|
|
@ -39,38 +36,43 @@ public interface ProcessDefinitionService {
|
|||
* create process definition
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param name process definition name
|
||||
* @param processDefinitionJson process definition json
|
||||
* @param desc description
|
||||
* @param description description
|
||||
* @param globalParams global params
|
||||
* @param locations locations for nodes
|
||||
* @param connects connects for nodes
|
||||
* @param timeout timeout
|
||||
* @param tenantCode tenantCode
|
||||
* @param taskRelationJson relation json for nodes
|
||||
* @param taskDefinitionJson taskDefinitionJson
|
||||
* @return create result code
|
||||
* @throws JsonProcessingException JsonProcessingException
|
||||
*/
|
||||
Map<String, Object> createProcessDefinition(User loginUser,
|
||||
String projectName,
|
||||
long projectCode,
|
||||
String name,
|
||||
String processDefinitionJson,
|
||||
String desc,
|
||||
String description,
|
||||
String globalParams,
|
||||
String locations,
|
||||
String connects) throws JsonProcessingException;
|
||||
int timeout,
|
||||
String tenantCode,
|
||||
String taskRelationJson,
|
||||
String taskDefinitionJson);
|
||||
|
||||
/**
|
||||
* query process definition list
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @return definition list
|
||||
*/
|
||||
Map<String, Object> queryProcessDefinitionList(User loginUser,
|
||||
String projectName);
|
||||
long projectCode);
|
||||
|
||||
/**
|
||||
* query process definition list paging
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param searchVal search value
|
||||
* @param pageNo page number
|
||||
* @param pageSize page size
|
||||
|
|
@ -78,236 +80,247 @@ public interface ProcessDefinitionService {
|
|||
* @return process definition page
|
||||
*/
|
||||
Result queryProcessDefinitionListPaging(User loginUser,
|
||||
String projectName,
|
||||
long projectCode,
|
||||
String searchVal,
|
||||
Integer userId,
|
||||
Integer pageNo,
|
||||
Integer pageSize,
|
||||
Integer userId);
|
||||
Integer pageSize);
|
||||
|
||||
/**
|
||||
* query datail of process definition
|
||||
* query detail of process definition
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param processId process definition id
|
||||
* @param projectCode project code
|
||||
* @param code process definition code
|
||||
* @return process definition detail
|
||||
*/
|
||||
|
||||
Map<String, Object> queryProcessDefinitionById(User loginUser,
|
||||
String projectName,
|
||||
Integer processId);
|
||||
Map<String, Object> queryProcessDefinitionByCode(User loginUser,
|
||||
long projectCode,
|
||||
long code);
|
||||
|
||||
/**
|
||||
* query datail of process definition
|
||||
* query detail of process definition
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param processDefinitionName process definition name
|
||||
* @param projectCode project code
|
||||
* @param name process definition name
|
||||
* @return process definition detail
|
||||
*/
|
||||
|
||||
Map<String, Object> queryProcessDefinitionByName(User loginUser,
|
||||
String projectName,
|
||||
String processDefinitionName);
|
||||
long projectCode,
|
||||
String name);
|
||||
|
||||
/**
|
||||
* batch copy process definition
|
||||
*
|
||||
* @param loginUser loginUser
|
||||
* @param projectName projectName
|
||||
* @param processDefinitionIds processDefinitionIds
|
||||
* @param targetProjectId targetProjectId
|
||||
* @param projectCode projectCode
|
||||
* @param codes processDefinitionCodes
|
||||
* @param targetProjectCode targetProjectCode
|
||||
*/
|
||||
Map<String, Object> batchCopyProcessDefinition(User loginUser,
|
||||
String projectName,
|
||||
String processDefinitionIds,
|
||||
int targetProjectId);
|
||||
long projectCode,
|
||||
String codes,
|
||||
long targetProjectCode);
|
||||
|
||||
/**
|
||||
* batch move process definition
|
||||
*
|
||||
* @param loginUser loginUser
|
||||
* @param projectName projectName
|
||||
* @param processDefinitionIds processDefinitionIds
|
||||
* @param targetProjectId targetProjectId
|
||||
* @param projectCode projectCode
|
||||
* @param codes processDefinitionCodes
|
||||
* @param targetProjectCode targetProjectCode
|
||||
*/
|
||||
Map<String, Object> batchMoveProcessDefinition(User loginUser,
|
||||
String projectName,
|
||||
String processDefinitionIds,
|
||||
int targetProjectId);
|
||||
long projectCode,
|
||||
String codes,
|
||||
long targetProjectCode);
|
||||
|
||||
/**
|
||||
* update process definition
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param name process definition name
|
||||
* @param id process definition id
|
||||
* @param processDefinitionJson process definition json
|
||||
* @param desc description
|
||||
* @param code process definition code
|
||||
* @param description description
|
||||
* @param globalParams global params
|
||||
* @param locations locations for nodes
|
||||
* @param connects connects for nodes
|
||||
* @param timeout timeout
|
||||
* @param tenantCode tenantCode
|
||||
* @param taskRelationJson relation json for nodes
|
||||
* @param taskDefinitionJson taskDefinitionJson
|
||||
* @return update result code
|
||||
*/
|
||||
Map<String, Object> updateProcessDefinition(User loginUser,
|
||||
String projectName,
|
||||
int id,
|
||||
long projectCode,
|
||||
String name,
|
||||
String processDefinitionJson, String desc,
|
||||
String locations, String connects);
|
||||
long code,
|
||||
String description,
|
||||
String globalParams,
|
||||
String locations,
|
||||
int timeout,
|
||||
String tenantCode,
|
||||
String taskRelationJson,
|
||||
String taskDefinitionJson);
|
||||
|
||||
/**
|
||||
* verify process definition name unique
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param name name
|
||||
* @return true if process definition name not exists, otherwise false
|
||||
*/
|
||||
Map<String, Object> verifyProcessDefinitionName(User loginUser,
|
||||
String projectName,
|
||||
long projectCode,
|
||||
String name);
|
||||
|
||||
/**
|
||||
* delete process definition by id
|
||||
* delete process definition by code
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param processDefinitionId process definition id
|
||||
* @param projectCode project code
|
||||
* @param code process definition code
|
||||
* @return delete result code
|
||||
*/
|
||||
Map<String, Object> deleteProcessDefinitionById(User loginUser,
|
||||
String projectName,
|
||||
Integer processDefinitionId);
|
||||
Map<String, Object> deleteProcessDefinitionByCode(User loginUser,
|
||||
long projectCode,
|
||||
long code);
|
||||
|
||||
/**
|
||||
* release process definition: online / offline
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param id process definition id
|
||||
* @param projectCode project code
|
||||
* @param code process definition code
|
||||
* @param releaseState release state
|
||||
* @return release result code
|
||||
*/
|
||||
Map<String, Object> releaseProcessDefinition(User loginUser,
|
||||
String projectName,
|
||||
int id,
|
||||
long projectCode,
|
||||
long code,
|
||||
ReleaseState releaseState);
|
||||
|
||||
/**
|
||||
* batch export process definition by ids
|
||||
* batch export process definition by codes
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param processDefinitionIds process definition ids
|
||||
* @param projectCode project code
|
||||
* @param codes process definition codes
|
||||
* @param response http servlet response
|
||||
*/
|
||||
void batchExportProcessDefinitionByIds(User loginUser,
|
||||
String projectName,
|
||||
String processDefinitionIds,
|
||||
HttpServletResponse response);
|
||||
void batchExportProcessDefinitionByCodes(User loginUser,
|
||||
long projectCode,
|
||||
String codes,
|
||||
HttpServletResponse response);
|
||||
|
||||
/**
|
||||
* import process definition
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectCode project code
|
||||
* @param file process metadata json file
|
||||
* @param currentProjectName current project name
|
||||
* @return import process
|
||||
*/
|
||||
Map<String, Object> importProcessDefinition(User loginUser,
|
||||
MultipartFile file,
|
||||
String currentProjectName);
|
||||
long projectCode,
|
||||
MultipartFile file);
|
||||
|
||||
/**
|
||||
* check the process definition node meets the specifications
|
||||
* check the process task relation json
|
||||
*
|
||||
* @param processData process data
|
||||
* @param processDefinitionJson process definition json
|
||||
* @param processTaskRelationJson process task relation json
|
||||
* @return check result code
|
||||
*/
|
||||
Map<String, Object> checkProcessNodeList(ProcessData processData,
|
||||
String processDefinitionJson);
|
||||
Map<String, Object> checkProcessNodeList(String processTaskRelationJson);
|
||||
|
||||
/**
|
||||
* get task node details based on process definition
|
||||
*
|
||||
* @param defineCode define code
|
||||
* @param loginUser loginUser
|
||||
* @param projectCode project code
|
||||
* @param code processDefinition code
|
||||
* @return task node list
|
||||
*/
|
||||
Map<String, Object> getTaskNodeListByDefinitionCode(Long defineCode);
|
||||
Map<String, Object> getTaskNodeListByDefinitionCode(User loginUser,
|
||||
long projectCode,
|
||||
long code);
|
||||
|
||||
/**
|
||||
* get task node details based on process definition
|
||||
* get task node details map based on process definition
|
||||
*
|
||||
* @param defineCodeList define code list
|
||||
* @param loginUser loginUser
|
||||
* @param projectCode project code
|
||||
* @param codes define code list
|
||||
* @return task node list
|
||||
*/
|
||||
Map<String, Object> getTaskNodeListByDefinitionCodeList(String defineCodeList);
|
||||
Map<String, Object> getNodeListMapByDefinitionCodes(User loginUser,
|
||||
long projectCode,
|
||||
String codes);
|
||||
|
||||
/**
|
||||
* query process definition all by project id
|
||||
* query process definition all by project code
|
||||
*
|
||||
* @param projectId project id
|
||||
* @param projectCode project code
|
||||
* @return process definitions in the project
|
||||
*/
|
||||
Map<String, Object> queryProcessDefinitionAllByProjectId(Integer projectId);
|
||||
Map<String, Object> queryAllProcessDefinitionByProjectCode(User loginUser, long projectCode);
|
||||
|
||||
/**
|
||||
* Encapsulates the TreeView structure
|
||||
*
|
||||
* @param processId process definition id
|
||||
* @param code process definition code
|
||||
* @param limit limit
|
||||
* @return tree view json data
|
||||
* @throws Exception exception
|
||||
*/
|
||||
Map<String, Object> viewTree(Integer processId,
|
||||
Integer limit) throws Exception;
|
||||
Map<String, Object> viewTree(long code, Integer limit);
|
||||
|
||||
/**
|
||||
* switch the defined process definition verison
|
||||
* switch the defined process definition version
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param processDefinitionId process definition id
|
||||
* @param projectCode project code
|
||||
* @param code process definition code
|
||||
* @param version the version user want to switch
|
||||
* @return switch process definition version result code
|
||||
*/
|
||||
Map<String, Object> switchProcessDefinitionVersion(User loginUser, String projectName
|
||||
, int processDefinitionId, long version);
|
||||
Map<String, Object> switchProcessDefinitionVersion(User loginUser,
|
||||
long projectCode,
|
||||
long code,
|
||||
int version);
|
||||
|
||||
/**
|
||||
* query the pagination versions info by one certain process definition code
|
||||
*
|
||||
* @param loginUser login user info to check auth
|
||||
* @param projectName process definition project name
|
||||
* @param projectCode project code
|
||||
* @param pageNo page number
|
||||
* @param pageSize page size
|
||||
* @param processDefinitionCode process definition code
|
||||
* @param code process definition code
|
||||
* @return the pagination process definition versions info of the certain process definition
|
||||
*/
|
||||
Result queryProcessDefinitionVersions(User loginUser, String projectName,
|
||||
int pageNo, int pageSize, long processDefinitionCode);
|
||||
Result queryProcessDefinitionVersions(User loginUser,
|
||||
long projectCode,
|
||||
int pageNo,
|
||||
int pageSize,
|
||||
long code);
|
||||
|
||||
/**
|
||||
* delete one certain process definition by version number and process definition id
|
||||
* delete one certain process definition by version number and process definition code
|
||||
*
|
||||
* @param loginUser login user info to check auth
|
||||
* @param projectName process definition project name
|
||||
* @param processDefinitionId process definition id
|
||||
* @param projectCode project code
|
||||
* @param code process definition code
|
||||
* @param version version number
|
||||
* @return delele result code
|
||||
*/
|
||||
Map<String, Object> deleteByProcessDefinitionIdAndVersion(User loginUser, String projectName,
|
||||
int processDefinitionId, long version);
|
||||
Map<String, Object> deleteProcessDefinitionVersion(User loginUser,
|
||||
long projectCode,
|
||||
long code,
|
||||
int version);
|
||||
|
||||
/**
|
||||
* check has associated process definition
|
||||
*
|
||||
* @param processDefinitionId process definition id
|
||||
* @param version version
|
||||
* @return The query result has a specific process definition return true
|
||||
*/
|
||||
boolean checkHasAssociatedProcessDefinition(int processDefinitionId, long version);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@ import org.apache.dolphinscheduler.dao.entity.ProcessInstance;
|
|||
import org.apache.dolphinscheduler.dao.entity.User;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.text.ParseException;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
|
@ -39,26 +38,32 @@ public interface ProcessInstanceService {
|
|||
/**
|
||||
* return top n SUCCESS process instance order by running time which started between startTime and endTime
|
||||
*/
|
||||
Map<String, Object> queryTopNLongestRunningProcessInstance(User loginUser, String projectName, int size, String startTime, String endTime);
|
||||
Map<String, Object> queryTopNLongestRunningProcessInstance(User loginUser,
|
||||
long projectCode,
|
||||
int size,
|
||||
String startTime,
|
||||
String endTime);
|
||||
|
||||
/**
|
||||
* query process instance by id
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param processId process instance id
|
||||
* @return process instance detail
|
||||
*/
|
||||
Map<String, Object> queryProcessInstanceById(User loginUser, String projectName, Integer processId);
|
||||
Map<String, Object> queryProcessInstanceById(User loginUser,
|
||||
long projectCode,
|
||||
Integer processId);
|
||||
|
||||
/**
|
||||
* paging query process instance list, filtering according to project, process definition, time range, keyword, process status
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param pageNo page number
|
||||
* @param pageSize page size
|
||||
* @param processDefineId process definition id
|
||||
* @param processDefineCode process definition code
|
||||
* @param searchVal search value
|
||||
* @param stateType state type
|
||||
* @param host host
|
||||
|
|
@ -66,21 +71,30 @@ public interface ProcessInstanceService {
|
|||
* @param endDate end time
|
||||
* @return process instance list
|
||||
*/
|
||||
Result queryProcessInstanceList(User loginUser, String projectName, Integer processDefineId,
|
||||
String startDate, String endDate,
|
||||
String searchVal, String executorName, ExecutionStatus stateType, String host,
|
||||
Integer pageNo, Integer pageSize);
|
||||
Result queryProcessInstanceList(User loginUser,
|
||||
long projectCode,
|
||||
long processDefineCode,
|
||||
String startDate,
|
||||
String endDate,
|
||||
String searchVal,
|
||||
String executorName,
|
||||
ExecutionStatus stateType,
|
||||
String host,
|
||||
Integer pageNo,
|
||||
Integer pageSize);
|
||||
|
||||
/**
|
||||
* query task list by process instance id
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param processId process instance id
|
||||
* @return task list for the process instance
|
||||
* @throws IOException io exception
|
||||
*/
|
||||
Map<String, Object> queryTaskListByProcessId(User loginUser, String projectName, Integer processId) throws IOException;
|
||||
Map<String, Object> queryTaskListByProcessId(User loginUser,
|
||||
long projectCode,
|
||||
Integer processId) throws IOException;
|
||||
|
||||
Map<String, DependResult> parseLogForDependentResult(String log) throws IOException;
|
||||
|
||||
|
|
@ -88,50 +102,65 @@ public interface ProcessInstanceService {
|
|||
* query sub process instance detail info by task id
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param taskId task id
|
||||
* @return sub process instance detail
|
||||
*/
|
||||
Map<String, Object> querySubProcessInstanceByTaskId(User loginUser, String projectName, Integer taskId);
|
||||
Map<String, Object> querySubProcessInstanceByTaskId(User loginUser,
|
||||
long projectCode,
|
||||
Integer taskId);
|
||||
|
||||
/**
|
||||
* update process instance
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param processInstanceJson process instance json
|
||||
* @param projectCode project code
|
||||
* @param taskRelationJson process task relation json
|
||||
* @param taskDefinitionJson taskDefinitionJson
|
||||
* @param processInstanceId process instance id
|
||||
* @param scheduleTime schedule time
|
||||
* @param syncDefine sync define
|
||||
* @param flag flag
|
||||
* @param locations locations
|
||||
* @param connects connects
|
||||
* @param globalParams global params
|
||||
* @param locations locations for nodes
|
||||
* @param timeout timeout
|
||||
* @param tenantCode tenantCode
|
||||
* @return update result code
|
||||
* @throws ParseException parse exception for json parse
|
||||
*/
|
||||
Map<String, Object> updateProcessInstance(User loginUser, String projectName, Integer processInstanceId,
|
||||
String processInstanceJson, String scheduleTime, Boolean syncDefine,
|
||||
Flag flag, String locations, String connects) throws ParseException;
|
||||
Map<String, Object> updateProcessInstance(User loginUser,
|
||||
long projectCode,
|
||||
Integer processInstanceId,
|
||||
String taskRelationJson,
|
||||
String taskDefinitionJson,
|
||||
String scheduleTime,
|
||||
Boolean syncDefine,
|
||||
String globalParams,
|
||||
String locations,
|
||||
int timeout,
|
||||
String tenantCode);
|
||||
|
||||
/**
|
||||
* query parent process instance detail info by sub process instance id
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param subId sub process id
|
||||
* @return parent instance detail
|
||||
*/
|
||||
Map<String, Object> queryParentInstanceBySubId(User loginUser, String projectName, Integer subId);
|
||||
Map<String, Object> queryParentInstanceBySubId(User loginUser,
|
||||
long projectCode,
|
||||
Integer subId);
|
||||
|
||||
/**
|
||||
* delete process instance by id, at the same time,delete task instance and their mapping relation data
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param processInstanceId process instance id
|
||||
* @return delete result code
|
||||
*/
|
||||
Map<String, Object> deleteProcessInstanceById(User loginUser, String projectName, Integer processInstanceId);
|
||||
Map<String, Object> deleteProcessInstanceById(User loginUser,
|
||||
long projectCode,
|
||||
Integer processInstanceId);
|
||||
|
||||
/**
|
||||
* view process instance variables
|
||||
|
|
@ -157,7 +186,8 @@ public interface ProcessInstanceService {
|
|||
* @param states states array
|
||||
* @return process instance list
|
||||
*/
|
||||
List<ProcessInstance> queryByProcessDefineCodeAndStatus(Long processDefinitionCode, int[] states);
|
||||
List<ProcessInstance> queryByProcessDefineCodeAndStatus(Long processDefinitionCode,
|
||||
int[] states);
|
||||
|
||||
/**
|
||||
* query process instance by processDefinitionCode
|
||||
|
|
@ -166,6 +196,6 @@ public interface ProcessInstanceService {
|
|||
* @param size size
|
||||
* @return process instance list
|
||||
*/
|
||||
List<ProcessInstance> queryByProcessDefineCode(Long processDefinitionCode,int size);
|
||||
|
||||
List<ProcessInstance> queryByProcessDefineCode(Long processDefinitionCode,
|
||||
int size);
|
||||
}
|
||||
|
|
@ -39,22 +39,22 @@ public interface ProjectService {
|
|||
Map<String, Object> createProject(User loginUser, String name, String desc);
|
||||
|
||||
/**
|
||||
* query project details by id
|
||||
* query project details by code
|
||||
*
|
||||
* @param projectId project id
|
||||
* @param projectCode project code
|
||||
* @return project detail information
|
||||
*/
|
||||
Map<String, Object> queryById(Integer projectId);
|
||||
Map<String, Object> queryByCode(User loginUser, long projectCode);
|
||||
|
||||
/**
|
||||
* check project and authorization
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param project project
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @return true if the login user have permission to see the project
|
||||
*/
|
||||
Map<String, Object> checkProjectAndAuth(User loginUser, Project project, String projectName);
|
||||
Map<String, Object> checkProjectAndAuth(User loginUser, Project project, long projectCode);
|
||||
|
||||
boolean hasProjectAndPerm(User loginUser, Project project, Map<String, Object> result);
|
||||
|
||||
|
|
@ -72,25 +72,25 @@ public interface ProjectService {
|
|||
Result queryProjectListPaging(User loginUser, Integer pageSize, Integer pageNo, String searchVal);
|
||||
|
||||
/**
|
||||
* delete project by id
|
||||
* delete project by code
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectId project id
|
||||
* @param projectCode project code
|
||||
* @return delete result code
|
||||
*/
|
||||
Map<String, Object> deleteProject(User loginUser, Integer projectId);
|
||||
Map<String, Object> deleteProject(User loginUser, Long projectCode);
|
||||
|
||||
/**
|
||||
* updateProcessInstance project
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectId project id
|
||||
* @param projectCode project code
|
||||
* @param projectName project name
|
||||
* @param desc description
|
||||
* @param userName project owner
|
||||
* @return update result code
|
||||
*/
|
||||
Map<String, Object> update(User loginUser, Integer projectId, String projectName, String desc, String userName);
|
||||
Map<String, Object> update(User loginUser, Long projectCode, String projectName, String desc, String userName);
|
||||
|
||||
/**
|
||||
* query unauthorized project
|
||||
|
|
@ -127,8 +127,8 @@ public interface ProjectService {
|
|||
|
||||
/**
|
||||
* query authorized and user create project list by user id
|
||||
* @param loginUser
|
||||
* @return
|
||||
* @param loginUser login user
|
||||
* @return project list
|
||||
*/
|
||||
Map<String, Object> queryProjectCreatedAndAuthorizedByUser(User loginUser);
|
||||
|
||||
|
|
|
|||
|
|
@ -35,8 +35,8 @@ public interface SchedulerService {
|
|||
* save schedule
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param processDefineId process definition id
|
||||
* @param projectCode project code
|
||||
* @param processDefineCode process definition code
|
||||
* @param schedule scheduler
|
||||
* @param warningType warning type
|
||||
* @param warningGroupId warning group id
|
||||
|
|
@ -46,8 +46,9 @@ public interface SchedulerService {
|
|||
* @param environmentCode environment code
|
||||
* @return create result code
|
||||
*/
|
||||
Map<String, Object> insertSchedule(User loginUser, String projectName,
|
||||
Integer processDefineId,
|
||||
Map<String, Object> insertSchedule(User loginUser,
|
||||
long projectCode,
|
||||
long processDefineCode,
|
||||
String schedule,
|
||||
WarningType warningType,
|
||||
int warningGroupId,
|
||||
|
|
@ -60,7 +61,7 @@ public interface SchedulerService {
|
|||
* updateProcessInstance schedule
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param id scheduler id
|
||||
* @param scheduleExpression scheduler
|
||||
* @param warningType warning type
|
||||
|
|
@ -69,17 +70,15 @@ public interface SchedulerService {
|
|||
* @param workerGroup worker group
|
||||
* @param environmentCode environment code
|
||||
* @param processInstancePriority process instance priority
|
||||
* @param scheduleStatus schedule status
|
||||
* @return update result code
|
||||
*/
|
||||
Map<String, Object> updateSchedule(User loginUser,
|
||||
String projectName,
|
||||
long projectCode,
|
||||
Integer id,
|
||||
String scheduleExpression,
|
||||
WarningType warningType,
|
||||
int warningGroupId,
|
||||
FailureStrategy failureStrategy,
|
||||
ReleaseState scheduleStatus,
|
||||
Priority processInstancePriority,
|
||||
String workerGroup,
|
||||
Long environmentCode);
|
||||
|
|
@ -89,13 +88,13 @@ public interface SchedulerService {
|
|||
* set schedule online or offline
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param id scheduler id
|
||||
* @param scheduleStatus schedule status
|
||||
* @return publish result code
|
||||
*/
|
||||
Map<String, Object> setScheduleState(User loginUser,
|
||||
String projectName,
|
||||
long projectCode,
|
||||
Integer id,
|
||||
ReleaseState scheduleStatus);
|
||||
|
||||
|
|
@ -103,23 +102,24 @@ public interface SchedulerService {
|
|||
* query schedule
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param processDefineId process definition id
|
||||
* @param projectCode project code
|
||||
* @param processDefineCode process definition code
|
||||
* @param pageNo page number
|
||||
* @param pageSize page size
|
||||
* @param searchVal search value
|
||||
* @return schedule list page
|
||||
*/
|
||||
Result querySchedule(User loginUser, String projectName, Integer processDefineId, String searchVal, Integer pageNo, Integer pageSize);
|
||||
Result querySchedule(User loginUser, long projectCode, long processDefineCode, String searchVal,
|
||||
Integer pageNo, Integer pageSize);
|
||||
|
||||
/**
|
||||
* query schedule list
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @return schedule list
|
||||
*/
|
||||
Map<String, Object> queryScheduleList(User loginUser, String projectName);
|
||||
Map<String, Object> queryScheduleList(User loginUser, long projectCode);
|
||||
|
||||
/**
|
||||
* delete schedule
|
||||
|
|
@ -134,19 +134,18 @@ public interface SchedulerService {
|
|||
* delete schedule by id
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param scheduleId scheule id
|
||||
* @return delete result code
|
||||
*/
|
||||
Map<String, Object> deleteScheduleById(User loginUser, String projectName, Integer scheduleId);
|
||||
Map<String, Object> deleteScheduleById(User loginUser, long projectCode, Integer scheduleId);
|
||||
|
||||
/**
|
||||
* preview schedule
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param schedule schedule expression
|
||||
* @return the next five fire time
|
||||
*/
|
||||
Map<String, Object> previewSchedule(User loginUser, String projectName, String schedule);
|
||||
}
|
||||
Map<String, Object> previewSchedule(User loginUser, String schedule);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@
|
|||
|
||||
package org.apache.dolphinscheduler.api.service;
|
||||
|
||||
import org.apache.dolphinscheduler.api.utils.Result;
|
||||
import org.apache.dolphinscheduler.dao.entity.User;
|
||||
|
||||
import java.util.Map;
|
||||
|
|
@ -30,59 +31,131 @@ public interface TaskDefinitionService {
|
|||
* create task definition
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param taskDefinitionJson task definition json
|
||||
*/
|
||||
Map<String, Object> createTaskDefinition(User loginUser,
|
||||
String projectName,
|
||||
long projectCode,
|
||||
String taskDefinitionJson);
|
||||
|
||||
/**
|
||||
* query task definition
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param taskName task name
|
||||
*/
|
||||
Map<String, Object> queryTaskDefinitionByName(User loginUser,
|
||||
String projectName,
|
||||
long projectCode,
|
||||
String taskName);
|
||||
|
||||
/**
|
||||
* delete task definition
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param taskCode task code
|
||||
*/
|
||||
Map<String, Object> deleteTaskDefinitionByCode(User loginUser,
|
||||
String projectName,
|
||||
Long taskCode);
|
||||
long projectCode,
|
||||
long taskCode);
|
||||
|
||||
/**
|
||||
* update task definition
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param taskCode task code
|
||||
* @param taskDefinitionJson task definition json
|
||||
* @param taskDefinitionJsonObj task definition json object
|
||||
*/
|
||||
Map<String, Object> updateTaskDefinition(User loginUser,
|
||||
String projectName,
|
||||
Long taskCode,
|
||||
String taskDefinitionJson);
|
||||
long projectCode,
|
||||
long taskCode,
|
||||
String taskDefinitionJsonObj);
|
||||
|
||||
/**
|
||||
* update task definition
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param taskCode task code
|
||||
* @param version the version user want to switch
|
||||
*/
|
||||
Map<String, Object> switchVersion(User loginUser,
|
||||
String projectName,
|
||||
Long taskCode,
|
||||
long projectCode,
|
||||
long taskCode,
|
||||
int version);
|
||||
}
|
||||
|
||||
/**
|
||||
* query the pagination versions info by one certain task definition code
|
||||
*
|
||||
* @param loginUser login user info to check auth
|
||||
* @param projectCode project code
|
||||
* @param taskCode task definition code
|
||||
* @param pageNo page number
|
||||
* @param pageSize page size
|
||||
* @return the pagination task definition versions info of the certain task definition
|
||||
*/
|
||||
Result queryTaskDefinitionVersions(User loginUser,
|
||||
long projectCode,
|
||||
long taskCode,
|
||||
int pageNo,
|
||||
int pageSize);
|
||||
|
||||
/**
|
||||
* delete the certain task definition version by version and code
|
||||
*
|
||||
* @param loginUser login user info
|
||||
* @param projectCode project code
|
||||
* @param taskCode the task definition code
|
||||
* @param version the task definition version user want to delete
|
||||
* @return delete version result code
|
||||
*/
|
||||
Map<String, Object> deleteByCodeAndVersion(User loginUser,
|
||||
long projectCode,
|
||||
long taskCode,
|
||||
int version);
|
||||
|
||||
/**
|
||||
* query detail of task definition by code
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectCode project code
|
||||
* @param taskCode the task definition code
|
||||
* @return task definition detail
|
||||
*/
|
||||
Map<String, Object> queryTaskDefinitionDetail(User loginUser,
|
||||
long projectCode,
|
||||
long taskCode);
|
||||
|
||||
/**
|
||||
* query task definition list paging
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectCode project code
|
||||
* @param taskType taskType
|
||||
* @param searchVal search value
|
||||
* @param userId user id
|
||||
* @param pageNo page number
|
||||
* @param pageSize page size
|
||||
* @return task definition page
|
||||
*/
|
||||
Result queryTaskDefinitionListPaging(User loginUser,
|
||||
long projectCode,
|
||||
String taskType,
|
||||
String searchVal,
|
||||
Integer userId,
|
||||
Integer pageNo,
|
||||
Integer pageSize);
|
||||
|
||||
/**
|
||||
* gen task code list
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param genNum gen num
|
||||
* @return task code list
|
||||
*/
|
||||
Map<String, Object> genTaskCodeList(User loginUser,
|
||||
Integer genNum);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ public interface TaskInstanceService {
|
|||
* query task list by project, process instance, task name, task start time, task end time, task status, keyword paging
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param processInstanceId process instance id
|
||||
* @param searchVal search value
|
||||
* @param taskName task name
|
||||
|
|
@ -44,19 +44,29 @@ public interface TaskInstanceService {
|
|||
* @param pageSize page size
|
||||
* @return task list page
|
||||
*/
|
||||
Result queryTaskListPaging(User loginUser, String projectName,
|
||||
Integer processInstanceId, String processInstanceName, String taskName, String executorName, String startDate,
|
||||
String endDate, String searchVal, ExecutionStatus stateType, String host,
|
||||
Integer pageNo, Integer pageSize);
|
||||
Result queryTaskListPaging(User loginUser,
|
||||
long projectCode,
|
||||
Integer processInstanceId,
|
||||
String processInstanceName,
|
||||
String taskName,
|
||||
String executorName,
|
||||
String startDate,
|
||||
String endDate,
|
||||
String searchVal,
|
||||
ExecutionStatus stateType,
|
||||
String host,
|
||||
Integer pageNo,
|
||||
Integer pageSize);
|
||||
|
||||
/**
|
||||
* change one task instance's state from failure to forced success
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param loginUser login user
|
||||
* @param projectCode project code
|
||||
* @param taskInstanceId task instance id
|
||||
* @return the result code and msg
|
||||
*/
|
||||
Map<String, Object> forceTaskSuccess(User loginUser, String projectName, Integer taskInstanceId);
|
||||
|
||||
Map<String, Object> forceTaskSuccess(User loginUser,
|
||||
long projectCode,
|
||||
Integer taskInstanceId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,8 +25,8 @@ import java.util.Set;
|
|||
*/
|
||||
public interface WorkFlowLineageService {
|
||||
|
||||
Map<String, Object> queryWorkFlowLineageByName(String workFlowName, int projectId);
|
||||
Map<String, Object> queryWorkFlowLineageByName(String workFlowName, long projectCode);
|
||||
|
||||
Map<String, Object> queryWorkFlowLineageByIds(Set<Integer> ids,int projectId);
|
||||
Map<String, Object> queryWorkFlowLineageByIds(Set<Integer> ids, long projectCode);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -90,17 +90,17 @@ public class DataAnalysisServiceImpl extends BaseServiceImpl implements DataAnal
|
|||
* statistical task instance status data
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectId project id
|
||||
* @param projectCode project code
|
||||
* @param startDate start date
|
||||
* @param endDate end date
|
||||
* @return task state count data
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> countTaskStateByProject(User loginUser, int projectId, String startDate, String endDate) {
|
||||
public Map<String, Object> countTaskStateByProject(User loginUser, long projectCode, String startDate, String endDate) {
|
||||
|
||||
return countStateByProject(
|
||||
loginUser,
|
||||
projectId,
|
||||
projectCode,
|
||||
startDate,
|
||||
endDate,
|
||||
(start, end, projectCodes) -> this.taskInstanceMapper.countTaskInstanceStateByUser(start, end, projectCodes));
|
||||
|
|
@ -110,16 +110,16 @@ public class DataAnalysisServiceImpl extends BaseServiceImpl implements DataAnal
|
|||
* statistical process instance status data
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectId project id
|
||||
* @param projectCode project code
|
||||
* @param startDate start date
|
||||
* @param endDate end date
|
||||
* @return process instance state count data
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> countProcessInstanceStateByProject(User loginUser, int projectId, String startDate, String endDate) {
|
||||
public Map<String, Object> countProcessInstanceStateByProject(User loginUser, long projectCode, String startDate, String endDate) {
|
||||
Map<String, Object> result = this.countStateByProject(
|
||||
loginUser,
|
||||
projectId,
|
||||
projectCode,
|
||||
startDate,
|
||||
endDate,
|
||||
(start, end, projectCodes) -> this.processInstanceMapper.countInstanceStateByUser(start, end, projectCodes));
|
||||
|
|
@ -130,12 +130,16 @@ public class DataAnalysisServiceImpl extends BaseServiceImpl implements DataAnal
|
|||
return result;
|
||||
}
|
||||
|
||||
private Map<String, Object> countStateByProject(User loginUser, int projectId, String startDate, String endDate
|
||||
private Map<String, Object> countStateByProject(User loginUser, long projectCode, String startDate, String endDate
|
||||
, TriFunction<Date, Date, Long[], List<ExecuteStatusCount>> instanceStateCounter) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
boolean checkProject = checkProject(loginUser, projectId, result);
|
||||
if (!checkProject) {
|
||||
return result;
|
||||
|
||||
if (projectCode != 0) {
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
result = projectService.checkProjectAndAuth(loginUser, project, projectCode);
|
||||
if (result.get(Constants.STATUS) != Status.SUCCESS) {
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
Date start = null;
|
||||
|
|
@ -149,8 +153,8 @@ public class DataAnalysisServiceImpl extends BaseServiceImpl implements DataAnal
|
|||
}
|
||||
}
|
||||
|
||||
Long[] projectCodeArray = projectId == 0 ? getProjectCodesArrays(loginUser)
|
||||
: new Long[] { projectMapper.selectById(projectId).getCode() };
|
||||
Long[] projectCodeArray = projectCode == 0 ? getProjectCodesArrays(loginUser)
|
||||
: new Long[] { projectCode };
|
||||
List<ExecuteStatusCount> processInstanceStateCounts =
|
||||
instanceStateCounter.apply(start, end, projectCodeArray);
|
||||
|
||||
|
|
@ -167,18 +171,23 @@ public class DataAnalysisServiceImpl extends BaseServiceImpl implements DataAnal
|
|||
* statistics the process definition quantities of certain person
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectId project id
|
||||
* @param projectCode project code
|
||||
* @return definition count data
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> countDefinitionByUser(User loginUser, int projectId) {
|
||||
public Map<String, Object> countDefinitionByUser(User loginUser, long projectCode) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
boolean checkProject = checkProject(loginUser, projectId, result);
|
||||
if (!checkProject) {
|
||||
return result;
|
||||
|
||||
if (projectCode != 0) {
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
result = projectService.checkProjectAndAuth(loginUser, project, projectCode);
|
||||
if (result.get(Constants.STATUS) != Status.SUCCESS) {
|
||||
return result;
|
||||
}
|
||||
}
|
||||
Long[] projectCodeArray = projectId == 0 ? getProjectCodesArrays(loginUser)
|
||||
: new Long[] { projectMapper.selectById(projectId).getCode() };
|
||||
|
||||
Long[] projectCodeArray = projectCode == 0 ? getProjectCodesArrays(loginUser)
|
||||
: new Long[] { projectCode };
|
||||
List<DefinitionGroupByUser> defineGroupByUsers = processDefinitionMapper.countDefinitionGroupByUser(
|
||||
loginUser.getId(), projectCodeArray, isAdmin(loginUser));
|
||||
|
||||
|
|
@ -193,43 +202,20 @@ public class DataAnalysisServiceImpl extends BaseServiceImpl implements DataAnal
|
|||
* statistical command status data
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectId project id
|
||||
* @param startDate start date
|
||||
* @param endDate end date
|
||||
* @return command state count data
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> countCommandState(User loginUser, int projectId, String startDate, String endDate) {
|
||||
|
||||
public Map<String, Object> countCommandState(User loginUser) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
boolean checkProject = checkProject(loginUser, projectId, result);
|
||||
if (!checkProject) {
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* find all the task lists in the project under the user
|
||||
* statistics based on task status execution, failure, completion, wait, total
|
||||
*/
|
||||
Date start = null;
|
||||
if (StringUtils.isNotEmpty(startDate)) {
|
||||
start = DateUtils.getScheduleDate(startDate);
|
||||
if (Objects.isNull(start)) {
|
||||
putMsg(result, Status.REQUEST_PARAMS_NOT_VALID_ERROR, Constants.START_END_DATE);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
Date end = null;
|
||||
if (StringUtils.isNotEmpty(endDate)) {
|
||||
end = DateUtils.getScheduleDate(endDate);
|
||||
if (Objects.isNull(end)) {
|
||||
putMsg(result, Status.REQUEST_PARAMS_NOT_VALID_ERROR, Constants.START_END_DATE);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
Long[] projectCodeArray = getProjectCodesArrays(loginUser);
|
||||
|
||||
Long[] projectCodeArray = projectId == 0 ? getProjectCodesArrays(loginUser)
|
||||
: new Long[] { projectMapper.selectById(projectId).getCode() };
|
||||
// count normal command state
|
||||
Map<CommandType, Integer> normalCountCommandCounts = commandMapper.countCommandState(loginUser.getId(), start, end, projectCodeArray)
|
||||
.stream()
|
||||
|
|
@ -267,20 +253,13 @@ public class DataAnalysisServiceImpl extends BaseServiceImpl implements DataAnal
|
|||
/**
|
||||
* count queue state
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectId project id
|
||||
* @return queue state count data
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> countQueueState(User loginUser, int projectId) {
|
||||
public Map<String, Object> countQueueState(User loginUser) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
|
||||
boolean checkProject = checkProject(loginUser, projectId, result);
|
||||
if (!checkProject) {
|
||||
return result;
|
||||
}
|
||||
|
||||
//TODO need to add detail data info
|
||||
//TODO need to add detail data info
|
||||
Map<String, Integer> dataMap = new HashMap<>();
|
||||
dataMap.put("taskQueue", 0);
|
||||
dataMap.put("taskKill", 0);
|
||||
|
|
@ -289,12 +268,4 @@ public class DataAnalysisServiceImpl extends BaseServiceImpl implements DataAnal
|
|||
return result;
|
||||
}
|
||||
|
||||
private boolean checkProject(User loginUser, int projectId, Map<String, Object> result) {
|
||||
if (projectId != 0) {
|
||||
Project project = projectMapper.selectById(projectId);
|
||||
return projectService.hasProjectAndPerm(loginUser, project, result);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -308,7 +308,8 @@ public class DataSourceServiceImpl extends BaseServiceImpl implements DataSource
|
|||
* check connection
|
||||
*
|
||||
* @param type data source type
|
||||
* @param connectionParam data source parameters
|
||||
* @param connectionParam connectionParam
|
||||
* @return true if connect successfully, otherwise false
|
||||
* @return true if connect successfully, otherwise false
|
||||
*/
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -107,8 +107,8 @@ public class ExecutorServiceImpl extends BaseServiceImpl implements ExecutorServ
|
|||
* execute process instance
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param processDefinitionId process Definition Id
|
||||
* @param projectCode project code
|
||||
* @param processDefinitionCode process definition code
|
||||
* @param cronTime cron time
|
||||
* @param commandType command type
|
||||
* @param failureStrategy failure strategy
|
||||
|
|
@ -126,28 +126,28 @@ public class ExecutorServiceImpl extends BaseServiceImpl implements ExecutorServ
|
|||
* @return execute process instance code
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> execProcessInstance(User loginUser, String projectName,
|
||||
int processDefinitionId, String cronTime, CommandType commandType,
|
||||
public Map<String, Object> execProcessInstance(User loginUser, long projectCode,
|
||||
long processDefinitionCode, String cronTime, CommandType commandType,
|
||||
FailureStrategy failureStrategy, String startNodeList,
|
||||
TaskDependType taskDependType, WarningType warningType, int warningGroupId,
|
||||
RunMode runMode,
|
||||
Priority processInstancePriority, String workerGroup, Long environmentCode, Integer timeout,
|
||||
Priority processInstancePriority, String workerGroup, Long environmentCode,Integer timeout,
|
||||
Map<String, String> startParams, Integer expectedParallelismNumber) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
//check user access for project
|
||||
Map<String, Object> result = projectService.checkProjectAndAuth(loginUser, project, projectCode);
|
||||
if (result.get(Constants.STATUS) != Status.SUCCESS) {
|
||||
return result;
|
||||
}
|
||||
// timeout is invalid
|
||||
if (timeout <= 0 || timeout > MAX_TASK_TIMEOUT) {
|
||||
putMsg(result, Status.TASK_TIMEOUT_PARAMS_ERROR);
|
||||
return result;
|
||||
}
|
||||
Project project = projectMapper.queryByName(projectName);
|
||||
Map<String, Object> checkResultAndAuth = checkResultAndAuth(loginUser, projectName, project);
|
||||
if (checkResultAndAuth != null) {
|
||||
return checkResultAndAuth;
|
||||
}
|
||||
|
||||
// check process define release state
|
||||
ProcessDefinition processDefinition = processDefinitionMapper.selectById(processDefinitionId);
|
||||
result = checkProcessDefinitionValid(processDefinition, processDefinitionId);
|
||||
ProcessDefinition processDefinition = processDefinitionMapper.queryByCode(processDefinitionCode);
|
||||
result = checkProcessDefinitionValid(processDefinition, processDefinitionCode);
|
||||
if (result.get(Constants.STATUS) != Status.SUCCESS) {
|
||||
return result;
|
||||
}
|
||||
|
|
@ -167,7 +167,7 @@ public class ExecutorServiceImpl extends BaseServiceImpl implements ExecutorServ
|
|||
/**
|
||||
* create command
|
||||
*/
|
||||
int create = this.createCommand(commandType, processDefinitionId,
|
||||
int create = this.createCommand(commandType, processDefinition.getCode(),
|
||||
taskDependType, failureStrategy, startNodeList, cronTime, warningType, loginUser.getId(),
|
||||
warningGroupId, runMode, processInstancePriority, workerGroup, environmentCode, startParams, expectedParallelismNumber);
|
||||
|
||||
|
|
@ -225,19 +225,18 @@ public class ExecutorServiceImpl extends BaseServiceImpl implements ExecutorServ
|
|||
* do action to process instance:pause, stop, repeat, recover from pause, recover from stop
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param processInstanceId process instance id
|
||||
* @param executeType execute type
|
||||
* @return execute result code
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> execute(User loginUser, String projectName, Integer processInstanceId, ExecuteType executeType) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
Project project = projectMapper.queryByName(projectName);
|
||||
|
||||
Map<String, Object> checkResult = checkResultAndAuth(loginUser, projectName, project);
|
||||
if (checkResult != null) {
|
||||
return checkResult;
|
||||
public Map<String, Object> execute(User loginUser, long projectCode, Integer processInstanceId, ExecuteType executeType) {
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
//check user access for project
|
||||
Map<String, Object> result = projectService.checkProjectAndAuth(loginUser, project, projectCode);
|
||||
if (result.get(Constants.STATUS) != Status.SUCCESS) {
|
||||
return result;
|
||||
}
|
||||
|
||||
// check master exists
|
||||
|
|
@ -260,10 +259,9 @@ public class ExecutorServiceImpl extends BaseServiceImpl implements ExecutorServ
|
|||
}
|
||||
}
|
||||
|
||||
checkResult = checkExecuteType(processInstance, executeType);
|
||||
Status status = (Status) checkResult.get(Constants.STATUS);
|
||||
if (status != Status.SUCCESS) {
|
||||
return checkResult;
|
||||
result = checkExecuteType(processInstance, executeType);
|
||||
if (result.get(Constants.STATUS) != Status.SUCCESS) {
|
||||
return result;
|
||||
}
|
||||
if (!checkTenantSuitable(processDefinition)) {
|
||||
logger.error("there is not any valid tenant for the process definition: id:{},name:{}, ",
|
||||
|
|
@ -283,13 +281,13 @@ public class ExecutorServiceImpl extends BaseServiceImpl implements ExecutorServ
|
|||
|
||||
switch (executeType) {
|
||||
case REPEAT_RUNNING:
|
||||
result = insertCommand(loginUser, processInstanceId, processDefinition.getId(), CommandType.REPEAT_RUNNING, startParams);
|
||||
result = insertCommand(loginUser, processInstanceId, processDefinition.getCode(), CommandType.REPEAT_RUNNING, startParams);
|
||||
break;
|
||||
case RECOVER_SUSPENDED_PROCESS:
|
||||
result = insertCommand(loginUser, processInstanceId, processDefinition.getId(), CommandType.RECOVER_SUSPENDED_PROCESS, startParams);
|
||||
result = insertCommand(loginUser, processInstanceId, processDefinition.getCode(), CommandType.RECOVER_SUSPENDED_PROCESS, startParams);
|
||||
break;
|
||||
case START_FAILURE_TASK_PROCESS:
|
||||
result = insertCommand(loginUser, processInstanceId, processDefinition.getId(), CommandType.START_FAILURE_TASK_PROCESS, startParams);
|
||||
result = insertCommand(loginUser, processInstanceId, processDefinition.getCode(), CommandType.START_FAILURE_TASK_PROCESS, startParams);
|
||||
break;
|
||||
case STOP:
|
||||
if (processInstance.getState() == ExecutionStatus.READY_STOP) {
|
||||
|
|
@ -406,13 +404,13 @@ public class ExecutorServiceImpl extends BaseServiceImpl implements ExecutorServ
|
|||
/**
|
||||
* insert command, used in the implementation of the page, re run, recovery (pause / failure) execution
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param instanceId instance id
|
||||
* @param processDefinitionId process definition id
|
||||
* @param commandType command type
|
||||
* @param loginUser login user
|
||||
* @param instanceId instance id
|
||||
* @param processDefinitionCode process definition code
|
||||
* @param commandType command type
|
||||
* @return insert result code
|
||||
*/
|
||||
private Map<String, Object> insertCommand(User loginUser, Integer instanceId, Integer processDefinitionId, CommandType commandType, String startParams) {
|
||||
private Map<String, Object> insertCommand(User loginUser, Integer instanceId, long processDefinitionCode, CommandType commandType, String startParams) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
|
||||
//To add startParams only when repeat running is needed
|
||||
|
|
@ -424,12 +422,12 @@ public class ExecutorServiceImpl extends BaseServiceImpl implements ExecutorServ
|
|||
|
||||
Command command = new Command();
|
||||
command.setCommandType(commandType);
|
||||
command.setProcessDefinitionId(processDefinitionId);
|
||||
command.setProcessDefinitionCode(processDefinitionCode);
|
||||
command.setCommandParam(JSONUtils.toJsonString(cmdParam));
|
||||
command.setExecutorId(loginUser.getId());
|
||||
|
||||
if (!processService.verifyIsNeedCreateCommand(command)) {
|
||||
putMsg(result, Status.PROCESS_INSTANCE_EXECUTING_COMMAND, processDefinitionId);
|
||||
putMsg(result, Status.PROCESS_INSTANCE_EXECUTING_COMMAND, processDefinitionCode);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
@ -447,31 +445,35 @@ public class ExecutorServiceImpl extends BaseServiceImpl implements ExecutorServ
|
|||
/**
|
||||
* check if sub processes are offline before starting process definition
|
||||
*
|
||||
* @param processDefineId process definition id
|
||||
* @param processDefinitionCode process definition code
|
||||
* @return check result code
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> startCheckByProcessDefinedId(int processDefineId) {
|
||||
public Map<String, Object> startCheckByProcessDefinedCode(long processDefinitionCode) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
|
||||
if (processDefineId == 0) {
|
||||
logger.error("process definition id is null");
|
||||
putMsg(result, Status.REQUEST_PARAMS_NOT_VALID_ERROR, "process definition id");
|
||||
ProcessDefinition processDefinition = processDefinitionMapper.queryByCode(processDefinitionCode);
|
||||
|
||||
if (processDefinition == null) {
|
||||
logger.error("process definition is not found");
|
||||
putMsg(result, Status.REQUEST_PARAMS_NOT_VALID_ERROR, "processDefinitionCode");
|
||||
return result;
|
||||
}
|
||||
|
||||
List<Integer> ids = new ArrayList<>();
|
||||
processService.recurseFindSubProcessId(processDefineId, ids);
|
||||
processService.recurseFindSubProcessId(processDefinition.getId(), ids);
|
||||
Integer[] idArray = ids.toArray(new Integer[ids.size()]);
|
||||
if (!ids.isEmpty()) {
|
||||
List<ProcessDefinition> processDefinitionList = processDefinitionMapper.queryDefinitionListByIdList(idArray);
|
||||
if (processDefinitionList != null) {
|
||||
for (ProcessDefinition processDefinition : processDefinitionList) {
|
||||
for (ProcessDefinition processDefinitionTmp : processDefinitionList) {
|
||||
/**
|
||||
* if there is no online process, exit directly
|
||||
*/
|
||||
if (processDefinition.getReleaseState() != ReleaseState.ONLINE) {
|
||||
putMsg(result, Status.PROCESS_DEFINE_NOT_RELEASE, processDefinition.getName());
|
||||
if (processDefinitionTmp.getReleaseState() != ReleaseState.ONLINE) {
|
||||
putMsg(result, Status.PROCESS_DEFINE_NOT_RELEASE, processDefinitionTmp.getName());
|
||||
logger.info("not release process definition id: {} , name : {}",
|
||||
processDefinition.getId(), processDefinition.getName());
|
||||
processDefinitionTmp.getId(), processDefinitionTmp.getName());
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
|
@ -485,7 +487,7 @@ public class ExecutorServiceImpl extends BaseServiceImpl implements ExecutorServ
|
|||
* create command
|
||||
*
|
||||
* @param commandType commandType
|
||||
* @param processDefineId processDefineId
|
||||
* @param processDefineCode processDefineCode
|
||||
* @param nodeDep nodeDep
|
||||
* @param failureStrategy failureStrategy
|
||||
* @param startNodeList startNodeList
|
||||
|
|
@ -499,7 +501,7 @@ public class ExecutorServiceImpl extends BaseServiceImpl implements ExecutorServ
|
|||
* @param environmentCode environmentCode
|
||||
* @return command id
|
||||
*/
|
||||
private int createCommand(CommandType commandType, int processDefineId,
|
||||
private int createCommand(CommandType commandType, long processDefineCode,
|
||||
TaskDependType nodeDep, FailureStrategy failureStrategy,
|
||||
String startNodeList, String schedule, WarningType warningType,
|
||||
int executorId, int warningGroupId,
|
||||
|
|
@ -517,7 +519,7 @@ public class ExecutorServiceImpl extends BaseServiceImpl implements ExecutorServ
|
|||
} else {
|
||||
command.setCommandType(commandType);
|
||||
}
|
||||
command.setProcessDefinitionId(processDefineId);
|
||||
command.setProcessDefinitionCode(processDefineCode);
|
||||
if (nodeDep != null) {
|
||||
command.setTaskDependType(nodeDep);
|
||||
}
|
||||
|
|
@ -560,7 +562,7 @@ public class ExecutorServiceImpl extends BaseServiceImpl implements ExecutorServ
|
|||
command.setCommandParam(JSONUtils.toJsonString(cmdParam));
|
||||
return processService.createCommand(command);
|
||||
} else if (runMode == RunMode.RUN_MODE_PARALLEL) {
|
||||
List<Schedule> schedules = processService.queryReleaseSchedulerListByProcessDefinitionId(processDefineId);
|
||||
List<Schedule> schedules = processService.queryReleaseSchedulerListByProcessDefinitionCode(processDefineCode);
|
||||
LinkedList<Date> listDate = new LinkedList<>();
|
||||
if (!CollectionUtils.isEmpty(schedules)) {
|
||||
for (Schedule item : schedules) {
|
||||
|
|
@ -601,7 +603,7 @@ public class ExecutorServiceImpl extends BaseServiceImpl implements ExecutorServ
|
|||
}
|
||||
}
|
||||
} else {
|
||||
logger.error("there is not valid schedule date for the process definition: id:{}", processDefineId);
|
||||
logger.error("there is not valid schedule date for the process definition code:{}", processDefineCode);
|
||||
}
|
||||
} else {
|
||||
command.setCommandParam(JSONUtils.toJsonString(cmdParam));
|
||||
|
|
@ -610,18 +612,4 @@ public class ExecutorServiceImpl extends BaseServiceImpl implements ExecutorServ
|
|||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* check result and auth
|
||||
*/
|
||||
private Map<String, Object> checkResultAndAuth(User loginUser, String projectName, Project project) {
|
||||
// check project auth
|
||||
Map<String, Object> checkResult = projectService.checkProjectAndAuth(loginUser, project, projectName);
|
||||
Status status = (Status) checkResult.get(Constants.STATUS);
|
||||
if (status != Status.SUCCESS) {
|
||||
return checkResult;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -33,6 +33,7 @@ import org.apache.dolphinscheduler.api.service.ProcessDefinitionService;
|
|||
import org.apache.dolphinscheduler.api.service.ProcessInstanceService;
|
||||
import org.apache.dolphinscheduler.api.service.ProjectService;
|
||||
import org.apache.dolphinscheduler.api.service.UsersService;
|
||||
import org.apache.dolphinscheduler.api.utils.CheckUtils;
|
||||
import org.apache.dolphinscheduler.api.utils.PageInfo;
|
||||
import org.apache.dolphinscheduler.api.utils.Result;
|
||||
import org.apache.dolphinscheduler.common.Constants;
|
||||
|
|
@ -50,9 +51,9 @@ import org.apache.dolphinscheduler.common.utils.JSONUtils;
|
|||
import org.apache.dolphinscheduler.common.utils.ParameterUtils;
|
||||
import org.apache.dolphinscheduler.common.utils.StringUtils;
|
||||
import org.apache.dolphinscheduler.common.utils.placeholder.BusinessTimeUtils;
|
||||
import org.apache.dolphinscheduler.dao.entity.ProcessData;
|
||||
import org.apache.dolphinscheduler.dao.entity.ProcessDefinition;
|
||||
import org.apache.dolphinscheduler.dao.entity.ProcessInstance;
|
||||
import org.apache.dolphinscheduler.dao.entity.ProcessTaskRelationLog;
|
||||
import org.apache.dolphinscheduler.dao.entity.Project;
|
||||
import org.apache.dolphinscheduler.dao.entity.TaskDefinitionLog;
|
||||
import org.apache.dolphinscheduler.dao.entity.TaskInstance;
|
||||
|
|
@ -64,6 +65,7 @@ import org.apache.dolphinscheduler.dao.mapper.ProcessInstanceMapper;
|
|||
import org.apache.dolphinscheduler.dao.mapper.ProjectMapper;
|
||||
import org.apache.dolphinscheduler.dao.mapper.TaskDefinitionLogMapper;
|
||||
import org.apache.dolphinscheduler.dao.mapper.TaskInstanceMapper;
|
||||
import org.apache.dolphinscheduler.dao.mapper.TenantMapper;
|
||||
import org.apache.dolphinscheduler.service.process.ProcessService;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
|
|
@ -72,17 +74,13 @@ import java.io.IOException;
|
|||
import java.io.InputStreamReader;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
|
@ -96,8 +94,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|||
@Service
|
||||
public class ProcessInstanceServiceImpl extends BaseServiceImpl implements ProcessInstanceService {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(ProcessInstanceService.class);
|
||||
|
||||
public static final String TASK_TYPE = "taskType";
|
||||
public static final String LOCAL_PARAMS_LIST = "localParamsList";
|
||||
|
||||
|
|
@ -137,18 +133,19 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce
|
|||
@Autowired
|
||||
UsersService usersService;
|
||||
|
||||
@Autowired
|
||||
private TenantMapper tenantMapper;
|
||||
|
||||
/**
|
||||
* return top n SUCCESS process instance order by running time which started between startTime and endTime
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> queryTopNLongestRunningProcessInstance(User loginUser, String projectName, int size, String startTime, String endTime) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
|
||||
Project project = projectMapper.queryByName(projectName);
|
||||
Map<String, Object> checkResult = projectService.checkProjectAndAuth(loginUser, project, projectName);
|
||||
Status resultEnum = (Status) checkResult.get(Constants.STATUS);
|
||||
if (resultEnum != Status.SUCCESS) {
|
||||
return checkResult;
|
||||
public Map<String, Object> queryTopNLongestRunningProcessInstance(User loginUser, long projectCode, int size, String startTime, String endTime) {
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
//check user access for project
|
||||
Map<String, Object> result = projectService.checkProjectAndAuth(loginUser, project, projectCode);
|
||||
if (result.get(Constants.STATUS) != Status.SUCCESS) {
|
||||
return result;
|
||||
}
|
||||
|
||||
if (0 > size) {
|
||||
|
|
@ -184,34 +181,29 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce
|
|||
* query process instance by id
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param processId process instance id
|
||||
* @return process instance detail
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> queryProcessInstanceById(User loginUser, String projectName, Integer processId) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
Project project = projectMapper.queryByName(projectName);
|
||||
|
||||
Map<String, Object> checkResult = projectService.checkProjectAndAuth(loginUser, project, projectName);
|
||||
Status resultEnum = (Status) checkResult.get(Constants.STATUS);
|
||||
if (resultEnum != Status.SUCCESS) {
|
||||
return checkResult;
|
||||
public Map<String, Object> queryProcessInstanceById(User loginUser, long projectCode, Integer processId) {
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
//check user access for project
|
||||
Map<String, Object> result = projectService.checkProjectAndAuth(loginUser, project, projectCode);
|
||||
if (result.get(Constants.STATUS) != Status.SUCCESS) {
|
||||
return result;
|
||||
}
|
||||
ProcessInstance processInstance = processService.findProcessInstanceDetailById(processId);
|
||||
|
||||
ProcessDefinition processDefinition = processService.findProcessDefinition(processInstance.getProcessDefinitionCode(),
|
||||
processInstance.getProcessDefinitionVersion());
|
||||
processInstance.getProcessDefinitionVersion());
|
||||
|
||||
if (processDefinition == null) {
|
||||
putMsg(result, Status.PROCESS_DEFINE_NOT_EXIST, processId);
|
||||
} else {
|
||||
processInstance.setWarningGroupId(processDefinition.getWarningGroupId());
|
||||
processInstance.setConnects(processDefinition.getConnects());
|
||||
processInstance.setLocations(processDefinition.getLocations());
|
||||
|
||||
ProcessData processData = processService.genProcessData(processDefinition);
|
||||
processInstance.setProcessInstanceJson(JSONUtils.toJsonString(processData));
|
||||
processInstance.setDagData(processService.genDagData(processDefinition));
|
||||
result.put(DATA_LIST, processInstance);
|
||||
putMsg(result, Status.SUCCESS);
|
||||
}
|
||||
|
|
@ -223,10 +215,10 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce
|
|||
* paging query process instance list, filtering according to project, process definition, time range, keyword, process status
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param processDefineCode process definition code
|
||||
* @param pageNo page number
|
||||
* @param pageSize page size
|
||||
* @param processDefineId process definition id
|
||||
* @param searchVal search value
|
||||
* @param stateType state type
|
||||
* @param host host
|
||||
|
|
@ -235,15 +227,13 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce
|
|||
* @return process instance list
|
||||
*/
|
||||
@Override
|
||||
public Result queryProcessInstanceList(User loginUser, String projectName, Integer processDefineId,
|
||||
String startDate, String endDate,
|
||||
String searchVal, String executorName, ExecutionStatus stateType, String host,
|
||||
Integer pageNo, Integer pageSize) {
|
||||
public Result queryProcessInstanceList(User loginUser, long projectCode, long processDefineCode, String startDate, String endDate, String searchVal, String executorName,
|
||||
ExecutionStatus stateType, String host, Integer pageNo, Integer pageSize) {
|
||||
|
||||
Result result = new Result();
|
||||
Project project = projectMapper.queryByName(projectName);
|
||||
|
||||
Map<String, Object> checkResult = projectService.checkProjectAndAuth(loginUser, project, projectName);
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
//check user access for project
|
||||
Map<String, Object> checkResult = projectService.checkProjectAndAuth(loginUser, project, projectCode);
|
||||
Status resultEnum = (Status) checkResult.get(Constants.STATUS);
|
||||
if (resultEnum != Status.SUCCESS) {
|
||||
putMsg(result,resultEnum);
|
||||
|
|
@ -269,11 +259,8 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce
|
|||
PageInfo<ProcessInstance> pageInfo = new PageInfo<>(pageNo, pageSize);
|
||||
int executorId = usersService.getUserIdByName(executorName);
|
||||
|
||||
ProcessDefinition processDefinition = processDefineMapper.queryByDefineId(processDefineId);
|
||||
|
||||
IPage<ProcessInstance> processInstanceList = processInstanceMapper.queryProcessInstanceListPaging(page,
|
||||
project.getCode(), processDefinition == null ? 0L : processDefinition.getCode(), searchVal,
|
||||
executorId, statusArray, host, start, end);
|
||||
project.getCode(), processDefineCode, searchVal, executorId, statusArray, host, start, end);
|
||||
|
||||
List<ProcessInstance> processInstances = processInstanceList.getRecords();
|
||||
List<Integer> userIds = CollectionUtils.transformToList(processInstances, ProcessInstance::getExecutorId);
|
||||
|
|
@ -298,20 +285,18 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce
|
|||
* query task list by process instance id
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param processId process instance id
|
||||
* @return task list for the process instance
|
||||
* @throws IOException io exception
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> queryTaskListByProcessId(User loginUser, String projectName, Integer processId) throws IOException {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
Project project = projectMapper.queryByName(projectName);
|
||||
|
||||
Map<String, Object> checkResult = projectService.checkProjectAndAuth(loginUser, project, projectName);
|
||||
Status resultEnum = (Status) checkResult.get(Constants.STATUS);
|
||||
if (resultEnum != Status.SUCCESS) {
|
||||
return checkResult;
|
||||
public Map<String, Object> queryTaskListByProcessId(User loginUser, long projectCode, Integer processId) throws IOException {
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
//check user access for project
|
||||
Map<String, Object> result = projectService.checkProjectAndAuth(loginUser, project, projectCode);
|
||||
if (result.get(Constants.STATUS) != Status.SUCCESS) {
|
||||
return result;
|
||||
}
|
||||
ProcessInstance processInstance = processService.findProcessInstanceDetailById(processId);
|
||||
List<TaskInstance> taskInstanceList = processService.findValidTaskListByProcessId(processId);
|
||||
|
|
@ -332,8 +317,8 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce
|
|||
for (TaskInstance taskInstance : taskInstanceList) {
|
||||
if (TaskType.DEPENDENT.getDesc().equalsIgnoreCase(taskInstance.getTaskType())) {
|
||||
Result<String> logResult = loggerService.queryLog(
|
||||
taskInstance.getId(), Constants.LOG_QUERY_SKIP_LINE_NUMBER, Constants.LOG_QUERY_LIMIT);
|
||||
if (logResult.isSuccess()) {
|
||||
taskInstance.getId(), Constants.LOG_QUERY_SKIP_LINE_NUMBER, Constants.LOG_QUERY_LIMIT);
|
||||
if (logResult.getCode() == Status.SUCCESS.ordinal()) {
|
||||
String log = logResult.getData();
|
||||
Map<String, DependResult> resultMap = parseLogForDependentResult(log);
|
||||
taskInstance.setDependentResult(JSONUtils.toJsonString(resultMap));
|
||||
|
|
@ -350,7 +335,7 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce
|
|||
}
|
||||
|
||||
BufferedReader br = new BufferedReader(new InputStreamReader(new ByteArrayInputStream(log.getBytes(
|
||||
StandardCharsets.UTF_8)), StandardCharsets.UTF_8));
|
||||
StandardCharsets.UTF_8)), StandardCharsets.UTF_8));
|
||||
String line;
|
||||
while ((line = br.readLine()) != null) {
|
||||
if (line.contains(DEPENDENT_SPLIT)) {
|
||||
|
|
@ -375,19 +360,17 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce
|
|||
* query sub process instance detail info by task id
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param taskId task id
|
||||
* @return sub process instance detail
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> querySubProcessInstanceByTaskId(User loginUser, String projectName, Integer taskId) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
Project project = projectMapper.queryByName(projectName);
|
||||
|
||||
Map<String, Object> checkResult = projectService.checkProjectAndAuth(loginUser, project, projectName);
|
||||
Status resultEnum = (Status) checkResult.get(Constants.STATUS);
|
||||
if (resultEnum != Status.SUCCESS) {
|
||||
return checkResult;
|
||||
public Map<String, Object> querySubProcessInstanceByTaskId(User loginUser, long projectCode, Integer taskId) {
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
//check user access for project
|
||||
Map<String, Object> result = projectService.checkProjectAndAuth(loginUser, project, projectCode);
|
||||
if (result.get(Constants.STATUS) != Status.SUCCESS) {
|
||||
return result;
|
||||
}
|
||||
|
||||
TaskInstance taskInstance = processService.findTaskInstanceById(taskId);
|
||||
|
|
@ -401,7 +384,7 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce
|
|||
}
|
||||
|
||||
ProcessInstance subWorkflowInstance = processService.findSubProcessInstance(
|
||||
taskInstance.getProcessInstanceId(), taskInstance.getId());
|
||||
taskInstance.getProcessInstanceId(), taskInstance.getId());
|
||||
if (subWorkflowInstance == null) {
|
||||
putMsg(result, Status.SUB_PROCESS_INSTANCE_NOT_EXIST, taskId);
|
||||
return result;
|
||||
|
|
@ -417,28 +400,28 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce
|
|||
* update process instance
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param processInstanceJson process instance json
|
||||
* @param projectCode project code
|
||||
* @param taskRelationJson process task relation json
|
||||
* @param taskDefinitionJson taskDefinitionJson
|
||||
* @param processInstanceId process instance id
|
||||
* @param scheduleTime schedule time
|
||||
* @param syncDefine sync define
|
||||
* @param flag flag
|
||||
* @param locations locations
|
||||
* @param connects connects
|
||||
* @param globalParams global params
|
||||
* @param locations locations for nodes
|
||||
* @param timeout timeout
|
||||
* @param tenantCode tenantCode
|
||||
* @return update result code
|
||||
*/
|
||||
@Transactional
|
||||
@Override
|
||||
public Map<String, Object> updateProcessInstance(User loginUser, String projectName, Integer processInstanceId,
|
||||
String processInstanceJson, String scheduleTime, Boolean syncDefine,
|
||||
Flag flag, String locations, String connects) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
Project project = projectMapper.queryByName(projectName);
|
||||
//check project permission
|
||||
Map<String, Object> checkResult = projectService.checkProjectAndAuth(loginUser, project, projectName);
|
||||
Status resultEnum = (Status) checkResult.get(Constants.STATUS);
|
||||
if (resultEnum != Status.SUCCESS) {
|
||||
return checkResult;
|
||||
public Map<String, Object> updateProcessInstance(User loginUser, long projectCode, Integer processInstanceId, String taskRelationJson,
|
||||
String taskDefinitionJson, String scheduleTime, Boolean syncDefine, String globalParams,
|
||||
String locations, int timeout, String tenantCode) {
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
//check user access for project
|
||||
Map<String, Object> result = projectService.checkProjectAndAuth(loginUser, project, projectCode);
|
||||
if (result.get(Constants.STATUS) != Status.SUCCESS) {
|
||||
return result;
|
||||
}
|
||||
//check process instance exists
|
||||
ProcessInstance processInstance = processService.findProcessInstanceDetailById(processInstanceId);
|
||||
|
|
@ -449,32 +432,64 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce
|
|||
//check process instance status
|
||||
if (!processInstance.getState().typeIsFinished()) {
|
||||
putMsg(result, Status.PROCESS_INSTANCE_STATE_OPERATION_ERROR,
|
||||
processInstance.getName(), processInstance.getState().toString(), "update");
|
||||
processInstance.getName(), processInstance.getState().toString(), "update");
|
||||
return result;
|
||||
}
|
||||
ProcessDefinition processDefinition = processService.findProcessDefinition(processInstance.getProcessDefinitionCode(),
|
||||
processInstance.getProcessDefinitionVersion());
|
||||
ProcessData processData = JSONUtils.parseObject(processInstanceJson, ProcessData.class);
|
||||
//check workflow json is valid
|
||||
result = processDefinitionService.checkProcessNodeList(processData, processInstanceJson);
|
||||
if (result.get(Constants.STATUS) != Status.SUCCESS) {
|
||||
return result;
|
||||
}
|
||||
Tenant tenant = processService.getTenantForProcess(processData.getTenantId(),
|
||||
processDefinition.getUserId());
|
||||
setProcessInstance(processInstance, tenant, scheduleTime, processData);
|
||||
int updateDefine = 1;
|
||||
setProcessInstance(processInstance, tenantCode, scheduleTime, globalParams, timeout);
|
||||
if (Boolean.TRUE.equals(syncDefine)) {
|
||||
processDefinition.setId(processDefineMapper.queryByCode(processInstance.getProcessDefinitionCode()).getId());
|
||||
updateDefine = syncDefinition(loginUser, project, locations, connects,
|
||||
processInstance, processDefinition, processData);
|
||||
List<TaskDefinitionLog> taskDefinitionLogs = JSONUtils.toList(taskDefinitionJson, TaskDefinitionLog.class);
|
||||
if (taskDefinitionLogs.isEmpty()) {
|
||||
putMsg(result, Status.DATA_IS_NOT_VALID, taskDefinitionJson);
|
||||
return result;
|
||||
}
|
||||
for (TaskDefinitionLog taskDefinitionLog : taskDefinitionLogs) {
|
||||
if (!CheckUtils.checkTaskDefinitionParameters(taskDefinitionLog)) {
|
||||
putMsg(result, Status.PROCESS_NODE_S_PARAMETER_INVALID, taskDefinitionLog.getName());
|
||||
return result;
|
||||
}
|
||||
}
|
||||
if (!processService.saveTaskDefine(loginUser, projectCode, taskDefinitionLogs)) {
|
||||
putMsg(result, Status.CREATE_TASK_DEFINITION_ERROR);
|
||||
return result;
|
||||
}
|
||||
ProcessDefinition processDefinition = processDefineMapper.queryByCode(processInstance.getProcessDefinitionCode());
|
||||
List<ProcessTaskRelationLog> taskRelationList = JSONUtils.toList(taskRelationJson, ProcessTaskRelationLog.class);
|
||||
//check workflow json is valid
|
||||
result = processDefinitionService.checkProcessNodeList(taskRelationJson);
|
||||
if (result.get(Constants.STATUS) != Status.SUCCESS) {
|
||||
return result;
|
||||
}
|
||||
int tenantId = -1;
|
||||
if (!Constants.DEFAULT.equals(tenantCode)) {
|
||||
Tenant tenant = tenantMapper.queryByTenantCode(tenantCode);
|
||||
if (tenant == null) {
|
||||
putMsg(result, Status.TENANT_NOT_EXIST);
|
||||
return result;
|
||||
}
|
||||
tenantId = tenant.getId();
|
||||
}
|
||||
|
||||
processInstance.setProcessDefinitionVersion(processDefinitionLogMapper.
|
||||
queryMaxVersionForDefinition(processInstance.getProcessDefinitionCode()));
|
||||
processDefinition.set(projectCode, processDefinition.getName(), processDefinition.getDescription(), globalParams, locations, timeout, tenantId);
|
||||
processDefinition.setUpdateTime(new Date());
|
||||
int insertVersion = processService.saveProcessDefine(loginUser, processDefinition, false);
|
||||
if (insertVersion > 0) {
|
||||
int insertResult = processService.saveTaskRelation(loginUser, processDefinition.getProjectCode(),
|
||||
processDefinition.getCode(), insertVersion, taskRelationList, taskDefinitionLogs);
|
||||
if (insertResult > 0) {
|
||||
putMsg(result, Status.SUCCESS);
|
||||
result.put(Constants.DATA_LIST, processDefinition);
|
||||
} else {
|
||||
putMsg(result, Status.UPDATE_PROCESS_DEFINITION_ERROR);
|
||||
return result;
|
||||
}
|
||||
} else {
|
||||
putMsg(result, Status.UPDATE_PROCESS_DEFINITION_ERROR);
|
||||
return result;
|
||||
}
|
||||
processInstance.setProcessDefinitionVersion(insertVersion);
|
||||
}
|
||||
|
||||
int update = processService.updateProcessInstance(processInstance);
|
||||
if (update > 0 && updateDefine > 0) {
|
||||
if (update > 0) {
|
||||
putMsg(result, Status.SUCCESS);
|
||||
} else {
|
||||
putMsg(result, Status.UPDATE_PROCESS_INSTANCE_ERROR);
|
||||
|
|
@ -482,46 +497,20 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce
|
|||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* sync definition according process instance
|
||||
*/
|
||||
private int syncDefinition(User loginUser, Project project, String locations, String connects,
|
||||
ProcessInstance processInstance, ProcessDefinition processDefinition,
|
||||
ProcessData processData) {
|
||||
|
||||
String originDefParams = JSONUtils.toJsonString(processData.getGlobalParams());
|
||||
processDefinition.setGlobalParams(originDefParams);
|
||||
processDefinition.setLocations(locations);
|
||||
processDefinition.setConnects(connects);
|
||||
processDefinition.setTimeout(processInstance.getTimeout());
|
||||
processDefinition.setUpdateTime(new Date());
|
||||
|
||||
return processService.saveProcessDefinition(loginUser, project, processDefinition.getName(),
|
||||
processDefinition.getDescription(), locations, connects,
|
||||
processData, processDefinition, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* update process instance attributes
|
||||
*/
|
||||
private void setProcessInstance(ProcessInstance processInstance, Tenant tenant, String scheduleTime, ProcessData processData) {
|
||||
|
||||
private void setProcessInstance(ProcessInstance processInstance, String tenantCode, String scheduleTime, String globalParams, int timeout) {
|
||||
Date schedule = processInstance.getScheduleTime();
|
||||
if (scheduleTime != null) {
|
||||
schedule = DateUtils.getScheduleDate(scheduleTime);
|
||||
}
|
||||
processInstance.setScheduleTime(schedule);
|
||||
List<Property> globalParamList = processData.getGlobalParams();
|
||||
Map<String, String> globalParamMap = Optional.ofNullable(globalParamList)
|
||||
.orElse(Collections.emptyList())
|
||||
.stream()
|
||||
.collect(Collectors.toMap(Property::getProp, Property::getValue));
|
||||
String globalParams = ParameterUtils.curingGlobalParams(globalParamMap, globalParamList,
|
||||
processInstance.getCmdTypeIfComplement(), schedule);
|
||||
processInstance.setTimeout(processData.getTimeout());
|
||||
if (tenant != null) {
|
||||
processInstance.setTenantCode(tenant.getTenantCode());
|
||||
}
|
||||
List<Property> globalParamList = JSONUtils.toList(globalParams, Property.class);
|
||||
Map<String, String> globalParamMap = globalParamList.stream().collect(Collectors.toMap(Property::getProp, Property::getValue));
|
||||
globalParams = ParameterUtils.curingGlobalParams(globalParamMap, globalParamList, processInstance.getCmdTypeIfComplement(), schedule);
|
||||
processInstance.setTimeout(timeout);
|
||||
processInstance.setTenantCode(tenantCode);
|
||||
processInstance.setGlobalParams(globalParams);
|
||||
}
|
||||
|
||||
|
|
@ -529,19 +518,17 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce
|
|||
* query parent process instance detail info by sub process instance id
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param subId sub process id
|
||||
* @return parent instance detail
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> queryParentInstanceBySubId(User loginUser, String projectName, Integer subId) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
Project project = projectMapper.queryByName(projectName);
|
||||
|
||||
Map<String, Object> checkResult = projectService.checkProjectAndAuth(loginUser, project, projectName);
|
||||
Status resultEnum = (Status) checkResult.get(Constants.STATUS);
|
||||
if (resultEnum != Status.SUCCESS) {
|
||||
return checkResult;
|
||||
public Map<String, Object> queryParentInstanceBySubId(User loginUser, long projectCode, Integer subId) {
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
//check user access for project
|
||||
Map<String, Object> result = projectService.checkProjectAndAuth(loginUser, project, projectCode);
|
||||
if (result.get(Constants.STATUS) != Status.SUCCESS) {
|
||||
return result;
|
||||
}
|
||||
|
||||
ProcessInstance subInstance = processService.findProcessInstanceDetailById(subId);
|
||||
|
|
@ -570,21 +557,18 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce
|
|||
* delete process instance by id, at the same time,delete task instance and their mapping relation data
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param processInstanceId process instance id
|
||||
* @return delete result code
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = RuntimeException.class)
|
||||
public Map<String, Object> deleteProcessInstanceById(User loginUser, String projectName, Integer processInstanceId) {
|
||||
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
Project project = projectMapper.queryByName(projectName);
|
||||
|
||||
Map<String, Object> checkResult = projectService.checkProjectAndAuth(loginUser, project, projectName);
|
||||
Status resultEnum = (Status) checkResult.get(Constants.STATUS);
|
||||
if (resultEnum != Status.SUCCESS) {
|
||||
return checkResult;
|
||||
public Map<String, Object> deleteProcessInstanceById(User loginUser, long projectCode, Integer processInstanceId) {
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
//check user access for project
|
||||
Map<String, Object> result = projectService.checkProjectAndAuth(loginUser, project, projectCode);
|
||||
if (result.get(Constants.STATUS) != Status.SUCCESS) {
|
||||
return result;
|
||||
}
|
||||
ProcessInstance processInstance = processService.findProcessInstanceDetailById(processInstanceId);
|
||||
if (null == processInstance) {
|
||||
|
|
@ -595,7 +579,6 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce
|
|||
try {
|
||||
processService.removeTaskLogFile(processInstanceId);
|
||||
} catch (Exception e) {
|
||||
logger.error("remove task log failed", e);
|
||||
}
|
||||
|
||||
// delete database cascade
|
||||
|
|
@ -630,8 +613,8 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce
|
|||
}
|
||||
|
||||
Map<String, String> timeParams = BusinessTimeUtils
|
||||
.getBusinessTime(processInstance.getCmdTypeIfComplement(),
|
||||
processInstance.getScheduleTime());
|
||||
.getBusinessTime(processInstance.getCmdTypeIfComplement(),
|
||||
processInstance.getScheduleTime());
|
||||
String userDefinedParams = processInstance.getGlobalParams();
|
||||
// global params
|
||||
List<Property> globalParams = new ArrayList<>();
|
||||
|
|
@ -667,7 +650,7 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce
|
|||
List<TaskInstance> taskInstanceList = taskInstanceMapper.findValidTaskListByProcessId(processInstance.getId(), Flag.YES);
|
||||
for (TaskInstance taskInstance : taskInstanceList) {
|
||||
TaskDefinitionLog taskDefinitionLog = taskDefinitionLogMapper.queryByDefinitionCodeAndVersion(
|
||||
taskInstance.getTaskCode(), taskInstance.getTaskDefinitionVersion());
|
||||
taskInstance.getTaskCode(), taskInstance.getTaskDefinitionVersion());
|
||||
|
||||
String localParams = JSONUtils.getNodeString(taskDefinitionLog.getTaskParams(), LOCAL_PARAMS);
|
||||
if (StringUtils.isNotEmpty(localParams)) {
|
||||
|
|
@ -703,8 +686,8 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce
|
|||
}
|
||||
|
||||
ProcessDefinition processDefinition = processDefinitionLogMapper.queryByDefinitionCodeAndVersion(
|
||||
processInstance.getProcessDefinitionCode(),
|
||||
processInstance.getProcessDefinitionVersion()
|
||||
processInstance.getProcessDefinitionCode(),
|
||||
processInstance.getProcessDefinitionVersion()
|
||||
);
|
||||
GanttDto ganttDto = new GanttDto();
|
||||
DAG<String, TaskNode, TaskNodeRelation> dag = processService.genDagGraph(processDefinition);
|
||||
|
|
|
|||
|
|
@ -1,78 +0,0 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The ASF licenses this file to You 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 org.apache.dolphinscheduler.api.service.impl;
|
||||
|
||||
import org.apache.dolphinscheduler.api.enums.Status;
|
||||
import org.apache.dolphinscheduler.api.service.ProcessTaskRelationService;
|
||||
import org.apache.dolphinscheduler.api.service.ProjectService;
|
||||
import org.apache.dolphinscheduler.common.Constants;
|
||||
import org.apache.dolphinscheduler.dao.entity.ProcessTaskRelation;
|
||||
import org.apache.dolphinscheduler.dao.entity.Project;
|
||||
import org.apache.dolphinscheduler.dao.entity.User;
|
||||
import org.apache.dolphinscheduler.dao.mapper.ProcessTaskRelationMapper;
|
||||
import org.apache.dolphinscheduler.dao.mapper.ProjectMapper;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* task definition service impl
|
||||
*/
|
||||
@Service
|
||||
public class ProcessTaskRelationServiceImpl extends BaseServiceImpl implements
|
||||
ProcessTaskRelationService {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(ProcessTaskRelationServiceImpl.class);
|
||||
|
||||
@Autowired
|
||||
private ProjectMapper projectMapper;
|
||||
|
||||
@Autowired
|
||||
private ProjectService projectService;
|
||||
|
||||
@Autowired
|
||||
private ProcessTaskRelationMapper processTaskRelationMapper;
|
||||
|
||||
/**
|
||||
* query process task relation
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param processDefinitionCode process definition code
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> queryProcessTaskRelation(User loginUser, String projectName, Long processDefinitionCode) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
Project project = projectMapper.queryByName(projectName);
|
||||
// check project auth
|
||||
Map<String, Object> checkResult = projectService.checkProjectAndAuth(loginUser, project, projectName);
|
||||
if (checkResult.get(Constants.STATUS) != Status.SUCCESS) {
|
||||
return checkResult;
|
||||
}
|
||||
List<ProcessTaskRelation> processTaskRelationList = processTaskRelationMapper.queryByProcessCode(project.getCode(), processDefinitionCode);
|
||||
result.put(Constants.DATA_LIST, processTaskRelationList);
|
||||
putMsg(result, Status.SUCCESS);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
|
@ -44,8 +44,6 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
|
|
@ -70,8 +68,6 @@ public class ProjectServiceImpl extends BaseServiceImpl implements ProjectServic
|
|||
@Autowired
|
||||
private UserMapper userMapper;
|
||||
|
||||
private Logger logger = LoggerFactory.getLogger(ProjectServiceImpl.class);
|
||||
|
||||
/**
|
||||
* create project
|
||||
*
|
||||
|
|
@ -99,15 +95,15 @@ public class ProjectServiceImpl extends BaseServiceImpl implements ProjectServic
|
|||
|
||||
try {
|
||||
project = Project
|
||||
.newBuilder()
|
||||
.name(name)
|
||||
.code(SnowFlakeUtils.getInstance().nextId())
|
||||
.description(desc)
|
||||
.userId(loginUser.getId())
|
||||
.userName(loginUser.getUserName())
|
||||
.createTime(now)
|
||||
.updateTime(now)
|
||||
.build();
|
||||
.newBuilder()
|
||||
.name(name)
|
||||
.code(SnowFlakeUtils.getInstance().nextId())
|
||||
.description(desc)
|
||||
.userId(loginUser.getId())
|
||||
.userName(loginUser.getUserName())
|
||||
.createTime(now)
|
||||
.updateTime(now)
|
||||
.build();
|
||||
} catch (SnowFlakeException e) {
|
||||
putMsg(result, Status.CREATE_PROJECT_ERROR);
|
||||
return result;
|
||||
|
|
@ -123,22 +119,22 @@ public class ProjectServiceImpl extends BaseServiceImpl implements ProjectServic
|
|||
}
|
||||
|
||||
/**
|
||||
* query project details by id
|
||||
* query project details by code
|
||||
*
|
||||
* @param projectId project id
|
||||
* @param projectCode project code
|
||||
* @return project detail information
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> queryById(Integer projectId) {
|
||||
|
||||
public Map<String, Object> queryByCode(User loginUser, long projectCode) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
Project project = projectMapper.selectById(projectId);
|
||||
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
boolean hasProjectAndPerm = hasProjectAndPerm(loginUser, project, result);
|
||||
if (!hasProjectAndPerm) {
|
||||
return result;
|
||||
}
|
||||
if (project != null) {
|
||||
result.put(Constants.DATA_LIST, project);
|
||||
putMsg(result, Status.SUCCESS);
|
||||
} else {
|
||||
putMsg(result, Status.PROJECT_NOT_FOUNT, projectId);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
|
@ -148,17 +144,17 @@ public class ProjectServiceImpl extends BaseServiceImpl implements ProjectServic
|
|||
*
|
||||
* @param loginUser login user
|
||||
* @param project project
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @return true if the login user have permission to see the project
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> checkProjectAndAuth(User loginUser, Project project, String projectName) {
|
||||
public Map<String, Object> checkProjectAndAuth(User loginUser, Project project, long projectCode) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
if (project == null) {
|
||||
putMsg(result, Status.PROJECT_NOT_FOUNT, projectName);
|
||||
putMsg(result, Status.PROJECT_NOT_FOUNT, projectCode);
|
||||
} else if (!checkReadPermission(loginUser, project)) {
|
||||
// check read permission
|
||||
putMsg(result, Status.USER_NO_OPERATION_PROJECT_PERM, loginUser.getUserName(), projectName);
|
||||
putMsg(result, Status.USER_NO_OPERATION_PROJECT_PERM, loginUser.getUserName(), projectCode);
|
||||
} else {
|
||||
putMsg(result, Status.SUCCESS);
|
||||
}
|
||||
|
|
@ -171,7 +167,7 @@ public class ProjectServiceImpl extends BaseServiceImpl implements ProjectServic
|
|||
if (project == null) {
|
||||
putMsg(result, Status.PROJECT_NOT_FOUNT, "");
|
||||
} else if (!checkReadPermission(loginUser, project)) {
|
||||
putMsg(result, Status.USER_NO_OPERATION_PROJECT_PERM, loginUser.getUserName(), project.getName());
|
||||
putMsg(result, Status.USER_NO_OPERATION_PROJECT_PERM, loginUser.getUserName(), project.getCode());
|
||||
} else {
|
||||
checkResult = true;
|
||||
}
|
||||
|
|
@ -224,16 +220,16 @@ public class ProjectServiceImpl extends BaseServiceImpl implements ProjectServic
|
|||
}
|
||||
|
||||
/**
|
||||
* delete project by id
|
||||
* delete project by code
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectId project id
|
||||
* @param projectCode project code
|
||||
* @return delete result code
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> deleteProject(User loginUser, Integer projectId) {
|
||||
public Map<String, Object> deleteProject(User loginUser, Long projectCode) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
Project project = projectMapper.selectById(projectId);
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
Map<String, Object> checkResult = getCheckResult(loginUser, project);
|
||||
if (checkResult != null) {
|
||||
return checkResult;
|
||||
|
|
@ -250,7 +246,7 @@ public class ProjectServiceImpl extends BaseServiceImpl implements ProjectServic
|
|||
putMsg(result, Status.DELETE_PROJECT_ERROR_DEFINES_NOT_NULL);
|
||||
return result;
|
||||
}
|
||||
int delete = projectMapper.deleteById(projectId);
|
||||
int delete = projectMapper.deleteById(project.getId());
|
||||
if (delete > 0) {
|
||||
putMsg(result, Status.SUCCESS);
|
||||
} else {
|
||||
|
|
@ -267,8 +263,7 @@ public class ProjectServiceImpl extends BaseServiceImpl implements ProjectServic
|
|||
* @return check result
|
||||
*/
|
||||
private Map<String, Object> getCheckResult(User loginUser, Project project) {
|
||||
String projectName = project == null ? null : project.getName();
|
||||
Map<String, Object> checkResult = checkProjectAndAuth(loginUser, project, projectName);
|
||||
Map<String, Object> checkResult = checkProjectAndAuth(loginUser, project, project == null ? 0L : project.getCode());
|
||||
Status status = (Status) checkResult.get(Constants.STATUS);
|
||||
if (status != Status.SUCCESS) {
|
||||
return checkResult;
|
||||
|
|
@ -280,14 +275,14 @@ public class ProjectServiceImpl extends BaseServiceImpl implements ProjectServic
|
|||
* updateProcessInstance project
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectId project id
|
||||
* @param projectCode project code
|
||||
* @param projectName project name
|
||||
* @param desc description
|
||||
* @param userName project owner
|
||||
* @return update result code
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> update(User loginUser, Integer projectId, String projectName, String desc, String userName) {
|
||||
public Map<String, Object> update(User loginUser, Long projectCode, String projectName, String desc, String userName) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
|
||||
Map<String, Object> descCheck = checkDesc(desc);
|
||||
|
|
@ -295,13 +290,13 @@ public class ProjectServiceImpl extends BaseServiceImpl implements ProjectServic
|
|||
return descCheck;
|
||||
}
|
||||
|
||||
Project project = projectMapper.selectById(projectId);
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
boolean hasProjectAndPerm = hasProjectAndPerm(loginUser, project, result);
|
||||
if (!hasProjectAndPerm) {
|
||||
return result;
|
||||
}
|
||||
Project tempProject = projectMapper.queryByName(projectName);
|
||||
if (tempProject != null && tempProject.getId() != projectId) {
|
||||
if (tempProject != null) {
|
||||
putMsg(result, Status.PROJECT_ALREADY_EXISTS, projectName);
|
||||
return result;
|
||||
}
|
||||
|
|
@ -337,12 +332,10 @@ public class ProjectServiceImpl extends BaseServiceImpl implements ProjectServic
|
|||
if (loginUser.getId() != userId && isNotAdmin(loginUser, result)) {
|
||||
return result;
|
||||
}
|
||||
/**
|
||||
* query all project list except specified userId
|
||||
*/
|
||||
// query all project list except specified userId
|
||||
List<Project> projectList = projectMapper.queryProjectExceptUserId(userId);
|
||||
List<Project> resultList = new ArrayList<>();
|
||||
Set<Project> projectSet = null;
|
||||
Set<Project> projectSet;
|
||||
if (projectList != null && !projectList.isEmpty()) {
|
||||
projectSet = new HashSet<>(projectList);
|
||||
|
||||
|
|
@ -364,7 +357,7 @@ public class ProjectServiceImpl extends BaseServiceImpl implements ProjectServic
|
|||
*/
|
||||
private List<Project> getUnauthorizedProjects(Set<Project> projectSet, List<Project> authedProjectList) {
|
||||
List<Project> resultList;
|
||||
Set<Project> authedProjectSet = null;
|
||||
Set<Project> authedProjectSet;
|
||||
if (authedProjectList != null && !authedProjectList.isEmpty()) {
|
||||
authedProjectSet = new HashSet<>(authedProjectList);
|
||||
projectSet.removeAll(authedProjectSet);
|
||||
|
|
@ -374,7 +367,6 @@ public class ProjectServiceImpl extends BaseServiceImpl implements ProjectServic
|
|||
return resultList;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* query authorized project
|
||||
*
|
||||
|
|
@ -418,7 +410,7 @@ public class ProjectServiceImpl extends BaseServiceImpl implements ProjectServic
|
|||
* query authorized and user create project list by user
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @return
|
||||
* @return project list
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> queryProjectCreatedAndAuthorizedByUser(User loginUser) {
|
||||
|
|
|
|||
|
|
@ -128,12 +128,12 @@ public class ResourcesServiceImpl extends BaseServiceImpl implements ResourcesSe
|
|||
int pid,
|
||||
String currentDir) {
|
||||
Result<Object> result = checkResourceUploadStartupState();
|
||||
if (result.isFailed()) {
|
||||
if (!result.getCode().equals(Status.SUCCESS.getCode())) {
|
||||
return result;
|
||||
}
|
||||
String fullName = currentDir.equals("/") ? String.format("%s%s",currentDir,name) : String.format("%s/%s",currentDir,name);
|
||||
result = verifyResource(loginUser, type, fullName, pid);
|
||||
if (result.isFailed()) {
|
||||
if (!result.getCode().equals(Status.SUCCESS.getCode())) {
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
@ -193,17 +193,17 @@ public class ResourcesServiceImpl extends BaseServiceImpl implements ResourcesSe
|
|||
int pid,
|
||||
String currentDir) {
|
||||
Result<Object> result = checkResourceUploadStartupState();
|
||||
if (result.isFailed()) {
|
||||
if (!result.getCode().equals(Status.SUCCESS.getCode())) {
|
||||
return result;
|
||||
}
|
||||
|
||||
result = verifyPid(loginUser, pid);
|
||||
if (result.isFailed()) {
|
||||
if (!result.getCode().equals(Status.SUCCESS.getCode())) {
|
||||
return result;
|
||||
}
|
||||
|
||||
result = verifyFile(name, type, file);
|
||||
if (result.isFailed()) {
|
||||
if (!result.getCode().equals(Status.SUCCESS.getCode())) {
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
@ -275,7 +275,7 @@ public class ResourcesServiceImpl extends BaseServiceImpl implements ResourcesSe
|
|||
ResourceType type,
|
||||
MultipartFile file) {
|
||||
Result<Object> result = checkResourceUploadStartupState();
|
||||
if (result.isFailed()) {
|
||||
if (!result.getCode().equals(Status.SUCCESS.getCode())) {
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
@ -306,7 +306,7 @@ public class ResourcesServiceImpl extends BaseServiceImpl implements ResourcesSe
|
|||
}
|
||||
|
||||
result = verifyFile(name, type, file);
|
||||
if (result.isFailed()) {
|
||||
if (!result.getCode().equals(Status.SUCCESS.getCode())) {
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
@ -674,7 +674,7 @@ public class ResourcesServiceImpl extends BaseServiceImpl implements ResourcesSe
|
|||
@Transactional(rollbackFor = Exception.class)
|
||||
public Result<Object> delete(User loginUser, int resourceId) throws IOException {
|
||||
Result<Object> result = checkResourceUploadStartupState();
|
||||
if (result.isFailed()) {
|
||||
if (!result.getCode().equals(Status.SUCCESS.getCode())) {
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
@ -830,7 +830,7 @@ public class ResourcesServiceImpl extends BaseServiceImpl implements ResourcesSe
|
|||
@Override
|
||||
public Result<Object> readResource(int resourceId, int skipLineNum, int limit) {
|
||||
Result<Object> result = checkResourceUploadStartupState();
|
||||
if (result.isFailed()) {
|
||||
if (!result.getCode().equals(Status.SUCCESS.getCode())) {
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
@ -899,7 +899,7 @@ public class ResourcesServiceImpl extends BaseServiceImpl implements ResourcesSe
|
|||
@Transactional(rollbackFor = Exception.class)
|
||||
public Result<Object> onlineCreateResource(User loginUser, ResourceType type, String fileName, String fileSuffix, String desc, String content,int pid,String currentDir) {
|
||||
Result<Object> result = checkResourceUploadStartupState();
|
||||
if (result.isFailed()) {
|
||||
if (!result.getCode().equals(Status.SUCCESS.getCode())) {
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
@ -918,7 +918,7 @@ public class ResourcesServiceImpl extends BaseServiceImpl implements ResourcesSe
|
|||
String name = fileName.trim() + "." + nameSuffix;
|
||||
String fullName = currentDir.equals("/") ? String.format("%s%s",currentDir,name) : String.format("%s/%s",currentDir,name);
|
||||
result = verifyResource(loginUser, type, fullName, pid);
|
||||
if (result.isFailed()) {
|
||||
if (!result.getCode().equals(Status.SUCCESS.getCode())) {
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
@ -941,7 +941,7 @@ public class ResourcesServiceImpl extends BaseServiceImpl implements ResourcesSe
|
|||
String tenantCode = tenantMapper.queryById(loginUser.getTenantId()).getTenantCode();
|
||||
|
||||
result = uploadContentToHdfs(fullName, tenantCode, content);
|
||||
if (result.isFailed()) {
|
||||
if (!result.getCode().equals(Status.SUCCESS.getCode())) {
|
||||
throw new ServiceException(result.getMsg());
|
||||
}
|
||||
return result;
|
||||
|
|
@ -961,7 +961,7 @@ public class ResourcesServiceImpl extends BaseServiceImpl implements ResourcesSe
|
|||
|
||||
private Result<Object> verifyResource(User loginUser, ResourceType type, String fullName, int pid) {
|
||||
Result<Object> result = verifyResourceName(fullName, type, loginUser);
|
||||
if (result.isFailed()) {
|
||||
if (!result.getCode().equals(Status.SUCCESS.getCode())) {
|
||||
return result;
|
||||
}
|
||||
return verifyPid(loginUser, pid);
|
||||
|
|
@ -995,7 +995,7 @@ public class ResourcesServiceImpl extends BaseServiceImpl implements ResourcesSe
|
|||
@Transactional(rollbackFor = Exception.class)
|
||||
public Result<Object> updateResourceContent(int resourceId, String content) {
|
||||
Result<Object> result = checkResourceUploadStartupState();
|
||||
if (result.isFailed()) {
|
||||
if (!result.getCode().equals(Status.SUCCESS.getCode())) {
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
@ -1026,7 +1026,7 @@ public class ResourcesServiceImpl extends BaseServiceImpl implements ResourcesSe
|
|||
resourcesMapper.updateById(resource);
|
||||
|
||||
result = uploadContentToHdfs(resource.getFullName(), tenantCode, content);
|
||||
if (result.isFailed()) {
|
||||
if (!result.getCode().equals(Status.SUCCESS.getCode())) {
|
||||
throw new ServiceException(result.getMsg());
|
||||
}
|
||||
return result;
|
||||
|
|
|
|||
|
|
@ -98,8 +98,8 @@ public class SchedulerServiceImpl extends BaseServiceImpl implements SchedulerSe
|
|||
* save schedule
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param processDefineId process definition id
|
||||
* @param projectCode project name
|
||||
* @param processDefineCode process definition code
|
||||
* @param schedule scheduler
|
||||
* @param warningType warning type
|
||||
* @param warningGroupId warning group id
|
||||
|
|
@ -111,8 +111,9 @@ public class SchedulerServiceImpl extends BaseServiceImpl implements SchedulerSe
|
|||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = RuntimeException.class)
|
||||
public Map<String, Object> insertSchedule(User loginUser, String projectName,
|
||||
Integer processDefineId,
|
||||
public Map<String, Object> insertSchedule(User loginUser,
|
||||
long projectCode,
|
||||
long processDefineCode,
|
||||
String schedule,
|
||||
WarningType warningType,
|
||||
int warningGroupId,
|
||||
|
|
@ -123,7 +124,7 @@ public class SchedulerServiceImpl extends BaseServiceImpl implements SchedulerSe
|
|||
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
|
||||
Project project = projectMapper.queryByName(projectName);
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
|
||||
// check project auth
|
||||
boolean hasProjectAndPerm = projectService.hasProjectAndPerm(loginUser, project, result);
|
||||
|
|
@ -132,8 +133,8 @@ public class SchedulerServiceImpl extends BaseServiceImpl implements SchedulerSe
|
|||
}
|
||||
|
||||
// check work flow define release state
|
||||
ProcessDefinition processDefinition = processService.findProcessDefineById(processDefineId);
|
||||
result = executorService.checkProcessDefinitionValid(processDefinition, processDefineId);
|
||||
ProcessDefinition processDefinition = processDefinitionMapper.queryByCode(processDefineCode);
|
||||
result = executorService.checkProcessDefinitionValid(processDefinition, processDefineCode);
|
||||
if (result.get(Constants.STATUS) != Status.SUCCESS) {
|
||||
return result;
|
||||
}
|
||||
|
|
@ -141,8 +142,8 @@ public class SchedulerServiceImpl extends BaseServiceImpl implements SchedulerSe
|
|||
Schedule scheduleObj = new Schedule();
|
||||
Date now = new Date();
|
||||
|
||||
scheduleObj.setProjectName(projectName);
|
||||
scheduleObj.setProcessDefinitionId(processDefinition.getId());
|
||||
scheduleObj.setProjectName(project.getName());
|
||||
scheduleObj.setProcessDefinitionCode(processDefineCode);
|
||||
scheduleObj.setProcessDefinitionName(processDefinition.getName());
|
||||
|
||||
ScheduleParam scheduleParam = JSONUtils.parseObject(schedule, ScheduleParam.class);
|
||||
|
|
@ -192,7 +193,7 @@ public class SchedulerServiceImpl extends BaseServiceImpl implements SchedulerSe
|
|||
* updateProcessInstance schedule
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param id scheduler id
|
||||
* @param scheduleExpression scheduler
|
||||
* @param warningType warning type
|
||||
|
|
@ -201,25 +202,23 @@ public class SchedulerServiceImpl extends BaseServiceImpl implements SchedulerSe
|
|||
* @param workerGroup worker group
|
||||
* @param environmentCode environment code
|
||||
* @param processInstancePriority process instance priority
|
||||
* @param scheduleStatus schedule status
|
||||
* @return update result code
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = RuntimeException.class)
|
||||
public Map<String, Object> updateSchedule(User loginUser,
|
||||
String projectName,
|
||||
long projectCode,
|
||||
Integer id,
|
||||
String scheduleExpression,
|
||||
WarningType warningType,
|
||||
int warningGroupId,
|
||||
FailureStrategy failureStrategy,
|
||||
ReleaseState scheduleStatus,
|
||||
Priority processInstancePriority,
|
||||
String workerGroup,
|
||||
Long environmentCode) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
|
||||
Project project = projectMapper.queryByName(projectName);
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
|
||||
// check project auth
|
||||
boolean hasProjectAndPerm = projectService.hasProjectAndPerm(loginUser, project, result);
|
||||
|
|
@ -235,9 +234,9 @@ public class SchedulerServiceImpl extends BaseServiceImpl implements SchedulerSe
|
|||
return result;
|
||||
}
|
||||
|
||||
ProcessDefinition processDefinition = processService.findProcessDefineById(schedule.getProcessDefinitionId());
|
||||
ProcessDefinition processDefinition = processDefinitionMapper.queryByCode(schedule.getProcessDefinitionCode());
|
||||
if (processDefinition == null) {
|
||||
putMsg(result, Status.PROCESS_DEFINE_NOT_EXIST, schedule.getProcessDefinitionId());
|
||||
putMsg(result, Status.PROCESS_DEFINE_NOT_EXIST, schedule.getProcessDefinitionCode());
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
@ -278,9 +277,6 @@ public class SchedulerServiceImpl extends BaseServiceImpl implements SchedulerSe
|
|||
schedule.setFailureStrategy(failureStrategy);
|
||||
}
|
||||
|
||||
if (scheduleStatus != null) {
|
||||
schedule.setReleaseState(scheduleStatus);
|
||||
}
|
||||
schedule.setWorkerGroup(workerGroup);
|
||||
schedule.setEnvironmentCode(environmentCode);
|
||||
schedule.setUpdateTime(now);
|
||||
|
|
@ -303,7 +299,7 @@ public class SchedulerServiceImpl extends BaseServiceImpl implements SchedulerSe
|
|||
* set schedule online or offline
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param id scheduler id
|
||||
* @param scheduleStatus schedule status
|
||||
* @return publish result code
|
||||
|
|
@ -311,12 +307,12 @@ public class SchedulerServiceImpl extends BaseServiceImpl implements SchedulerSe
|
|||
@Override
|
||||
@Transactional(rollbackFor = RuntimeException.class)
|
||||
public Map<String, Object> setScheduleState(User loginUser,
|
||||
String projectName,
|
||||
long projectCode,
|
||||
Integer id,
|
||||
ReleaseState scheduleStatus) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
|
||||
Project project = projectMapper.queryByName(projectName);
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
// check project auth
|
||||
boolean hasProjectAndPerm = projectService.hasProjectAndPerm(loginUser, project, result);
|
||||
if (!hasProjectAndPerm) {
|
||||
|
|
@ -337,9 +333,9 @@ public class SchedulerServiceImpl extends BaseServiceImpl implements SchedulerSe
|
|||
putMsg(result, Status.SCHEDULE_CRON_REALEASE_NEED_NOT_CHANGE, scheduleStatus);
|
||||
return result;
|
||||
}
|
||||
ProcessDefinition processDefinition = processService.findProcessDefineById(scheduleObj.getProcessDefinitionId());
|
||||
ProcessDefinition processDefinition = processDefinitionMapper.queryByCode(scheduleObj.getProcessDefinitionCode());
|
||||
if (processDefinition == null) {
|
||||
putMsg(result, Status.PROCESS_DEFINE_NOT_EXIST, scheduleObj.getProcessDefinitionId());
|
||||
putMsg(result, Status.PROCESS_DEFINE_NOT_EXIST, scheduleObj.getProcessDefinitionCode());
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
@ -353,7 +349,7 @@ public class SchedulerServiceImpl extends BaseServiceImpl implements SchedulerSe
|
|||
}
|
||||
// check sub process definition release state
|
||||
List<Integer> subProcessDefineIds = new ArrayList<>();
|
||||
processService.recurseFindSubProcessId(scheduleObj.getProcessDefinitionId(), subProcessDefineIds);
|
||||
processService.recurseFindSubProcessId(processDefinition.getId(), subProcessDefineIds);
|
||||
Integer[] idArray = subProcessDefineIds.toArray(new Integer[subProcessDefineIds.size()]);
|
||||
if (!subProcessDefineIds.isEmpty()) {
|
||||
List<ProcessDefinition> subProcessDefinitionList =
|
||||
|
|
@ -414,19 +410,19 @@ public class SchedulerServiceImpl extends BaseServiceImpl implements SchedulerSe
|
|||
* query schedule
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param processDefineId process definition id
|
||||
* @param projectCode project code
|
||||
* @param processDefineCode process definition code
|
||||
* @param pageNo page number
|
||||
* @param pageSize page size
|
||||
* @param searchVal search value
|
||||
* @return schedule list page
|
||||
*/
|
||||
@Override
|
||||
public Result querySchedule(User loginUser, String projectName, Integer processDefineId, String searchVal, Integer pageNo, Integer pageSize) {
|
||||
|
||||
public Result querySchedule(User loginUser, long projectCode, long processDefineCode, String searchVal,
|
||||
Integer pageNo, Integer pageSize) {
|
||||
Result result = new Result();
|
||||
|
||||
Project project = projectMapper.queryByName(projectName);
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
|
||||
// check project auth
|
||||
boolean hasProjectAndPerm = projectService.hasProjectAndPerm(loginUser, project, result);
|
||||
|
|
@ -434,15 +430,15 @@ public class SchedulerServiceImpl extends BaseServiceImpl implements SchedulerSe
|
|||
return result;
|
||||
}
|
||||
|
||||
ProcessDefinition processDefinition = processService.findProcessDefineById(processDefineId);
|
||||
ProcessDefinition processDefinition = processDefinitionMapper.queryByCode(processDefineCode);
|
||||
if (processDefinition == null) {
|
||||
putMsg(result, Status.PROCESS_DEFINE_NOT_EXIST, processDefineId);
|
||||
putMsg(result, Status.PROCESS_DEFINE_NOT_EXIST, processDefineCode);
|
||||
return result;
|
||||
}
|
||||
|
||||
Page<Schedule> page = new Page<>(pageNo, pageSize);
|
||||
IPage<Schedule> scheduleIPage = scheduleMapper.queryByProcessDefineIdPaging(
|
||||
page, processDefineId, searchVal
|
||||
);
|
||||
IPage<Schedule> scheduleIPage = scheduleMapper.queryByProcessDefineCodePaging(page, processDefineCode,
|
||||
searchVal);
|
||||
|
||||
PageInfo<Schedule> pageInfo = new PageInfo<>(pageNo, pageSize);
|
||||
pageInfo.setTotal((int) scheduleIPage.getTotal());
|
||||
|
|
@ -456,13 +452,13 @@ public class SchedulerServiceImpl extends BaseServiceImpl implements SchedulerSe
|
|||
* query schedule list
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @return schedule list
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> queryScheduleList(User loginUser, String projectName) {
|
||||
public Map<String, Object> queryScheduleList(User loginUser, long projectCode) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
Project project = projectMapper.queryByName(projectName);
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
|
||||
// check project auth
|
||||
boolean hasProjectAndPerm = projectService.hasProjectAndPerm(loginUser, project, result);
|
||||
|
|
@ -470,7 +466,7 @@ public class SchedulerServiceImpl extends BaseServiceImpl implements SchedulerSe
|
|||
return result;
|
||||
}
|
||||
|
||||
List<Schedule> schedules = scheduleMapper.querySchedulerListByProjectName(projectName);
|
||||
List<Schedule> schedules = scheduleMapper.querySchedulerListByProjectName(project.getName());
|
||||
|
||||
result.put(Constants.DATA_LIST, schedules);
|
||||
putMsg(result, Status.SUCCESS);
|
||||
|
|
@ -526,17 +522,17 @@ public class SchedulerServiceImpl extends BaseServiceImpl implements SchedulerSe
|
|||
* delete schedule by id
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param scheduleId schedule id
|
||||
* @param projectCode project code
|
||||
* @param scheduleId scheule id
|
||||
* @return delete result code
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> deleteScheduleById(User loginUser, String projectName, Integer scheduleId) {
|
||||
public Map<String, Object> deleteScheduleById(User loginUser, long projectCode, Integer scheduleId) {
|
||||
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
Project project = projectMapper.queryByName(projectName);
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
|
||||
Map<String, Object> checkResult = projectService.checkProjectAndAuth(loginUser, project, projectName);
|
||||
Map<String, Object> checkResult = projectService.checkProjectAndAuth(loginUser, project, projectCode);
|
||||
Status resultEnum = (Status) checkResult.get(Constants.STATUS);
|
||||
if (resultEnum != Status.SUCCESS) {
|
||||
return checkResult;
|
||||
|
|
@ -576,12 +572,11 @@ public class SchedulerServiceImpl extends BaseServiceImpl implements SchedulerSe
|
|||
* preview schedule
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param schedule schedule expression
|
||||
* @return the next five fire time
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> previewSchedule(User loginUser, String projectName, String schedule) {
|
||||
public Map<String, Object> previewSchedule(User loginUser, String schedule) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
CronExpression cronExpression;
|
||||
ScheduleParam scheduleParam = JSONUtils.parseObject(schedule, ScheduleParam.class);
|
||||
|
|
|
|||
|
|
@ -17,14 +17,13 @@
|
|||
|
||||
package org.apache.dolphinscheduler.api.service.impl;
|
||||
|
||||
import static org.apache.dolphinscheduler.api.enums.Status.DATA_IS_NOT_VALID;
|
||||
|
||||
import org.apache.dolphinscheduler.api.enums.Status;
|
||||
import org.apache.dolphinscheduler.api.service.ProjectService;
|
||||
import org.apache.dolphinscheduler.api.service.TaskDefinitionService;
|
||||
import org.apache.dolphinscheduler.api.utils.CheckUtils;
|
||||
import org.apache.dolphinscheduler.api.utils.PageInfo;
|
||||
import org.apache.dolphinscheduler.api.utils.Result;
|
||||
import org.apache.dolphinscheduler.common.Constants;
|
||||
import org.apache.dolphinscheduler.common.model.TaskNode;
|
||||
import org.apache.dolphinscheduler.common.utils.JSONUtils;
|
||||
import org.apache.dolphinscheduler.common.utils.SnowFlakeUtils;
|
||||
import org.apache.dolphinscheduler.common.utils.SnowFlakeUtils.SnowFlakeException;
|
||||
|
|
@ -38,8 +37,10 @@ import org.apache.dolphinscheduler.dao.mapper.ProcessTaskRelationMapper;
|
|||
import org.apache.dolphinscheduler.dao.mapper.ProjectMapper;
|
||||
import org.apache.dolphinscheduler.dao.mapper.TaskDefinitionLogMapper;
|
||||
import org.apache.dolphinscheduler.dao.mapper.TaskDefinitionMapper;
|
||||
import org.apache.dolphinscheduler.dao.mapper.UserMapper;
|
||||
import org.apache.dolphinscheduler.service.process.ProcessService;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
|
@ -53,6 +54,9 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
|
||||
/**
|
||||
* task definition service impl
|
||||
*/
|
||||
|
|
@ -79,50 +83,56 @@ public class TaskDefinitionServiceImpl extends BaseServiceImpl implements TaskDe
|
|||
@Autowired
|
||||
private ProcessService processService;
|
||||
|
||||
@Autowired
|
||||
private UserMapper userMapper;
|
||||
|
||||
/**
|
||||
* create task definition
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param taskDefinitionJson task definition json
|
||||
*/
|
||||
@Transactional(rollbackFor = RuntimeException.class)
|
||||
@Override
|
||||
public Map<String, Object> createTaskDefinition(User loginUser,
|
||||
String projectName,
|
||||
long projectCode,
|
||||
String taskDefinitionJson) {
|
||||
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
Project project = projectMapper.queryByName(projectName);
|
||||
// check project auth
|
||||
Map<String, Object> checkResult = projectService.checkProjectAndAuth(loginUser, project, projectName);
|
||||
Status resultStatus = (Status) checkResult.get(Constants.STATUS);
|
||||
if (resultStatus != Status.SUCCESS) {
|
||||
return checkResult;
|
||||
}
|
||||
|
||||
TaskNode taskNode = JSONUtils.parseObject(taskDefinitionJson, TaskNode.class);
|
||||
checkTaskNode(result, taskNode, taskDefinitionJson);
|
||||
if (result.get(Constants.STATUS) == DATA_IS_NOT_VALID
|
||||
|| result.get(Constants.STATUS) == Status.PROCESS_NODE_S_PARAMETER_INVALID) {
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
//check user access for project
|
||||
Map<String, Object> result = projectService.checkProjectAndAuth(loginUser, project, projectCode);
|
||||
if (result.get(Constants.STATUS) != Status.SUCCESS) {
|
||||
return result;
|
||||
}
|
||||
TaskDefinition taskDefinition = new TaskDefinition();
|
||||
long code = 0L;
|
||||
try {
|
||||
code = SnowFlakeUtils.getInstance().nextId();
|
||||
taskDefinition.setCode(code);
|
||||
} catch (SnowFlakeException e) {
|
||||
logger.error("Task code get error, ", e);
|
||||
}
|
||||
if (code == 0L) {
|
||||
putMsg(result, Status.INTERNAL_SERVER_ERROR_ARGS, "Error generating task definition code");
|
||||
|
||||
List<TaskDefinitionLog> taskDefinitionLogs = JSONUtils.toList(taskDefinitionJson, TaskDefinitionLog.class);
|
||||
if (taskDefinitionLogs.isEmpty()) {
|
||||
logger.error("taskDefinitionJson invalid: {}", taskDefinitionJson);
|
||||
putMsg(result, Status.DATA_IS_NOT_VALID, taskDefinitionJson);
|
||||
return result;
|
||||
}
|
||||
int insert = processService.saveTaskDefinition(loginUser, project.getCode(), taskNode, taskDefinition);
|
||||
// return taskDefinition object with code
|
||||
result.put(Constants.DATA_LIST, code);
|
||||
putMsg(result, Status.SUCCESS, insert);
|
||||
for (TaskDefinitionLog taskDefinitionLog : taskDefinitionLogs) {
|
||||
if (!CheckUtils.checkTaskDefinitionParameters(taskDefinitionLog)) {
|
||||
logger.error("task definition {} parameter invalid", taskDefinitionLog.getName());
|
||||
putMsg(result, Status.PROCESS_NODE_S_PARAMETER_INVALID, taskDefinitionLog.getName());
|
||||
return result;
|
||||
}
|
||||
TaskDefinition taskDefinition = taskDefinitionMapper.queryByName(projectCode, taskDefinitionLog.getName());
|
||||
if (taskDefinition != null) {
|
||||
logger.error("task definition name {} already exists", taskDefinitionLog.getName());
|
||||
putMsg(result, Status.TASK_DEFINITION_NAME_EXISTED, taskDefinitionLog.getName());
|
||||
return result;
|
||||
}
|
||||
}
|
||||
if (processService.saveTaskDefine(loginUser, projectCode, taskDefinitionLogs)) {
|
||||
Map<String, Object> resData = new HashMap<>();
|
||||
resData.put("total", taskDefinitionLogs.size());
|
||||
resData.put("code", StringUtils.join(taskDefinitionLogs.stream().map(TaskDefinition::getCode).collect(Collectors.toList()), ","));
|
||||
putMsg(result, Status.SUCCESS);
|
||||
result.put(Constants.DATA_LIST, resData);
|
||||
} else {
|
||||
putMsg(result, Status.CREATE_TASK_DEFINITION_ERROR);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
@ -130,21 +140,19 @@ public class TaskDefinitionServiceImpl extends BaseServiceImpl implements TaskDe
|
|||
* query task definition
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param taskName task name
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> queryTaskDefinitionByName(User loginUser, String projectName, String taskName) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
Project project = projectMapper.queryByName(projectName);
|
||||
|
||||
Map<String, Object> checkResult = projectService.checkProjectAndAuth(loginUser, project, projectName);
|
||||
Status resultStatus = (Status) checkResult.get(Constants.STATUS);
|
||||
if (resultStatus != Status.SUCCESS) {
|
||||
return checkResult;
|
||||
public Map<String, Object> queryTaskDefinitionByName(User loginUser, long projectCode, String taskName) {
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
//check user access for project
|
||||
Map<String, Object> result = projectService.checkProjectAndAuth(loginUser, project, projectCode);
|
||||
if (result.get(Constants.STATUS) != Status.SUCCESS) {
|
||||
return result;
|
||||
}
|
||||
|
||||
TaskDefinition taskDefinition = taskDefinitionMapper.queryByDefinitionName(project.getCode(), taskName);
|
||||
TaskDefinition taskDefinition = taskDefinitionMapper.queryByName(project.getCode(), taskName);
|
||||
if (taskDefinition == null) {
|
||||
putMsg(result, Status.TASK_DEFINE_NOT_EXIST, taskName);
|
||||
} else {
|
||||
|
|
@ -158,26 +166,24 @@ public class TaskDefinitionServiceImpl extends BaseServiceImpl implements TaskDe
|
|||
* delete task definition
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param taskCode task code
|
||||
*/
|
||||
@Transactional(rollbackFor = RuntimeException.class)
|
||||
@Override
|
||||
public Map<String, Object> deleteTaskDefinitionByCode(User loginUser, String projectName, Long taskCode) {
|
||||
Map<String, Object> result = new HashMap<>(5);
|
||||
Project project = projectMapper.queryByName(projectName);
|
||||
|
||||
Map<String, Object> checkResult = projectService.checkProjectAndAuth(loginUser, project, projectName);
|
||||
Status resultEnum = (Status) checkResult.get(Constants.STATUS);
|
||||
if (resultEnum != Status.SUCCESS) {
|
||||
return checkResult;
|
||||
public Map<String, Object> deleteTaskDefinitionByCode(User loginUser, long projectCode, long taskCode) {
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
//check user access for project
|
||||
Map<String, Object> result = projectService.checkProjectAndAuth(loginUser, project, projectCode);
|
||||
if (result.get(Constants.STATUS) != Status.SUCCESS) {
|
||||
return result;
|
||||
}
|
||||
List<ProcessTaskRelation> processTaskRelationList = processTaskRelationMapper.queryByTaskCode(taskCode);
|
||||
if (!processTaskRelationList.isEmpty()) {
|
||||
Set<Long> processDefinitionCodes = processTaskRelationList
|
||||
.stream()
|
||||
.map(ProcessTaskRelation::getProcessDefinitionCode)
|
||||
.collect(Collectors.toSet());
|
||||
.stream()
|
||||
.map(ProcessTaskRelation::getProcessDefinitionCode)
|
||||
.collect(Collectors.toSet());
|
||||
putMsg(result, Status.PROCESS_TASK_RELATION_EXIST, StringUtils.join(processDefinitionCodes, ","));
|
||||
return result;
|
||||
}
|
||||
|
|
@ -194,77 +200,88 @@ public class TaskDefinitionServiceImpl extends BaseServiceImpl implements TaskDe
|
|||
* update task definition
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param taskCode task code
|
||||
* @param taskDefinitionJson task definition json
|
||||
* @param taskDefinitionJsonObj task definition json object
|
||||
*/
|
||||
@Transactional(rollbackFor = RuntimeException.class)
|
||||
@Override
|
||||
public Map<String, Object> updateTaskDefinition(User loginUser, String projectName, Long taskCode, String taskDefinitionJson) {
|
||||
Map<String, Object> result = new HashMap<>(5);
|
||||
Project project = projectMapper.queryByName(projectName);
|
||||
|
||||
Map<String, Object> checkResult = projectService.checkProjectAndAuth(loginUser, project, projectName);
|
||||
Status resultEnum = (Status) checkResult.get(Constants.STATUS);
|
||||
if (resultEnum != Status.SUCCESS) {
|
||||
return checkResult;
|
||||
public Map<String, Object> updateTaskDefinition(User loginUser, long projectCode, long taskCode, String taskDefinitionJsonObj) {
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
//check user access for project
|
||||
Map<String, Object> result = projectService.checkProjectAndAuth(loginUser, project, projectCode);
|
||||
if (result.get(Constants.STATUS) != Status.SUCCESS) {
|
||||
return result;
|
||||
}
|
||||
if (processService.isTaskOnline(taskCode)) {
|
||||
putMsg(result, Status.PROCESS_DEFINE_STATE_ONLINE);
|
||||
return result;
|
||||
}
|
||||
TaskDefinition taskDefinition = taskDefinitionMapper.queryByDefinitionCode(taskCode);
|
||||
TaskDefinition taskDefinition = taskDefinitionMapper.queryByCode(taskCode);
|
||||
if (taskDefinition == null) {
|
||||
putMsg(result, Status.TASK_DEFINE_NOT_EXIST, taskCode);
|
||||
return result;
|
||||
}
|
||||
TaskNode taskNode = JSONUtils.parseObject(taskDefinitionJson, TaskNode.class);
|
||||
checkTaskNode(result, taskNode, taskDefinitionJson);
|
||||
if (result.get(Constants.STATUS) == DATA_IS_NOT_VALID
|
||||
|| result.get(Constants.STATUS) == Status.PROCESS_NODE_S_PARAMETER_INVALID) {
|
||||
TaskDefinitionLog taskDefinitionToUpdate = JSONUtils.parseObject(taskDefinitionJsonObj, TaskDefinitionLog.class);
|
||||
if (taskDefinitionToUpdate == null) {
|
||||
logger.error("taskDefinitionJson is not valid json");
|
||||
putMsg(result, Status.DATA_IS_NOT_VALID, taskDefinitionJsonObj);
|
||||
return result;
|
||||
}
|
||||
if (!CheckUtils.checkTaskDefinitionParameters(taskDefinitionToUpdate)) {
|
||||
logger.error("task definition {} parameter invalid", taskDefinitionToUpdate.getName());
|
||||
putMsg(result, Status.PROCESS_NODE_S_PARAMETER_INVALID, taskDefinitionToUpdate.getName());
|
||||
return result;
|
||||
}
|
||||
Integer version = taskDefinitionLogMapper.queryMaxVersionForDefinition(taskCode);
|
||||
if (version == null || version == 0) {
|
||||
putMsg(result, Status.DATA_IS_NOT_VALID, taskCode);
|
||||
return result;
|
||||
}
|
||||
Date now = new Date();
|
||||
taskDefinitionToUpdate.setCode(taskCode);
|
||||
taskDefinitionToUpdate.setId(taskDefinition.getId());
|
||||
taskDefinitionToUpdate.setProjectCode(projectCode);
|
||||
taskDefinitionToUpdate.setUserId(taskDefinition.getUserId());
|
||||
taskDefinitionToUpdate.setVersion(version + 1);
|
||||
taskDefinitionToUpdate.setTaskType(taskDefinitionToUpdate.getTaskType().toUpperCase());
|
||||
taskDefinitionToUpdate.setResourceIds(processService.getResourceIds(taskDefinitionToUpdate));
|
||||
taskDefinitionToUpdate.setUpdateTime(now);
|
||||
int update = taskDefinitionMapper.updateById(taskDefinitionToUpdate);
|
||||
taskDefinitionToUpdate.setOperator(loginUser.getId());
|
||||
taskDefinitionToUpdate.setOperateTime(now);
|
||||
taskDefinitionToUpdate.setCreateTime(now);
|
||||
int insert = taskDefinitionLogMapper.insert(taskDefinitionToUpdate);
|
||||
if ((update & insert) != 1) {
|
||||
putMsg(result, Status.CREATE_TASK_DEFINITION_ERROR);
|
||||
return result;
|
||||
}
|
||||
int update = processService.updateTaskDefinition(loginUser, project.getCode(), taskNode, taskDefinition);
|
||||
result.put(Constants.DATA_LIST, taskCode);
|
||||
putMsg(result, Status.SUCCESS, update);
|
||||
return result;
|
||||
}
|
||||
|
||||
public void checkTaskNode(Map<String, Object> result, TaskNode taskNode, String taskDefinitionJson) {
|
||||
if (taskNode == null) {
|
||||
logger.error("taskDefinitionJson is not valid json");
|
||||
putMsg(result, Status.DATA_IS_NOT_VALID, taskDefinitionJson);
|
||||
return;
|
||||
}
|
||||
if (!CheckUtils.checkTaskNodeParameters(taskNode)) {
|
||||
logger.error("task node {} parameter invalid", taskNode.getName());
|
||||
putMsg(result, Status.PROCESS_NODE_S_PARAMETER_INVALID, taskNode.getName());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* update task definition
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param taskCode task code
|
||||
* @param version the version user want to switch
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> switchVersion(User loginUser, String projectName, Long taskCode, int version) {
|
||||
Map<String, Object> result = new HashMap<>(5);
|
||||
Project project = projectMapper.queryByName(projectName);
|
||||
|
||||
Map<String, Object> checkResult = projectService.checkProjectAndAuth(loginUser, project, projectName);
|
||||
Status resultEnum = (Status) checkResult.get(Constants.STATUS);
|
||||
if (resultEnum != Status.SUCCESS) {
|
||||
return checkResult;
|
||||
public Map<String, Object> switchVersion(User loginUser, long projectCode, long taskCode, int version) {
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
//check user access for project
|
||||
Map<String, Object> result = projectService.checkProjectAndAuth(loginUser, project, projectCode);
|
||||
if (result.get(Constants.STATUS) != Status.SUCCESS) {
|
||||
return result;
|
||||
}
|
||||
if (processService.isTaskOnline(taskCode)) {
|
||||
putMsg(result, Status.PROCESS_DEFINE_STATE_ONLINE);
|
||||
return result;
|
||||
}
|
||||
TaskDefinition taskDefinition = taskDefinitionMapper.queryByDefinitionCode(taskCode);
|
||||
TaskDefinition taskDefinition = taskDefinitionMapper.queryByCode(taskCode);
|
||||
if (taskDefinition == null) {
|
||||
putMsg(result, Status.TASK_DEFINE_NOT_EXIST, taskCode);
|
||||
return result;
|
||||
|
|
@ -272,10 +289,145 @@ public class TaskDefinitionServiceImpl extends BaseServiceImpl implements TaskDe
|
|||
TaskDefinitionLog taskDefinitionLog = taskDefinitionLogMapper.queryByDefinitionCodeAndVersion(taskCode, version);
|
||||
taskDefinitionLog.setUserId(loginUser.getId());
|
||||
taskDefinitionLog.setUpdateTime(new Date());
|
||||
taskDefinitionMapper.updateById(taskDefinitionLog);
|
||||
result.put(Constants.DATA_LIST, taskCode);
|
||||
int switchVersion = taskDefinitionMapper.updateById(taskDefinitionLog);
|
||||
if (switchVersion > 0) {
|
||||
result.put(Constants.DATA_LIST, taskCode);
|
||||
putMsg(result, Status.SUCCESS);
|
||||
} else {
|
||||
putMsg(result, Status.SWITCH_TASK_DEFINITION_VERSION_ERROR);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result queryTaskDefinitionVersions(User loginUser,
|
||||
long projectCode,
|
||||
long taskCode,
|
||||
int pageNo,
|
||||
int pageSize) {
|
||||
Result result = new Result();
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
// check user access for project
|
||||
Map<String, Object> checkResult = projectService.checkProjectAndAuth(loginUser, project, projectCode);
|
||||
Status resultStatus = (Status) checkResult.get(Constants.STATUS);
|
||||
if (resultStatus != Status.SUCCESS) {
|
||||
putMsg(result, resultStatus);
|
||||
return result;
|
||||
}
|
||||
PageInfo<TaskDefinitionLog> pageInfo = new PageInfo<>(pageNo, pageSize);
|
||||
Page<TaskDefinitionLog> page = new Page<>(pageNo, pageSize);
|
||||
IPage<TaskDefinitionLog> taskDefinitionVersionsPaging = taskDefinitionLogMapper.queryTaskDefinitionVersionsPaging(page, taskCode);
|
||||
List<TaskDefinitionLog> taskDefinitionLogs = taskDefinitionVersionsPaging.getRecords();
|
||||
|
||||
pageInfo.setTotalList(taskDefinitionLogs);
|
||||
pageInfo.setTotal((int) taskDefinitionVersionsPaging.getTotal());
|
||||
result.setData(pageInfo);
|
||||
putMsg(result, Status.SUCCESS);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> deleteByCodeAndVersion(User loginUser, long projectCode, long taskCode, int version) {
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
//check user access for project
|
||||
Map<String, Object> result = projectService.checkProjectAndAuth(loginUser, project, projectCode);
|
||||
if (result.get(Constants.STATUS) != Status.SUCCESS) {
|
||||
return result;
|
||||
}
|
||||
TaskDefinition taskDefinition = taskDefinitionMapper.queryByCode(taskCode);
|
||||
|
||||
if (taskDefinition == null) {
|
||||
putMsg(result, Status.TASK_DEFINE_NOT_EXIST, taskCode);
|
||||
} else {
|
||||
int delete = taskDefinitionLogMapper.deleteByCodeAndVersion(taskCode, version);
|
||||
if (delete > 0) {
|
||||
putMsg(result, Status.SUCCESS);
|
||||
} else {
|
||||
putMsg(result, Status.DELETE_TASK_DEFINITION_VERSION_ERROR);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> queryTaskDefinitionDetail(User loginUser, long projectCode, long taskCode) {
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
//check user access for project
|
||||
Map<String, Object> result = projectService.checkProjectAndAuth(loginUser, project, projectCode);
|
||||
if (result.get(Constants.STATUS) != Status.SUCCESS) {
|
||||
return result;
|
||||
}
|
||||
|
||||
TaskDefinition taskDefinition = taskDefinitionMapper.queryByCode(taskCode);
|
||||
if (taskDefinition == null) {
|
||||
putMsg(result, Status.TASK_DEFINE_NOT_EXIST, taskCode);
|
||||
} else {
|
||||
result.put(Constants.DATA_LIST, taskDefinition);
|
||||
putMsg(result, Status.SUCCESS);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result queryTaskDefinitionListPaging(User loginUser,
|
||||
long projectCode,
|
||||
String taskType,
|
||||
String searchVal,
|
||||
Integer userId,
|
||||
Integer pageNo,
|
||||
Integer pageSize) {
|
||||
Result result = new Result();
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
//check user access for project
|
||||
Map<String, Object> checkResult = projectService.checkProjectAndAuth(loginUser, project, projectCode);
|
||||
Status resultStatus = (Status) checkResult.get(Constants.STATUS);
|
||||
if (resultStatus != Status.SUCCESS) {
|
||||
putMsg(result, resultStatus);
|
||||
return result;
|
||||
}
|
||||
if (StringUtils.isNotBlank(taskType)) {
|
||||
taskType = taskType.toUpperCase();
|
||||
}
|
||||
Page<TaskDefinition> page = new Page<>(pageNo, pageSize);
|
||||
IPage<TaskDefinition> taskDefinitionIPage = taskDefinitionMapper.queryDefineListPaging(
|
||||
page, projectCode, taskType, searchVal, userId, isAdmin(loginUser));
|
||||
if (StringUtils.isNotBlank(taskType)) {
|
||||
List<TaskDefinition> records = taskDefinitionIPage.getRecords();
|
||||
for (TaskDefinition pd : records) {
|
||||
TaskDefinitionLog taskDefinitionLog = taskDefinitionLogMapper.queryByDefinitionCodeAndVersion(pd.getCode(), pd.getVersion());
|
||||
User user = userMapper.selectById(taskDefinitionLog.getOperator());
|
||||
pd.setModifyBy(user.getUserName());
|
||||
}
|
||||
taskDefinitionIPage.setRecords(records);
|
||||
}
|
||||
PageInfo<TaskDefinition> pageInfo = new PageInfo<>(pageNo, pageSize);
|
||||
pageInfo.setTotal((int) taskDefinitionIPage.getTotal());
|
||||
pageInfo.setTotalList(taskDefinitionIPage.getRecords());
|
||||
result.setData(pageInfo);
|
||||
putMsg(result, Status.SUCCESS);
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> genTaskCodeList(User loginUser, Integer genNum) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
if (genNum == null || genNum < 1 || genNum > 100) {
|
||||
logger.error("the genNum must be great than 1 and less than 100");
|
||||
putMsg(result, Status.DATA_IS_NOT_VALID, genNum);
|
||||
return result;
|
||||
}
|
||||
List<Long> taskCodes = new ArrayList<>();
|
||||
try {
|
||||
for (int i = 0; i < genNum; i++) {
|
||||
taskCodes.add(SnowFlakeUtils.getInstance().nextId());
|
||||
}
|
||||
} catch (SnowFlakeException e) {
|
||||
logger.error("Task code get error, ", e);
|
||||
putMsg(result, Status.INTERNAL_SERVER_ERROR_ARGS, "Error generating task definition code");
|
||||
}
|
||||
putMsg(result, Status.SUCCESS);
|
||||
// return processDefinitionCode
|
||||
result.put(Constants.DATA_LIST, taskCodes);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,7 +36,6 @@ import org.apache.dolphinscheduler.dao.mapper.TaskInstanceMapper;
|
|||
import org.apache.dolphinscheduler.service.process.ProcessService;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
|
@ -76,7 +75,7 @@ public class TaskInstanceServiceImpl extends BaseServiceImpl implements TaskInst
|
|||
* query task list by project, process instance, task name, task start time, task end time, task status, keyword paging
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param processInstanceId process instance id
|
||||
* @param searchVal search value
|
||||
* @param taskName task name
|
||||
|
|
@ -89,13 +88,23 @@ public class TaskInstanceServiceImpl extends BaseServiceImpl implements TaskInst
|
|||
* @return task list page
|
||||
*/
|
||||
@Override
|
||||
public Result queryTaskListPaging(User loginUser, String projectName,
|
||||
Integer processInstanceId, String processInstanceName, String taskName, String executorName, String startDate,
|
||||
String endDate, String searchVal, ExecutionStatus stateType, String host,
|
||||
Integer pageNo, Integer pageSize) {
|
||||
public Result queryTaskListPaging(User loginUser,
|
||||
long projectCode,
|
||||
Integer processInstanceId,
|
||||
String processInstanceName,
|
||||
String taskName,
|
||||
String executorName,
|
||||
String startDate,
|
||||
String endDate,
|
||||
String searchVal,
|
||||
ExecutionStatus stateType,
|
||||
String host,
|
||||
Integer pageNo,
|
||||
Integer pageSize) {
|
||||
Result result = new Result();
|
||||
Project project = projectMapper.queryByName(projectName);
|
||||
Map<String, Object> checkResult = projectService.checkProjectAndAuth(loginUser, project, projectName);
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
//check user access for project
|
||||
Map<String, Object> checkResult = projectService.checkProjectAndAuth(loginUser, project, projectCode);
|
||||
Status status = (Status) checkResult.get(Constants.STATUS);
|
||||
if (status != Status.SUCCESS) {
|
||||
putMsg(result,status);
|
||||
|
|
@ -117,7 +126,7 @@ public class TaskInstanceServiceImpl extends BaseServiceImpl implements TaskInst
|
|||
PageInfo<Map<String, Object>> pageInfo = new PageInfo<>(pageNo, pageSize);
|
||||
int executorId = usersService.getUserIdByName(executorName);
|
||||
IPage<TaskInstance> taskInstanceIPage = taskInstanceMapper.queryTaskInstanceListPaging(
|
||||
page, project.getCode(), processInstanceId, processInstanceName, searchVal, taskName, executorId, statusArray, host, start, end
|
||||
page, project.getCode(), processInstanceId, processInstanceName, searchVal, taskName, executorId, statusArray, host, start, end
|
||||
);
|
||||
Set<String> exclusionSet = new HashSet<>();
|
||||
exclusionSet.add(Constants.CLASS);
|
||||
|
|
@ -141,21 +150,18 @@ public class TaskInstanceServiceImpl extends BaseServiceImpl implements TaskInst
|
|||
/**
|
||||
* change one task instance's state from failure to forced success
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param loginUser login user
|
||||
* @param projectCode project code
|
||||
* @param taskInstanceId task instance id
|
||||
* @return the result code and msg
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> forceTaskSuccess(User loginUser, String projectName, Integer taskInstanceId) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
Project project = projectMapper.queryByName(projectName);
|
||||
|
||||
// check user auth
|
||||
Map<String, Object> checkResult = projectService.checkProjectAndAuth(loginUser, project, projectName);
|
||||
Status status = (Status) checkResult.get(Constants.STATUS);
|
||||
if (status != Status.SUCCESS) {
|
||||
return checkResult;
|
||||
public Map<String, Object> forceTaskSuccess(User loginUser, long projectCode, Integer taskInstanceId) {
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
//check user access for project
|
||||
Map<String, Object> result = projectService.checkProjectAndAuth(loginUser, project, projectCode);
|
||||
if (result.get(Constants.STATUS) != Status.SUCCESS) {
|
||||
return result;
|
||||
}
|
||||
|
||||
// check whether the task instance can be found
|
||||
|
|
@ -179,7 +185,6 @@ public class TaskInstanceServiceImpl extends BaseServiceImpl implements TaskInst
|
|||
} else {
|
||||
putMsg(result, Status.FORCE_TASK_SUCCESS_ERROR);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -279,26 +279,6 @@ public class TenantServiceImpl extends BaseServiceImpl implements TenantService
|
|||
return processInstanceMapper.queryByTenantIdAndStatus(tenant.getId(), Constants.NOT_TERMINATED_STATES);
|
||||
}
|
||||
|
||||
/**
|
||||
* query tenant list
|
||||
*
|
||||
* @param tenantCode tenant code
|
||||
* @return tenant list
|
||||
*/
|
||||
public Map<String, Object> queryTenantList(String tenantCode) {
|
||||
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
|
||||
List<Tenant> resourceList = tenantMapper.queryByTenantCode(tenantCode);
|
||||
if (CollectionUtils.isNotEmpty(resourceList)) {
|
||||
result.put(Constants.DATA_LIST, resourceList);
|
||||
putMsg(result, Status.SUCCESS);
|
||||
} else {
|
||||
putMsg(result, Status.TENANT_NOT_EXIST);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* query tenant list
|
||||
*
|
||||
|
|
|
|||
|
|
@ -50,8 +50,8 @@ public class WorkFlowLineageServiceImpl extends BaseServiceImpl implements WorkF
|
|||
private ProjectMapper projectMapper;
|
||||
|
||||
@Override
|
||||
public Map<String, Object> queryWorkFlowLineageByName(String workFlowName, int projectId) {
|
||||
Project project = projectMapper.selectById(projectId);
|
||||
public Map<String, Object> queryWorkFlowLineageByName(String workFlowName, long projectCode) {
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
List<WorkFlowLineage> workFlowLineageList = workFlowLineageMapper.queryByName(workFlowName, project.getCode());
|
||||
result.put(Constants.DATA_LIST, workFlowLineageList);
|
||||
|
|
@ -103,9 +103,9 @@ public class WorkFlowLineageServiceImpl extends BaseServiceImpl implements WorkF
|
|||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> queryWorkFlowLineageByIds(Set<Integer> ids, int projectId) {
|
||||
public Map<String, Object> queryWorkFlowLineageByIds(Set<Integer> ids, long projectCode) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
Project project = projectMapper.selectById(projectId);
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
List<ProcessLineage> processLineages = workFlowLineageMapper.queryRelationByIds(ids, project.getCode());
|
||||
|
||||
Map<Integer, WorkFlowLineage> workFlowLineages = new HashMap<>();
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ import org.apache.dolphinscheduler.common.task.AbstractParameters;
|
|||
import org.apache.dolphinscheduler.common.utils.JSONUtils;
|
||||
import org.apache.dolphinscheduler.common.utils.StringUtils;
|
||||
import org.apache.dolphinscheduler.common.utils.TaskParametersUtils;
|
||||
import org.apache.dolphinscheduler.dao.entity.TaskDefinition;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.HashMap;
|
||||
|
|
@ -129,7 +130,23 @@ public class CheckUtils {
|
|||
} else if (TaskType.SWITCH.getDesc().equalsIgnoreCase(taskType)) {
|
||||
abstractParameters = TaskParametersUtils.getParameters(taskType.toUpperCase(), taskNode.getSwitchResult());
|
||||
} else {
|
||||
abstractParameters = TaskParametersUtils.getParameters(taskType.toUpperCase(), taskNode.getParams());
|
||||
abstractParameters = TaskParametersUtils.getParameters(taskType.toUpperCase(), taskNode.getTaskParams());
|
||||
}
|
||||
|
||||
if (abstractParameters != null) {
|
||||
return abstractParameters.checkParameters();
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean checkTaskDefinitionParameters(TaskDefinition taskDefinition) {
|
||||
AbstractParameters abstractParameters;
|
||||
String taskType = taskDefinition.getTaskType();
|
||||
if (TaskType.DEPENDENT.getDesc().equalsIgnoreCase(taskType)) {
|
||||
abstractParameters = TaskParametersUtils.getParameters(taskType.toUpperCase(), taskDefinition.getDependence());
|
||||
} else {
|
||||
abstractParameters = TaskParametersUtils.getParameters(taskType.toUpperCase(), taskDefinition.getTaskParams());
|
||||
}
|
||||
|
||||
if (abstractParameters != null) {
|
||||
|
|
|
|||
|
|
@ -18,13 +18,12 @@
|
|||
|
||||
<!-- Logback configuration. See http://logback.qos.ch/manual/index.html -->
|
||||
<configuration scan="true" scanPeriod="120 seconds"> <!--debug="true" -->
|
||||
<conversionRule conversionWord="message" converterClass="org.apache.dolphinscheduler.service.log.SensitiveDataConverter">
|
||||
</conversionRule>
|
||||
|
||||
<property name="log.base" value="logs"/>
|
||||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
<pattern>
|
||||
[%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %message%n
|
||||
[%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n
|
||||
</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
|
|
@ -43,7 +42,7 @@
|
|||
</rollingPolicy>
|
||||
<encoder>
|
||||
<pattern>
|
||||
[%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %message%n
|
||||
[%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n
|
||||
</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
|
|
|
|||
|
|
@ -18,13 +18,19 @@
|
|||
package org.apache.dolphinscheduler.api.controller;
|
||||
|
||||
import org.apache.dolphinscheduler.api.ApiApplicationServer;
|
||||
import org.apache.dolphinscheduler.api.enums.Status;
|
||||
import org.apache.dolphinscheduler.api.service.SessionService;
|
||||
import org.apache.dolphinscheduler.api.utils.RegistryCenterUtils;
|
||||
import org.apache.dolphinscheduler.common.Constants;
|
||||
import org.apache.dolphinscheduler.common.enums.UserType;
|
||||
import org.apache.dolphinscheduler.common.utils.StringUtils;
|
||||
import org.apache.dolphinscheduler.dao.entity.User;
|
||||
import org.apache.dolphinscheduler.service.registry.RegistryClient;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.junit.After;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
|
|
@ -92,6 +98,20 @@ public class AbstractControllerTest {
|
|||
sessionId = session;
|
||||
|
||||
Assert.assertTrue(StringUtils.isNotEmpty(session));
|
||||
}
|
||||
|
||||
public Map<String, Object> success() {
|
||||
Map<String, Object> serviceResult = new HashMap<>();
|
||||
putMsg(serviceResult, Status.SUCCESS);
|
||||
return serviceResult;
|
||||
}
|
||||
|
||||
public void putMsg(Map<String, Object> result, Status status, Object... statusParams) {
|
||||
result.put(Constants.STATUS, status);
|
||||
if (statusParams != null && statusParams.length > 0) {
|
||||
result.put(Constants.MSG, MessageFormat.format(status.getMsg(), statusParams));
|
||||
} else {
|
||||
result.put(Constants.MSG, status.getMsg());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ public class AccessTokenControllerTest extends AbstractControllerTest {
|
|||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -72,7 +72,7 @@ public class AccessTokenControllerTest extends AbstractControllerTest {
|
|||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isStatus(Status.CREATE_ACCESS_TOKEN_ERROR));
|
||||
Assert.assertEquals(Status.CREATE_ACCESS_TOKEN_ERROR.getCode(), result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -88,7 +88,7 @@ public class AccessTokenControllerTest extends AbstractControllerTest {
|
|||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -105,7 +105,7 @@ public class AccessTokenControllerTest extends AbstractControllerTest {
|
|||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -120,7 +120,7 @@ public class AccessTokenControllerTest extends AbstractControllerTest {
|
|||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -138,7 +138,7 @@ public class AccessTokenControllerTest extends AbstractControllerTest {
|
|||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ public class AlertGroupControllerTest extends AbstractControllerTest {
|
|||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -71,7 +71,7 @@ public class AlertGroupControllerTest extends AbstractControllerTest {
|
|||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
|
||||
}
|
||||
|
|
@ -89,7 +89,7 @@ public class AlertGroupControllerTest extends AbstractControllerTest {
|
|||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -104,7 +104,7 @@ public class AlertGroupControllerTest extends AbstractControllerTest {
|
|||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isStatus(Status.ALERT_GROUP_NOT_EXIST));
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -123,7 +123,7 @@ public class AlertGroupControllerTest extends AbstractControllerTest {
|
|||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isStatus(Status.ALERT_GROUP_NOT_EXIST));
|
||||
Assert.assertEquals(Status.ALERT_GROUP_EXIST.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -138,7 +138,7 @@ public class AlertGroupControllerTest extends AbstractControllerTest {
|
|||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isStatus(Status.ALERT_GROUP_EXIST));
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -153,7 +153,7 @@ public class AlertGroupControllerTest extends AbstractControllerTest {
|
|||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isStatus(Status.ALERT_GROUP_EXIST));
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -168,7 +168,7 @@ public class AlertGroupControllerTest extends AbstractControllerTest {
|
|||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isStatus(Status.ALERT_GROUP_NOT_EXIST));
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,13 +21,19 @@ import static org.springframework.test.web.servlet.request.MockMvcRequestBuilder
|
|||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
||||
|
||||
import org.apache.dolphinscheduler.api.enums.Status;
|
||||
import org.apache.dolphinscheduler.api.utils.Result;
|
||||
import org.apache.dolphinscheduler.common.utils.JSONUtils;
|
||||
import org.apache.dolphinscheduler.dao.entity.Project;
|
||||
import org.apache.dolphinscheduler.dao.mapper.ProjectMapper;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.mockito.Mockito;
|
||||
import org.powermock.api.mockito.PowerMockito;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.boot.test.mock.mockito.MockBean;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.test.web.servlet.MvcResult;
|
||||
import org.springframework.util.LinkedMultiValueMap;
|
||||
|
|
@ -40,13 +46,17 @@ public class DataAnalysisControllerTest extends AbstractControllerTest {
|
|||
|
||||
private static Logger logger = LoggerFactory.getLogger(DataAnalysisControllerTest.class);
|
||||
|
||||
@MockBean
|
||||
ProjectMapper projectMapper;
|
||||
|
||||
@Test
|
||||
public void testCountTaskState() throws Exception {
|
||||
PowerMockito.when(projectMapper.queryByCode(Mockito.any())).thenReturn(getProject("test"));
|
||||
|
||||
MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
|
||||
paramsMap.add("startDate","2019-12-01 00:00:00");
|
||||
paramsMap.add("endDate","2019-12-28 00:00:00");
|
||||
paramsMap.add("projectId","16");
|
||||
paramsMap.add("projectCode","16");
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/analysis/task-state-count")
|
||||
.header("sessionId", sessionId)
|
||||
|
|
@ -55,17 +65,19 @@ public class DataAnalysisControllerTest extends AbstractControllerTest {
|
|||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(
|
||||
Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCountProcessInstanceState() throws Exception {
|
||||
PowerMockito.when(projectMapper.queryByCode(Mockito.any())).thenReturn(getProject("test"));
|
||||
|
||||
MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
|
||||
paramsMap.add("startDate","2019-12-01 00:00:00");
|
||||
paramsMap.add("endDate","2019-12-28 00:00:00");
|
||||
paramsMap.add("projectId","16");
|
||||
paramsMap.add("projectCode","16");
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/analysis/process-state-count")
|
||||
.header("sessionId", sessionId)
|
||||
|
|
@ -74,12 +86,13 @@ public class DataAnalysisControllerTest extends AbstractControllerTest {
|
|||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCountDefinitionByUser() throws Exception {
|
||||
PowerMockito.when(projectMapper.queryByCode(Mockito.any())).thenReturn(getProject("test"));
|
||||
|
||||
MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
|
||||
paramsMap.add("projectId","16");
|
||||
|
|
@ -91,40 +104,46 @@ public class DataAnalysisControllerTest extends AbstractControllerTest {
|
|||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCountCommandState() throws Exception {
|
||||
MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
|
||||
paramsMap.add("startDate","2019-12-01");
|
||||
paramsMap.add("endDate","2019-12-15");
|
||||
paramsMap.add("projectId","16");
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/analysis/command-state-count")
|
||||
.header("sessionId", sessionId)
|
||||
.params(paramsMap))
|
||||
.header("sessionId", sessionId))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCountQueueState() throws Exception {
|
||||
|
||||
MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
|
||||
paramsMap.add("projectId","16");
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/analysis/queue-count")
|
||||
.header("sessionId", sessionId)
|
||||
.params(paramsMap))
|
||||
.header("sessionId", sessionId))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
/**
|
||||
* get mock Project
|
||||
*
|
||||
* @param projectName projectName
|
||||
* @return Project
|
||||
*/
|
||||
private Project getProject(String projectName) {
|
||||
Project project = new Project();
|
||||
project.setCode(11L);
|
||||
project.setId(1);
|
||||
project.setName(projectName);
|
||||
project.setUserId(1);
|
||||
return project;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ import static org.springframework.test.web.servlet.request.MockMvcRequestBuilder
|
|||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
||||
|
||||
import org.apache.dolphinscheduler.api.enums.Status;
|
||||
import org.apache.dolphinscheduler.api.utils.Result;
|
||||
import org.apache.dolphinscheduler.common.datasource.mysql.MysqlDatasourceParamDTO;
|
||||
import org.apache.dolphinscheduler.common.utils.JSONUtils;
|
||||
|
|
@ -65,7 +66,7 @@ public class DataSourceControllerTest extends AbstractControllerTest {
|
|||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -91,7 +92,7 @@ public class DataSourceControllerTest extends AbstractControllerTest {
|
|||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(), result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -107,7 +108,7 @@ public class DataSourceControllerTest extends AbstractControllerTest {
|
|||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -122,7 +123,7 @@ public class DataSourceControllerTest extends AbstractControllerTest {
|
|||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -139,7 +140,7 @@ public class DataSourceControllerTest extends AbstractControllerTest {
|
|||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -162,7 +163,7 @@ public class DataSourceControllerTest extends AbstractControllerTest {
|
|||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -178,7 +179,7 @@ public class DataSourceControllerTest extends AbstractControllerTest {
|
|||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -193,7 +194,7 @@ public class DataSourceControllerTest extends AbstractControllerTest {
|
|||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -208,7 +209,7 @@ public class DataSourceControllerTest extends AbstractControllerTest {
|
|||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -223,7 +224,7 @@ public class DataSourceControllerTest extends AbstractControllerTest {
|
|||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -235,7 +236,7 @@ public class DataSourceControllerTest extends AbstractControllerTest {
|
|||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -251,7 +252,7 @@ public class DataSourceControllerTest extends AbstractControllerTest {
|
|||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ import static org.springframework.test.web.servlet.request.MockMvcRequestBuilder
|
|||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
||||
|
||||
import org.apache.dolphinscheduler.api.enums.Status;
|
||||
import org.apache.dolphinscheduler.api.utils.Result;
|
||||
import org.apache.dolphinscheduler.common.utils.JSONUtils;
|
||||
|
||||
|
|
@ -58,7 +59,7 @@ public class LoggerControllerTest extends AbstractControllerTest {
|
|||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -75,7 +76,7 @@ public class LoggerControllerTest extends AbstractControllerTest {
|
|||
/*.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))*/
|
||||
.andReturn();
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ import static org.springframework.test.web.servlet.request.MockMvcRequestBuilder
|
|||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
||||
|
||||
import org.apache.dolphinscheduler.api.enums.Status;
|
||||
import org.apache.dolphinscheduler.api.utils.Result;
|
||||
import org.apache.dolphinscheduler.common.utils.JSONUtils;
|
||||
|
||||
|
|
@ -53,7 +54,7 @@ public class LoginControllerTest extends AbstractControllerTest {
|
|||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -69,7 +70,7 @@ public class LoginControllerTest extends AbstractControllerTest {
|
|||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ import static org.springframework.test.web.servlet.request.MockMvcRequestBuilder
|
|||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
||||
|
||||
import org.apache.dolphinscheduler.api.enums.Status;
|
||||
import org.apache.dolphinscheduler.api.utils.Result;
|
||||
import org.apache.dolphinscheduler.common.utils.JSONUtils;
|
||||
|
||||
|
|
@ -49,8 +50,9 @@ public class MonitorControllerTest extends AbstractControllerTest {
|
|||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
result.getCode().equals(Status.SUCCESS.getCode());
|
||||
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -65,8 +67,9 @@ public class MonitorControllerTest extends AbstractControllerTest {
|
|||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
result.getCode().equals(Status.SUCCESS.getCode());
|
||||
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -80,8 +83,9 @@ public class MonitorControllerTest extends AbstractControllerTest {
|
|||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
result.getCode().equals(Status.SUCCESS.getCode());
|
||||
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -95,8 +99,9 @@ public class MonitorControllerTest extends AbstractControllerTest {
|
|||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
result.getCode().equals(Status.SUCCESS.getCode());
|
||||
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -67,33 +67,38 @@ public class ProcessDefinitionControllerTest {
|
|||
loginUser.setId(1);
|
||||
loginUser.setUserType(UserType.GENERAL_USER);
|
||||
loginUser.setUserName("admin");
|
||||
|
||||
user = loginUser;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCreateProcessDefinition() throws Exception {
|
||||
String json = "{\"globalParams\":[],\"tasks\":[{\"type\":\"SHELL\",\"id\":\"tasks-36196\",\"name\""
|
||||
+ ":\"ssh_test1\",\"params\":{\"resourceList\":[],\"localParams\":[],\"rawScript\":\"aa=\\\"1234\\\"\\"
|
||||
+ "necho ${aa}\"},\"desc\":\"\",\"runFlag\":\"NORMAL\",\"dependence\":{},\"maxRetryTimes\":\"0\""
|
||||
+ ",\"retryInterval\":\"1\",\"timeout\":{\"strategy\":\"\",\"interval\":null,\"enable\":false},"
|
||||
+ "\"taskInstancePriority\":\"MEDIUM\",\"workerGroupId\":-1,\"preTasks\":[]}],\"tenantId\":-1,\"timeout\":0}";
|
||||
String locations = "{\"tasks-36196\":{\"name\":\"ssh_test1\",\"targetarr\":\"\",\"x\":141,\"y\":70}}";
|
||||
|
||||
String projectName = "test";
|
||||
public void testCreateProcessDefinition() {
|
||||
String relationJson = "[{\"name\":\"\",\"pre_task_code\":0,\"pre_task_version\":0,\"post_task_code\":123456789,\"post_task_version\":1,"
|
||||
+ "\"condition_type\":0,\"condition_params\":\"{}\"},{\"name\":\"\",\"pre_task_code\":123456789,\"pre_task_version\":1,"
|
||||
+ "\"post_task_code\":123451234,\"post_task_version\":1,\"condition_type\":0,\"condition_params\":\"{}\"}]";
|
||||
String taskDefinitionJson = "[{\"name\":\"detail_up\",\"description\":\"\",\"taskType\":\"SHELL\",\"taskParams\":"
|
||||
+ "\"{\\\"resourceList\\\":[],\\\"localParams\\\":[{\\\"prop\\\":\\\"datetime\\\",\\\"direct\\\":\\\"IN\\\","
|
||||
+ "\\\"type\\\":\\\"VARCHAR\\\",\\\"value\\\":\\\"${system.datetime}\\\"}],\\\"rawScript\\\":"
|
||||
+ "\\\"echo ${datetime}\\\",\\\"conditionResult\\\":\\\"{\\\\\\\"successNode\\\\\\\":[\\\\\\\"\\\\\\\"],"
|
||||
+ "\\\\\\\"failedNode\\\\\\\":[\\\\\\\"\\\\\\\"]}\\\",\\\"dependence\\\":{}}\",\"flag\":0,\"taskPriority\":0,"
|
||||
+ "\"workerGroup\":\"default\",\"failRetryTimes\":0,\"failRetryInterval\":0,\"timeoutFlag\":0,"
|
||||
+ "\"timeoutNotifyStrategy\":0,\"timeout\":0,\"delayTime\":0,\"resourceIds\":\"\"}]";
|
||||
long projectCode = 1L;
|
||||
String name = "dag_test";
|
||||
String description = "desc test";
|
||||
String connects = "[]";
|
||||
String globalParams = "[]";
|
||||
String locations = "[]";
|
||||
int timeout = 0;
|
||||
String tenantCode = "root";
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.SUCCESS);
|
||||
result.put(Constants.DATA_LIST, 1);
|
||||
|
||||
Mockito.when(processDefinitionService.createProcessDefinition(user, projectName, name, json,
|
||||
description, locations, connects)).thenReturn(result);
|
||||
Mockito.when(processDefinitionService.createProcessDefinition(user, projectCode, name, description, globalParams,
|
||||
locations, timeout, tenantCode, relationJson, taskDefinitionJson)).thenReturn(result);
|
||||
|
||||
Result response = processDefinitionController.createProcessDefinition(user, projectName, name, json,
|
||||
locations, connects, description);
|
||||
Assert.assertTrue(response.isSuccess());
|
||||
Result response = processDefinitionController.createProcessDefinition(user, projectCode, name, description, globalParams,
|
||||
locations, timeout, tenantCode, relationJson, taskDefinitionJson);
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(), response.getCode().intValue());
|
||||
}
|
||||
|
||||
private void putMsg(Map<String, Object> result, Status status, Object... statusParams) {
|
||||
|
|
@ -115,77 +120,74 @@ public class ProcessDefinitionControllerTest {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void testVerifyProcessDefinitionName() throws Exception {
|
||||
|
||||
public void testVerifyProcessDefinitionName() {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.PROCESS_DEFINITION_NAME_EXIST);
|
||||
String projectName = "test";
|
||||
long projectCode = 1L;
|
||||
String name = "dag_test";
|
||||
|
||||
Mockito.when(processDefinitionService.verifyProcessDefinitionName(user, projectName, name)).thenReturn(result);
|
||||
Mockito.when(processDefinitionService.verifyProcessDefinitionName(user, projectCode, name)).thenReturn(result);
|
||||
|
||||
Result response = processDefinitionController.verifyProcessDefinitionName(user, projectName, name);
|
||||
Result response = processDefinitionController.verifyProcessDefinitionName(user, projectCode, name);
|
||||
Assert.assertTrue(response.isStatus(Status.PROCESS_DEFINITION_NAME_EXIST));
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateProcessDefinition() throws Exception {
|
||||
|
||||
String json = "{\"globalParams\":[],\"tasks\":[{\"type\":\"SHELL\",\"id\":\"tasks-36196\",\"name\":\"ssh_test1\""
|
||||
+ ",\"params\":{\"resourceList\":[],\"localParams\":[],\"rawScript\":\"aa=\\\"1234\\\"\\necho ${aa}\"}"
|
||||
+ ",\"desc\":\"\",\"runFlag\":\"NORMAL\",\"dependence\":{},\"maxRetryTimes\":\"0\",\"retryInterval\""
|
||||
+ ":\"1\",\"timeout\":{\"strategy\":\"\",\"interval\":null,\"enable\":false},\"taskInstancePriority\""
|
||||
+ ":\"MEDIUM\",\"workerGroupId\":-1,\"preTasks\":[]}],\"tenantId\":-1,\"timeout\":0}";
|
||||
public void updateProcessDefinition() {
|
||||
String relationJson = "[{\"name\":\"\",\"pre_task_code\":0,\"pre_task_version\":0,\"post_task_code\":123456789,\"post_task_version\":1,"
|
||||
+ "\"condition_type\":0,\"condition_params\":\"{}\"},{\"name\":\"\",\"pre_task_code\":123456789,\"pre_task_version\":1,"
|
||||
+ "\"post_task_code\":123451234,\"post_task_version\":1,\"condition_type\":0,\"condition_params\":\"{}\"}]";
|
||||
String taskDefinitionJson = "[{\"name\":\"detail_up\",\"description\":\"\",\"taskType\":\"SHELL\",\"taskParams\":"
|
||||
+ "\"{\\\"resourceList\\\":[],\\\"localParams\\\":[{\\\"prop\\\":\\\"datetime\\\",\\\"direct\\\":\\\"IN\\\","
|
||||
+ "\\\"type\\\":\\\"VARCHAR\\\",\\\"value\\\":\\\"${system.datetime}\\\"}],\\\"rawScript\\\":"
|
||||
+ "\\\"echo ${datetime}\\\",\\\"conditionResult\\\":\\\"{\\\\\\\"successNode\\\\\\\":[\\\\\\\"\\\\\\\"],"
|
||||
+ "\\\\\\\"failedNode\\\\\\\":[\\\\\\\"\\\\\\\"]}\\\",\\\"dependence\\\":{}}\",\"flag\":0,\"taskPriority\":0,"
|
||||
+ "\"workerGroup\":\"default\",\"failRetryTimes\":0,\"failRetryInterval\":0,\"timeoutFlag\":0,"
|
||||
+ "\"timeoutNotifyStrategy\":0,\"timeout\":0,\"delayTime\":0,\"resourceIds\":\"\"}]";
|
||||
String locations = "{\"tasks-36196\":{\"name\":\"ssh_test1\",\"targetarr\":\"\",\"x\":141,\"y\":70}}";
|
||||
String projectName = "test";
|
||||
long projectCode = 1L;
|
||||
String name = "dag_test";
|
||||
String description = "desc test";
|
||||
String connects = "[]";
|
||||
int id = 1;
|
||||
String globalParams = "[]";
|
||||
int timeout = 0;
|
||||
String tenantCode = "root";
|
||||
long code = 123L;
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.SUCCESS);
|
||||
result.put("processDefinitionId", 1);
|
||||
|
||||
Mockito.when(processDefinitionService.updateProcessDefinition(user, projectName, id, name, json,
|
||||
description, locations, connects)).thenReturn(result);
|
||||
Mockito.when(processDefinitionService.updateProcessDefinition(user, projectCode, name, code, description, globalParams,
|
||||
locations, timeout, tenantCode, relationJson, taskDefinitionJson)).thenReturn(result);
|
||||
|
||||
Result response = processDefinitionController.updateProcessDefinition(user, projectName, name, id, json,
|
||||
locations, connects, description,ReleaseState.OFFLINE);
|
||||
Assert.assertTrue(response != null && response.isSuccess()); }
|
||||
Result response = processDefinitionController.updateProcessDefinition(user, projectCode, name, code, description, globalParams,
|
||||
locations, timeout, tenantCode, relationJson, taskDefinitionJson, ReleaseState.OFFLINE);
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(), response.getCode().intValue());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testReleaseProcessDefinition() throws Exception {
|
||||
String projectName = "test";
|
||||
public void testReleaseProcessDefinition() {
|
||||
long projectCode = 1L;
|
||||
int id = 1;
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.SUCCESS);
|
||||
|
||||
Mockito.when(processDefinitionService.releaseProcessDefinition(user, projectName, id, ReleaseState.OFFLINE)).thenReturn(result);
|
||||
Result response = processDefinitionController.releaseProcessDefinition(user, projectName, id, ReleaseState.OFFLINE);
|
||||
Mockito.when(processDefinitionService.releaseProcessDefinition(user, projectCode, id, ReleaseState.OFFLINE)).thenReturn(result);
|
||||
Result response = processDefinitionController.releaseProcessDefinition(user, projectCode, id, ReleaseState.OFFLINE);
|
||||
Assert.assertTrue(response != null && response.isSuccess());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testQueryProcessDefinitionById() throws Exception {
|
||||
|
||||
String json = "{\"globalParams\":[],\"tasks\":[{\"type\":\"SHELL\",\"id\":\"tasks-36196\",\"name\":\"ssh_test1"
|
||||
+ "\",\"params\":{\"resourceList\":[],\"localParams\":[],\"rawScript\":\"aa=\\\"1234\\\"\\necho ${aa}"
|
||||
+ "\"},\"desc\":\"\",\"runFlag\":\"NORMAL\",\"dependence\":{},\"maxRetryTimes\":\"0\",\"retryInterval\""
|
||||
+ ":\"1\",\"timeout\":{\"strategy\":\"\",\"interval\":null,\"enable\":false},\"taskInstancePriority\":"
|
||||
+ "\"MEDIUM\",\"workerGroupId\":-1,\"preTasks\":[]}],\"tenantId\":-1,\"timeout\":0}";
|
||||
public void testQueryProcessDefinitionByCode() {
|
||||
String locations = "{\"tasks-36196\":{\"name\":\"ssh_test1\",\"targetarr\":\"\",\"x\":141,\"y\":70}}";
|
||||
String projectName = "test";
|
||||
long projectCode = 1L;
|
||||
String name = "dag_test";
|
||||
String description = "desc test";
|
||||
String connects = "[]";
|
||||
int id = 1;
|
||||
long code = 1L;
|
||||
|
||||
ProcessDefinition processDefinition = new ProcessDefinition();
|
||||
processDefinition.setProjectName(projectName);
|
||||
processDefinition.setConnects(connects);
|
||||
processDefinition.setProjectCode(projectCode);
|
||||
processDefinition.setDescription(description);
|
||||
processDefinition.setId(id);
|
||||
processDefinition.setCode(code);
|
||||
processDefinition.setLocations(locations);
|
||||
processDefinition.setName(name);
|
||||
|
||||
|
|
@ -193,79 +195,67 @@ public class ProcessDefinitionControllerTest {
|
|||
putMsg(result, Status.SUCCESS);
|
||||
result.put(Constants.DATA_LIST, processDefinition);
|
||||
|
||||
Mockito.when(processDefinitionService.queryProcessDefinitionById(user, projectName, id)).thenReturn(result);
|
||||
Result response = processDefinitionController.queryProcessDefinitionById(user, projectName, id);
|
||||
Mockito.when(processDefinitionService.queryProcessDefinitionByCode(user, projectCode, code)).thenReturn(result);
|
||||
Result response = processDefinitionController.queryProcessDefinitionByCode(user, projectCode, code);
|
||||
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(), response.getCode().intValue());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBatchCopyProcessDefinition() {
|
||||
long projectCode = 1L;
|
||||
long targetProjectCode = 2L;
|
||||
String code = "1";
|
||||
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.SUCCESS);
|
||||
|
||||
Mockito.when(processDefinitionService.batchCopyProcessDefinition(user, projectCode, code, targetProjectCode)).thenReturn(result);
|
||||
Result response = processDefinitionController.copyProcessDefinition(user, projectCode, code, targetProjectCode);
|
||||
|
||||
Assert.assertTrue(response != null && response.isSuccess());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBatchCopyProcessDefinition() throws Exception {
|
||||
|
||||
String projectName = "test";
|
||||
int targetProjectId = 2;
|
||||
public void testBatchMoveProcessDefinition() {
|
||||
long projectCode = 1L;
|
||||
long targetProjectCode = 2L;
|
||||
String id = "1";
|
||||
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.SUCCESS);
|
||||
|
||||
Mockito.when(processDefinitionService.batchCopyProcessDefinition(user, projectName, id, targetProjectId)).thenReturn(result);
|
||||
Result response = processDefinitionController.copyProcessDefinition(user, projectName, id, targetProjectId);
|
||||
Mockito.when(processDefinitionService.batchMoveProcessDefinition(user, projectCode, id, targetProjectCode)).thenReturn(result);
|
||||
Result response = processDefinitionController.moveProcessDefinition(user, projectCode, id, targetProjectCode);
|
||||
|
||||
Assert.assertTrue(response != null && response.isSuccess());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBatchMoveProcessDefinition() throws Exception {
|
||||
|
||||
String projectName = "test";
|
||||
int targetProjectId = 2;
|
||||
String id = "1";
|
||||
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.SUCCESS);
|
||||
|
||||
Mockito.when(processDefinitionService.batchMoveProcessDefinition(user, projectName, id, targetProjectId)).thenReturn(result);
|
||||
Result response = processDefinitionController.moveProcessDefinition(user, projectName, id, targetProjectId);
|
||||
|
||||
Assert.assertTrue(response != null && response.isSuccess());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testQueryProcessDefinitionList() throws Exception {
|
||||
|
||||
String projectName = "test";
|
||||
public void testQueryProcessDefinitionList() {
|
||||
long projectCode = 1L;
|
||||
List<ProcessDefinition> resourceList = getDefinitionList();
|
||||
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.SUCCESS);
|
||||
result.put(Constants.DATA_LIST, resourceList);
|
||||
|
||||
Mockito.when(processDefinitionService.queryProcessDefinitionList(user, projectName)).thenReturn(result);
|
||||
Result response = processDefinitionController.queryProcessDefinitionList(user, projectName);
|
||||
Mockito.when(processDefinitionService.queryProcessDefinitionList(user, projectCode)).thenReturn(result);
|
||||
Result response = processDefinitionController.queryProcessDefinitionList(user, projectCode);
|
||||
|
||||
Assert.assertTrue(response != null && response.isSuccess());
|
||||
}
|
||||
|
||||
public List<ProcessDefinition> getDefinitionList() {
|
||||
|
||||
List<ProcessDefinition> resourceList = new ArrayList<>();
|
||||
|
||||
String json = "{\"globalParams\":[],\"tasks\":[{\"type\":\"SHELL\",\"id\":\"tasks-36196\",\"name\":\"ssh_test1"
|
||||
+ "\",\"params\":{\"resourceList\":[],\"localParams\":[],\"rawScript\":\"aa=\\\"1234\\\"\\necho ${aa}"
|
||||
+ "\"},\"desc\":\"\",\"runFlag\":\"NORMAL\",\"dependence\":{},\"maxRetryTimes\":\"0\",\"retryInterval"
|
||||
+ "\":\"1\",\"timeout\":{\"strategy\":\"\",\"interval\":null,\"enable\":false},\"taskInstancePriority\""
|
||||
+ ":\"MEDIUM\",\"workerGroupId\":-1,\"preTasks\":[]}],\"tenantId\":-1,\"timeout\":0}";
|
||||
String locations = "{\"tasks-36196\":{\"name\":\"ssh_test1\",\"targetarr\":\"\",\"x\":141,\"y\":70}}";
|
||||
String projectName = "test";
|
||||
String name = "dag_test";
|
||||
String description = "desc test";
|
||||
String connects = "[]";
|
||||
int id = 1;
|
||||
|
||||
ProcessDefinition processDefinition = new ProcessDefinition();
|
||||
processDefinition.setProjectName(projectName);
|
||||
processDefinition.setConnects(connects);
|
||||
processDefinition.setDescription(description);
|
||||
processDefinition.setId(id);
|
||||
processDefinition.setLocations(locations);
|
||||
|
|
@ -276,7 +266,6 @@ public class ProcessDefinitionControllerTest {
|
|||
|
||||
ProcessDefinition processDefinition2 = new ProcessDefinition();
|
||||
processDefinition2.setProjectName(projectName);
|
||||
processDefinition2.setConnects(connects);
|
||||
processDefinition2.setDescription(description);
|
||||
processDefinition2.setId(id2);
|
||||
processDefinition2.setLocations(locations);
|
||||
|
|
@ -289,76 +278,76 @@ public class ProcessDefinitionControllerTest {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteProcessDefinitionById() throws Exception {
|
||||
String projectName = "test";
|
||||
int id = 1;
|
||||
public void testDeleteProcessDefinitionByCode() {
|
||||
long projectCode = 1L;
|
||||
long code = 1L;
|
||||
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.SUCCESS);
|
||||
|
||||
Mockito.when(processDefinitionService.deleteProcessDefinitionById(user, projectName, id)).thenReturn(result);
|
||||
Result response = processDefinitionController.deleteProcessDefinitionById(user, projectName, id);
|
||||
Mockito.when(processDefinitionService.deleteProcessDefinitionByCode(user, projectCode, code)).thenReturn(result);
|
||||
Result response = processDefinitionController.deleteProcessDefinitionByCode(user, projectCode, code);
|
||||
|
||||
Assert.assertTrue(response != null && response.isSuccess());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetNodeListByDefinitionId() throws Exception {
|
||||
String projectName = "test";
|
||||
public void testGetNodeListByDefinitionId() {
|
||||
long projectCode = 1L;
|
||||
Long code = 1L;
|
||||
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.SUCCESS);
|
||||
|
||||
Mockito.when(processDefinitionService.getTaskNodeListByDefinitionCode(code)).thenReturn(result);
|
||||
Result response = processDefinitionController.getNodeListByDefinitionCode(user, projectName, code);
|
||||
Mockito.when(processDefinitionService.getTaskNodeListByDefinitionCode(user, projectCode, code)).thenReturn(result);
|
||||
Result response = processDefinitionController.getNodeListByDefinitionCode(user, projectCode, code);
|
||||
|
||||
Assert.assertTrue(response != null && response.isSuccess());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetNodeListByDefinitionIdList() throws Exception {
|
||||
String projectName = "test";
|
||||
public void testGetNodeListByDefinitionIdList() {
|
||||
long projectCode = 1L;
|
||||
String codeList = "1,2,3";
|
||||
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.SUCCESS);
|
||||
|
||||
Mockito.when(processDefinitionService.getTaskNodeListByDefinitionCodeList(codeList)).thenReturn(result);
|
||||
Result response = processDefinitionController.getNodeListByDefinitionCodeList(user, projectName, codeList);
|
||||
Mockito.when(processDefinitionService.getNodeListMapByDefinitionCodes(user, projectCode, codeList)).thenReturn(result);
|
||||
Result response = processDefinitionController.getNodeListMapByDefinitionCodes(user, projectCode, codeList);
|
||||
|
||||
Assert.assertTrue(response != null && response.isSuccess());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testQueryProcessDefinitionAllByProjectId() throws Exception {
|
||||
int projectId = 1;
|
||||
public void testQueryProcessDefinitionAllByProjectId() {
|
||||
long projectCode = 1L;
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.SUCCESS);
|
||||
|
||||
Mockito.when(processDefinitionService.queryProcessDefinitionAllByProjectId(projectId)).thenReturn(result);
|
||||
Result response = processDefinitionController.queryProcessDefinitionAllByProjectId(user, projectId);
|
||||
Mockito.when(processDefinitionService.queryAllProcessDefinitionByProjectCode(user, projectCode)).thenReturn(result);
|
||||
Result response = processDefinitionController.queryAllProcessDefinitionByProjectCode(user, projectCode);
|
||||
|
||||
Assert.assertTrue(response != null && response.isSuccess());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testViewTree() throws Exception {
|
||||
String projectName = "test";
|
||||
long projectCode = 1L;
|
||||
int processId = 1;
|
||||
int limit = 2;
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.SUCCESS);
|
||||
|
||||
Mockito.when(processDefinitionService.viewTree(processId, limit)).thenReturn(result);
|
||||
Result response = processDefinitionController.viewTree(user, projectName, processId, limit);
|
||||
Result response = processDefinitionController.viewTree(user, projectCode, processId, limit);
|
||||
|
||||
Assert.assertTrue(response != null && response.isSuccess());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testQueryProcessDefinitionListPaging() throws Exception {
|
||||
String projectName = "test";
|
||||
public void testQueryProcessDefinitionListPaging() {
|
||||
long projectCode = 1L;
|
||||
int pageNo = 1;
|
||||
int pageSize = 10;
|
||||
String searchVal = "";
|
||||
|
|
@ -368,38 +357,38 @@ public class ProcessDefinitionControllerTest {
|
|||
putMsg(result, Status.SUCCESS);
|
||||
result.setData(new PageInfo<Resource>(1, 10));
|
||||
|
||||
Mockito.when(processDefinitionService.queryProcessDefinitionListPaging(user, projectName, searchVal, pageNo, pageSize, userId)).thenReturn(result);
|
||||
Result response = processDefinitionController.queryProcessDefinitionListPaging(user, projectName, pageNo, searchVal, userId, pageSize);
|
||||
Mockito.when(processDefinitionService.queryProcessDefinitionListPaging(user, projectCode, searchVal, userId, pageNo, pageSize)).thenReturn(result);
|
||||
Result response = processDefinitionController.queryProcessDefinitionListPaging(user, projectCode, searchVal, userId, pageNo, pageSize);
|
||||
|
||||
Assert.assertTrue(response != null && response.isSuccess());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBatchExportProcessDefinitionByIds() throws Exception {
|
||||
|
||||
public void testBatchExportProcessDefinitionByCodes() {
|
||||
String processDefinitionIds = "1,2";
|
||||
String projectName = "test";
|
||||
long projectCode = 1L;
|
||||
HttpServletResponse response = new MockHttpServletResponse();
|
||||
Mockito.doNothing().when(this.processDefinitionService).batchExportProcessDefinitionByIds(user, projectName, processDefinitionIds, response);
|
||||
processDefinitionController.batchExportProcessDefinitionByIds(user, projectName, processDefinitionIds, response);
|
||||
Mockito.doNothing().when(this.processDefinitionService).batchExportProcessDefinitionByCodes(user, projectCode, processDefinitionIds, response);
|
||||
processDefinitionController.batchExportProcessDefinitionByCodes(user, projectCode, processDefinitionIds, response);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testQueryProcessDefinitionVersions() {
|
||||
String projectName = "test";
|
||||
|
||||
long projectCode = 1L;
|
||||
Result resultMap = new Result();
|
||||
putMsg(resultMap, Status.SUCCESS);
|
||||
resultMap.setData(new PageInfo<ProcessDefinitionLog>(1, 10));
|
||||
Mockito.when(processDefinitionService.queryProcessDefinitionVersions(
|
||||
user
|
||||
, projectName
|
||||
, projectCode
|
||||
, 1
|
||||
, 10
|
||||
, 1))
|
||||
.thenReturn(resultMap);
|
||||
Result result = processDefinitionController.queryProcessDefinitionVersions(
|
||||
user
|
||||
, projectName
|
||||
, projectCode
|
||||
, 1
|
||||
, 10
|
||||
, 1);
|
||||
|
|
@ -409,31 +398,24 @@ public class ProcessDefinitionControllerTest {
|
|||
|
||||
@Test
|
||||
public void testSwitchProcessDefinitionVersion() {
|
||||
String projectName = "test";
|
||||
long projectCode = 1L;
|
||||
Map<String, Object> resultMap = new HashMap<>();
|
||||
putMsg(resultMap, Status.SUCCESS);
|
||||
Mockito.when(processDefinitionService.switchProcessDefinitionVersion(user, projectName, 1, 10)).thenReturn(resultMap);
|
||||
Result result = processDefinitionController.switchProcessDefinitionVersion(user, projectName, 1, 10);
|
||||
Mockito.when(processDefinitionService.switchProcessDefinitionVersion(user, projectCode, 1, 10)).thenReturn(resultMap);
|
||||
Result result = processDefinitionController.switchProcessDefinitionVersion(user, projectCode, 1, 10);
|
||||
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(), (int) result.getCode());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteProcessDefinitionVersion() {
|
||||
String projectName = "test";
|
||||
long projectCode = 1L;
|
||||
Map<String, Object> resultMap = new HashMap<>();
|
||||
putMsg(resultMap, Status.SUCCESS);
|
||||
Mockito.when(processDefinitionService.deleteByProcessDefinitionIdAndVersion(
|
||||
user
|
||||
, projectName
|
||||
, 1
|
||||
, 10))
|
||||
.thenReturn(resultMap);
|
||||
Mockito.when(processDefinitionService.deleteProcessDefinitionVersion(
|
||||
user, projectCode, 1, 10)).thenReturn(resultMap);
|
||||
Result result = processDefinitionController.deleteProcessDefinitionVersion(
|
||||
user
|
||||
, projectName
|
||||
, 1
|
||||
, 10);
|
||||
user, projectCode, 1, 10);
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(), (int) result.getCode());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ public class ProcessInstanceControllerTest extends AbstractControllerTest {
|
|||
@Test
|
||||
public void testQueryProcessInstanceList() throws Exception {
|
||||
MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
|
||||
paramsMap.add("processDefinitionId", "91");
|
||||
paramsMap.add("processDefineCode", "91");
|
||||
paramsMap.add("searchVal", "cxc");
|
||||
paramsMap.add("stateType", String.valueOf(ExecutionStatus.SUCCESS));
|
||||
paramsMap.add("host", "192.168.1.13");
|
||||
|
|
@ -51,144 +51,138 @@ public class ProcessInstanceControllerTest extends AbstractControllerTest {
|
|||
paramsMap.add("pageNo", "2");
|
||||
paramsMap.add("pageSize", "2");
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/{projectName}/instance/list-paging", "cxc_1113")
|
||||
.header("sessionId", sessionId)
|
||||
.params(paramsMap))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/{projectCode}/instance/list-paging", "cxc_1113")
|
||||
.header("sessionId", sessionId)
|
||||
.params(paramsMap))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertNotNull(result);
|
||||
Assert.assertTrue(result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(), result.getCode().intValue());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testQueryTaskListByProcessId() throws Exception {
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/{projectName}/instance/task-list-by-process-id", "cxc_1113")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.param("processInstanceId", "1203"))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/{projectCode}/instance/task-list-by-process-id", "cxc_1113")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.param("processInstanceId", "1203"))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertNotNull(result);
|
||||
Assert.assertTrue(result.isStatus(Status.PROJECT_NOT_FOUNT));
|
||||
Assert.assertEquals(Status.PROJECT_NOT_FOUNT.getCode(), result.getCode().intValue());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateProcessInstance() throws Exception {
|
||||
String json = "{\"globalParams\":[],\"tasks\":[{\"type\":\"SHELL\",\"id\":\"tasks-36196\",\"name\":\"ssh_test1\",\"params\":{\"resourceList\":[],\"localParams\":[],\"rawScript\":"
|
||||
+ "\"aa=\\\"1234\\\"\\necho ${aa}\"},\"desc\":\"\",\"runFlag\":\"NORMAL\",\"dependence\":{},\"maxRetryTimes\":\"0\",\"retryInterval\":\"1\",\"timeout\":{\"strategy\":\"\","
|
||||
+ "\"interval\":null,\"enable\":false},\"taskInstancePriority\":\"MEDIUM\",\"workerGroupId\":-1,\"preTasks\":[]}],\"tenantId\":-1,\"timeout\":0}";
|
||||
String json = "[{\"name\":\"\",\"pre_task_code\":0,\"pre_task_version\":0,\"post_task_code\":123456789,\"post_task_version\":1,"
|
||||
+ "\"condition_type\":0,\"condition_params\":\"{}\"},{\"name\":\"\",\"pre_task_code\":123456789,\"pre_task_version\":1,"
|
||||
+ "\"post_task_code\":123451234,\"post_task_version\":1,\"condition_type\":0,\"condition_params\":\"{}\"}]";
|
||||
|
||||
String locations = "{\"tasks-36196\":{\"name\":\"ssh_test1\",\"targetarr\":\"\",\"x\":141,\"y\":70}}";
|
||||
|
||||
MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
|
||||
paramsMap.add("processInstanceJson", json);
|
||||
paramsMap.add("taskRelationJson", json);
|
||||
paramsMap.add("processInstanceId", "91");
|
||||
paramsMap.add("scheduleTime", "2019-12-15 00:00:00");
|
||||
paramsMap.add("syncDefine", "false");
|
||||
paramsMap.add("locations", locations);
|
||||
paramsMap.add("connects", "[]");
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(post("/projects/{projectName}/instance/update", "cxc_1113")
|
||||
.header("sessionId", sessionId)
|
||||
.params(paramsMap))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
MvcResult mvcResult = mockMvc.perform(post("/projects/{projectCode}/instance/update", "cxc_1113")
|
||||
.header("sessionId", sessionId)
|
||||
.params(paramsMap))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertNotNull(result);
|
||||
Assert.assertTrue(result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(), result.getCode().intValue());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testQueryProcessInstanceById() throws Exception {
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/{projectName}/instance/select-by-id", "cxc_1113")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.param("processInstanceId", "1203"))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/{projectCode}/instance/select-by-id", "cxc_1113")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.param("processInstanceId", "1203"))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertNotNull(result);
|
||||
Assert.assertTrue(result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(), result.getCode().intValue());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testQuerySubProcessInstanceByTaskId() throws Exception {
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/{projectName}/instance/select-sub-process", "cxc_1113")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.param("taskId", "1203"))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/{projectCode}/instance/select-sub-process", "cxc_1113")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.param("taskId", "1203"))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertNotNull(result);
|
||||
Assert.assertTrue(result.isStatus(Status.TASK_INSTANCE_NOT_EXISTS));
|
||||
Assert.assertEquals(Status.TASK_INSTANCE_NOT_EXISTS.getCode(), result.getCode().intValue());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testQueryParentInstanceBySubId() throws Exception {
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/{projectName}/instance/select-parent-process", "cxc_1113")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.param("subId", "1204"))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/{projectCode}/instance/select-parent-process", "cxc_1113")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.param("subId", "1204"))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertNotNull(result);
|
||||
Assert.assertTrue(result.isStatus(Status.PROCESS_INSTANCE_NOT_SUB_PROCESS_INSTANCE));
|
||||
Assert.assertEquals(Status.PROCESS_INSTANCE_NOT_SUB_PROCESS_INSTANCE.getCode(), result.getCode().intValue());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testViewVariables() throws Exception {
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/{projectName}/instance/view-variables", "cxc_1113")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.param("processInstanceId", "1204"))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/{projectCode}/instance/view-variables", "cxc_1113")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.param("processInstanceId", "1204"))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertNotNull(result);
|
||||
Assert.assertTrue(result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(), result.getCode().intValue());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteProcessInstanceById() throws Exception {
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/{projectName}/instance/delete", "cxc_1113")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.param("processInstanceId", "1204"))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/{projectCode}/instance/delete", "cxc_1113")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.param("processInstanceId", "1204"))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertNotNull(result);
|
||||
Assert.assertTrue(result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(), result.getCode().intValue());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBatchDeleteProcessInstanceByIds() throws Exception {
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/{projectName}/instance/batch-delete", "cxc_1113")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.param("processInstanceIds", "1205,1206"))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/{projectCode}/instance/batch-delete", "cxc_1113")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.param("processInstanceIds", "1205,1206"))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertNotNull(result);
|
||||
Assert.assertTrue(result.isStatus(Status.DELETE_PROCESS_INSTANCE_BY_ID_ERROR));
|
||||
Assert.assertEquals(Status.DELETE_PROCESS_INSTANCE_BY_ID_ERROR.getCode(), result.getCode().intValue());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,220 +17,138 @@
|
|||
|
||||
package org.apache.dolphinscheduler.api.controller;
|
||||
|
||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
|
||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
||||
|
||||
import org.apache.dolphinscheduler.api.enums.Status;
|
||||
import org.apache.dolphinscheduler.api.service.impl.ProjectServiceImpl;
|
||||
import org.apache.dolphinscheduler.api.utils.PageInfo;
|
||||
import org.apache.dolphinscheduler.api.utils.Result;
|
||||
import org.apache.dolphinscheduler.common.utils.JSONUtils;
|
||||
import org.apache.dolphinscheduler.common.Constants;
|
||||
import org.apache.dolphinscheduler.common.enums.UserType;
|
||||
import org.apache.dolphinscheduler.dao.entity.Project;
|
||||
import org.apache.dolphinscheduler.dao.entity.Resource;
|
||||
import org.apache.dolphinscheduler.dao.entity.User;
|
||||
import org.apache.dolphinscheduler.dao.mapper.ProjectMapper;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.junit.After;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.test.web.servlet.MvcResult;
|
||||
import org.springframework.util.LinkedMultiValueMap;
|
||||
import org.springframework.util.MultiValueMap;
|
||||
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
/**
|
||||
* project controller test
|
||||
*/
|
||||
public class ProjectControllerTest extends AbstractControllerTest {
|
||||
@RunWith(MockitoJUnitRunner.Silent.class)
|
||||
public class ProjectControllerTest {
|
||||
|
||||
private static Logger logger = LoggerFactory.getLogger(ProjectControllerTest.class);
|
||||
@InjectMocks
|
||||
private ProjectController projectController;
|
||||
|
||||
private String projectId;
|
||||
@Mock
|
||||
private ProjectServiceImpl projectService;
|
||||
|
||||
@Mock
|
||||
private ProjectMapper projectMapper;
|
||||
|
||||
protected User user;
|
||||
|
||||
@Before
|
||||
public void before() throws Exception {
|
||||
projectId = testCreateProject("project_test1", "the test project");
|
||||
}
|
||||
|
||||
@After
|
||||
public void after() throws Exception {
|
||||
testDeleteProject(projectId);
|
||||
}
|
||||
|
||||
private String testCreateProject(String projectName, String description) throws Exception {
|
||||
|
||||
MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
|
||||
paramsMap.add("projectName",projectName);
|
||||
paramsMap.add("description",description);
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(post("/projects/create")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.params(paramsMap))
|
||||
.andExpect(status().isCreated())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), new TypeReference<Result<String>>() {});
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertNotNull(result.getData());
|
||||
logger.info("create project return result:{}", mvcResult.getResponse().getContentAsString());
|
||||
|
||||
return (String)result.getData();
|
||||
public void before() {
|
||||
User loginUser = new User();
|
||||
loginUser.setId(1);
|
||||
loginUser.setUserType(UserType.GENERAL_USER);
|
||||
loginUser.setUserName("admin");
|
||||
user = loginUser;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateProject() throws Exception {
|
||||
|
||||
MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
|
||||
paramsMap.add("projectId", projectId);
|
||||
paramsMap.add("projectName","project_test_update");
|
||||
paramsMap.add("desc","the test project update");
|
||||
paramsMap.add("userName", "the project owner");
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(post("/projects/update")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.params(paramsMap))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isStatus(Status.USER_NOT_EXIST));
|
||||
logger.info("update project return result:{}", mvcResult.getResponse().getContentAsString());
|
||||
public void testUpdateProject() {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.SUCCESS);
|
||||
result.put("projectId", 1);
|
||||
|
||||
long projectCode = 1L;
|
||||
String projectName = "test";
|
||||
String desc = "";
|
||||
String userName = "jack";
|
||||
Mockito.when(projectService.update(user, projectCode, projectName, desc, userName)).thenReturn(result);
|
||||
Result response = projectController.updateProject(user, projectCode, projectName, desc, userName);
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(), response.getCode().intValue());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testQueryProjectById() throws Exception {
|
||||
|
||||
MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
|
||||
paramsMap.add("projectId", projectId);
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/query-by-id")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.params(paramsMap))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
logger.info("query project by id :{}, return result:{}", projectId, mvcResult.getResponse().getContentAsString());
|
||||
|
||||
public void testQueryProjectByCode() {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.SUCCESS);
|
||||
long projectCode = 1L;
|
||||
Mockito.when(projectMapper.queryByCode(projectCode)).thenReturn(getProject());
|
||||
Mockito.when(projectService.queryByCode(user, projectCode)).thenReturn(result);
|
||||
Result response = projectController.queryProjectByCode(user, projectCode);
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(), response.getCode().intValue());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testQueryProjectListPaging() throws Exception {
|
||||
public void testQueryProjectListPaging() {
|
||||
int pageNo = 1;
|
||||
int pageSize = 10;
|
||||
String searchVal = "";
|
||||
|
||||
MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
|
||||
paramsMap.add("searchVal","test");
|
||||
paramsMap.add("pageSize","2");
|
||||
paramsMap.add("pageNo","2");
|
||||
Result result = Result.success(new PageInfo<Resource>(1, 10));
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/list-paging")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.params(paramsMap))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
Mockito.when(projectService.queryProjectListPaging(user, pageSize, pageNo, searchVal)).thenReturn(result);
|
||||
Result response = projectController.queryProjectListPaging(user, searchVal, pageSize, pageNo);
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
logger.info("query list-paging project return result:{}", mvcResult.getResponse().getContentAsString());
|
||||
Assert.assertTrue(response != null && response.isSuccess());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testQueryUnauthorizedProject() throws Exception {
|
||||
|
||||
MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
|
||||
paramsMap.add("userId","2");
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/unauth-project")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.params(paramsMap))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
logger.info("query unauth project return result:{}", mvcResult.getResponse().getContentAsString());
|
||||
public void testQueryUnauthorizedProject() {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.SUCCESS);
|
||||
Mockito.when(projectService.queryUnauthorizedProject(user, 2)).thenReturn(result);
|
||||
Result response = projectController.queryUnauthorizedProject(user, 2);
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(), response.getCode().intValue());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testQueryAuthorizedProject() throws Exception {
|
||||
|
||||
MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
|
||||
paramsMap.add("userId",String.valueOf(user.getId()));
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/authed-project")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.params(paramsMap))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
logger.info("query authed project return result:{}", mvcResult.getResponse().getContentAsString());
|
||||
|
||||
public void testQueryAuthorizedProject() {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.SUCCESS);
|
||||
Mockito.when(projectService.queryAuthorizedProject(user, 2)).thenReturn(result);
|
||||
Result response = projectController.queryAuthorizedProject(user, 2);
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(), response.getCode().intValue());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testQueryAllProjectList() throws Exception {
|
||||
|
||||
MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/query-project-list")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.params(paramsMap))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
logger.info("query all project return result:{}", mvcResult.getResponse().getContentAsString());
|
||||
|
||||
public void testQueryAllProjectList() {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.SUCCESS);
|
||||
Mockito.when(projectService.queryAllProjectList()).thenReturn(result);
|
||||
Result response = projectController.queryAllProjectList(user);
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(), response.getCode().intValue());
|
||||
}
|
||||
|
||||
@Ignore
|
||||
@Test
|
||||
public void testImportProcessDefinition() throws Exception {
|
||||
|
||||
MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
|
||||
paramsMap.add("file","test");
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(post("/projects/import-definition")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.params(paramsMap))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.TEXT_PLAIN))
|
||||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isStatus(Status.IMPORT_PROCESS_DEFINE_ERROR));
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
private Project getProject() {
|
||||
Project project = new Project();
|
||||
project.setCode(1L);
|
||||
project.setId(1);
|
||||
project.setName("test");
|
||||
project.setUserId(1);
|
||||
return project;
|
||||
}
|
||||
|
||||
private void testDeleteProject(String projectId) throws Exception {
|
||||
|
||||
MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
|
||||
paramsMap.add("projectId", projectId);
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/delete")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.params(paramsMap))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
logger.info("delete project return result:{}", mvcResult.getResponse().getContentAsString());
|
||||
private void putMsg(Map<String, Object> result, Status status, Object... statusParams) {
|
||||
result.put(Constants.STATUS, status);
|
||||
if (statusParams != null && statusParams.length > 0) {
|
||||
result.put(Constants.MSG, MessageFormat.format(status.getMsg(), statusParams));
|
||||
} else {
|
||||
result.put(Constants.MSG, status.getMsg());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ package org.apache.dolphinscheduler.api.controller;
|
|||
|
||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
|
||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
|
||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put;
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
||||
|
||||
|
|
@ -47,14 +48,14 @@ public class QueueControllerTest extends AbstractControllerTest {
|
|||
@Test
|
||||
public void testQueryList() throws Exception {
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(get("/queue/list")
|
||||
MvcResult mvcResult = mockMvc.perform(get("/queues/list")
|
||||
.header(SESSION_ID, sessionId))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info("query list queue return result:{}", mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -66,14 +67,14 @@ public class QueueControllerTest extends AbstractControllerTest {
|
|||
paramsMap.add("pageNo","1");
|
||||
paramsMap.add("pageSize","20");
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(get("/queue/list-paging")
|
||||
MvcResult mvcResult = mockMvc.perform(get("/queues")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.params(paramsMap))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info("query list-paging queue return result:{}", mvcResult.getResponse().getContentAsString());
|
||||
|
||||
}
|
||||
|
|
@ -85,14 +86,14 @@ public class QueueControllerTest extends AbstractControllerTest {
|
|||
paramsMap.add("queue", QUEUE_CREATE_STRING);
|
||||
paramsMap.add("queueName","root.queue1");
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(post("/queue/create")
|
||||
MvcResult mvcResult = mockMvc.perform(post("/queues")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.params(paramsMap))
|
||||
.andExpect(status().isCreated())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(), result.getCode().intValue());
|
||||
logger.info("create queue return result:{}", mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -104,14 +105,14 @@ public class QueueControllerTest extends AbstractControllerTest {
|
|||
paramsMap.add("queue","queue2");
|
||||
paramsMap.add("queueName","root.queue2");
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(post("/queue/update")
|
||||
MvcResult mvcResult = mockMvc.perform(put("/queues/{id}", 1)
|
||||
.header(SESSION_ID, sessionId)
|
||||
.params(paramsMap))
|
||||
.andExpect(status().isCreated())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info("update queue return result:{}", mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -123,28 +124,28 @@ public class QueueControllerTest extends AbstractControllerTest {
|
|||
paramsMap.add("queue",QUEUE_CREATE_STRING);
|
||||
paramsMap.add("queueName","queue.name");
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(post("/queue/verify-queue")
|
||||
MvcResult mvcResult = mockMvc.perform(post("/queues/verify")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.params(paramsMap))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result.isStatus(Status.QUEUE_VALUE_EXIST));
|
||||
Assert.assertEquals(Status.QUEUE_VALUE_EXIST.getCode(),result.getCode().intValue());
|
||||
|
||||
// success
|
||||
paramsMap.clear();
|
||||
paramsMap.add("queue","ait123");
|
||||
paramsMap.add("queueName","aitName");
|
||||
|
||||
mvcResult = mockMvc.perform(post("/queue/verify-queue")
|
||||
mvcResult = mockMvc.perform(post("/queues/verify")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.params(paramsMap))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
logger.info("verify queue return result:{}", mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ public class ResourcesControllerTest extends AbstractControllerTest {
|
|||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -77,7 +77,7 @@ public class ResourcesControllerTest extends AbstractControllerTest {
|
|||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -97,7 +97,7 @@ public class ResourcesControllerTest extends AbstractControllerTest {
|
|||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
|
||||
Assert.assertTrue(result != null && result.isStatus(Status.TENANT_NOT_EXIST));
|
||||
Assert.assertEquals(Status.TENANT_NOT_EXIST.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -118,7 +118,7 @@ public class ResourcesControllerTest extends AbstractControllerTest {
|
|||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -141,7 +141,7 @@ public class ResourcesControllerTest extends AbstractControllerTest {
|
|||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
|
||||
Assert.assertTrue(result != null && result.isStatus(Status.TENANT_NOT_EXIST));
|
||||
Assert.assertEquals(Status.TENANT_NOT_EXIST.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -161,7 +161,7 @@ public class ResourcesControllerTest extends AbstractControllerTest {
|
|||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
|
||||
Assert.assertTrue(result != null && result.isStatus(Status.TENANT_NOT_EXIST));
|
||||
Assert.assertEquals(Status.TENANT_NOT_EXIST.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -180,7 +180,7 @@ public class ResourcesControllerTest extends AbstractControllerTest {
|
|||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
|
||||
Assert.assertTrue(result != null && result.isStatus(Status.TENANT_NOT_EXIST));
|
||||
Assert.assertEquals(Status.TENANT_NOT_EXIST.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -205,7 +205,7 @@ public class ResourcesControllerTest extends AbstractControllerTest {
|
|||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
|
||||
Assert.assertTrue(result != null && result.isStatus(Status.TENANT_NOT_EXIST));
|
||||
Assert.assertEquals(Status.TENANT_NOT_EXIST.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -224,7 +224,7 @@ public class ResourcesControllerTest extends AbstractControllerTest {
|
|||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
|
||||
Assert.assertTrue(result != null && result.isStatus(Status.TENANT_NOT_EXIST));
|
||||
Assert.assertEquals(Status.TENANT_NOT_EXIST.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -250,7 +250,7 @@ public class ResourcesControllerTest extends AbstractControllerTest {
|
|||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
|
||||
Assert.assertTrue(result != null && result.isStatus(Status.TENANT_NOT_EXIST));
|
||||
Assert.assertEquals(Status.TENANT_NOT_EXIST.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -270,7 +270,7 @@ public class ResourcesControllerTest extends AbstractControllerTest {
|
|||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -288,7 +288,7 @@ public class ResourcesControllerTest extends AbstractControllerTest {
|
|||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -306,7 +306,7 @@ public class ResourcesControllerTest extends AbstractControllerTest {
|
|||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -324,7 +324,7 @@ public class ResourcesControllerTest extends AbstractControllerTest {
|
|||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -342,7 +342,7 @@ public class ResourcesControllerTest extends AbstractControllerTest {
|
|||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -360,7 +360,7 @@ public class ResourcesControllerTest extends AbstractControllerTest {
|
|||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -378,7 +378,7 @@ public class ResourcesControllerTest extends AbstractControllerTest {
|
|||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -396,7 +396,7 @@ public class ResourcesControllerTest extends AbstractControllerTest {
|
|||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -412,7 +412,7 @@ public class ResourcesControllerTest extends AbstractControllerTest {
|
|||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,21 +17,32 @@
|
|||
|
||||
package org.apache.dolphinscheduler.api.controller;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.isA;
|
||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete;
|
||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
|
||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
|
||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put;
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
||||
|
||||
import org.apache.dolphinscheduler.api.enums.Status;
|
||||
import org.apache.dolphinscheduler.api.service.SchedulerService;
|
||||
import org.apache.dolphinscheduler.api.utils.PageInfo;
|
||||
import org.apache.dolphinscheduler.api.utils.Result;
|
||||
import org.apache.dolphinscheduler.common.enums.FailureStrategy;
|
||||
import org.apache.dolphinscheduler.common.enums.Priority;
|
||||
import org.apache.dolphinscheduler.common.enums.ReleaseState;
|
||||
import org.apache.dolphinscheduler.common.enums.WarningType;
|
||||
import org.apache.dolphinscheduler.common.utils.JSONUtils;
|
||||
import org.apache.dolphinscheduler.dao.entity.Resource;
|
||||
import org.apache.dolphinscheduler.dao.entity.User;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.mockito.Mockito;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.boot.test.mock.mockito.MockBean;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.test.web.servlet.MvcResult;
|
||||
import org.springframework.util.LinkedMultiValueMap;
|
||||
|
|
@ -44,10 +55,13 @@ public class SchedulerControllerTest extends AbstractControllerTest {
|
|||
|
||||
private static Logger logger = LoggerFactory.getLogger(SchedulerControllerTest.class);
|
||||
|
||||
@MockBean
|
||||
private SchedulerService schedulerService;
|
||||
|
||||
@Test
|
||||
public void testCreateSchedule() throws Exception {
|
||||
MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
|
||||
paramsMap.add("processDefinitionId","40");
|
||||
paramsMap.add("processDefinitionCode","40");
|
||||
paramsMap.add("schedule","{'startTime':'2019-12-16 00:00:00','endTime':'2019-12-17 00:00:00','crontab':'0 0 6 * * ? *'}");
|
||||
paramsMap.add("warningType",String.valueOf(WarningType.NONE));
|
||||
paramsMap.add("warningGroupId","1");
|
||||
|
|
@ -57,7 +71,11 @@ public class SchedulerControllerTest extends AbstractControllerTest {
|
|||
paramsMap.add("workerGroupId","1");
|
||||
paramsMap.add("processInstancePriority",String.valueOf(Priority.HIGH));
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(post("/projects/{projectName}/schedule/create","cxc_1113")
|
||||
Mockito.when(schedulerService.insertSchedule(isA(User.class), isA(Long.class), isA(Long.class),
|
||||
isA(String.class), isA(WarningType.class), isA(int.class), isA(FailureStrategy.class),
|
||||
isA(Priority.class), isA(String.class), isA(Long.class))).thenReturn(success());
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(post("/projects/{projectCode}/schedules/",123)
|
||||
.header(SESSION_ID, sessionId)
|
||||
.params(paramsMap))
|
||||
.andExpect(status().isCreated())
|
||||
|
|
@ -65,7 +83,7 @@ public class SchedulerControllerTest extends AbstractControllerTest {
|
|||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -82,7 +100,11 @@ public class SchedulerControllerTest extends AbstractControllerTest {
|
|||
paramsMap.add("workerGroupId","1");
|
||||
paramsMap.add("processInstancePriority",String.valueOf(Priority.HIGH));
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(post("/projects/{projectName}/schedule/update","cxc_1113")
|
||||
Mockito.when(schedulerService.updateSchedule(isA(User.class), isA(Long.class), isA(Integer.class),
|
||||
isA(String.class), isA(WarningType.class), isA(Integer.class), isA(FailureStrategy.class),
|
||||
isA(Priority.class), isA(String.class), isA(Long.class))).thenReturn(success());
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(put("/projects/{projectCode}/schedules/{id}",123, 37)
|
||||
.header(SESSION_ID, sessionId)
|
||||
.params(paramsMap))
|
||||
.andExpect(status().isOk())
|
||||
|
|
@ -90,7 +112,7 @@ public class SchedulerControllerTest extends AbstractControllerTest {
|
|||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -99,7 +121,10 @@ public class SchedulerControllerTest extends AbstractControllerTest {
|
|||
MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
|
||||
paramsMap.add("id","37");
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(post("/projects/{projectName}/schedule/online","cxc_1113")
|
||||
Mockito.when(schedulerService.setScheduleState(isA(User.class), isA(Long.class), isA(Integer.class),
|
||||
isA(ReleaseState.class))).thenReturn(success());
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(post("/projects/{projectCode}/schedules/{id}/online",123, 37)
|
||||
.header(SESSION_ID, sessionId)
|
||||
.params(paramsMap))
|
||||
.andExpect(status().isOk())
|
||||
|
|
@ -107,7 +132,7 @@ public class SchedulerControllerTest extends AbstractControllerTest {
|
|||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -116,7 +141,10 @@ public class SchedulerControllerTest extends AbstractControllerTest {
|
|||
MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
|
||||
paramsMap.add("id","28");
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(post("/projects/{projectName}/schedule/offline","cxc_1113")
|
||||
Mockito.when(schedulerService.setScheduleState(isA(User.class), isA(Long.class), isA(Integer.class),
|
||||
isA(ReleaseState.class))).thenReturn(success());
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(post("/projects/{projectCode}/schedules/{id}/offline",123, 28)
|
||||
.header(SESSION_ID, sessionId)
|
||||
.params(paramsMap))
|
||||
.andExpect(status().isOk())
|
||||
|
|
@ -124,19 +152,25 @@ public class SchedulerControllerTest extends AbstractControllerTest {
|
|||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testQueryScheduleListPaging() throws Exception {
|
||||
MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
|
||||
paramsMap.add("processDefinitionId","40");
|
||||
paramsMap.add("processDefinitionCode","40");
|
||||
paramsMap.add("searchVal","test");
|
||||
paramsMap.add("pageNo","1");
|
||||
paramsMap.add("pageSize","30");
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/{projectName}/schedule/list-paging","cxc_1113")
|
||||
PageInfo<Resource> pageInfo = new PageInfo<>(1, 10);
|
||||
Result mockResult = Result.success(pageInfo);
|
||||
|
||||
Mockito.when(schedulerService.querySchedule(isA(User.class), isA(Long.class), isA(Long.class),
|
||||
isA(String.class), isA(Integer.class), isA(Integer.class))).thenReturn(mockResult);
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/{projectCode}/schedules/",123)
|
||||
.header(SESSION_ID, sessionId)
|
||||
.params(paramsMap))
|
||||
.andExpect(status().isOk())
|
||||
|
|
@ -144,26 +178,31 @@ public class SchedulerControllerTest extends AbstractControllerTest {
|
|||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testQueryScheduleList() throws Exception {
|
||||
MvcResult mvcResult = mockMvc.perform(post("/projects/{projectName}/schedule/list","cxc_1113")
|
||||
Mockito.when(schedulerService.queryScheduleList(isA(User.class), isA(Long.class))).thenReturn(success());
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(post("/projects/{projectCode}/schedules/list",123)
|
||||
.header(SESSION_ID, sessionId))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPreviewSchedule() throws Exception {
|
||||
MvcResult mvcResult = mockMvc.perform(post("/projects/{projectName}/schedule/preview","cxc_1113")
|
||||
Mockito.when(schedulerService.previewSchedule(isA(User.class), isA(String.class)))
|
||||
.thenReturn(success());
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(post("/projects/{projectCode}/schedules/preview",123)
|
||||
.header(SESSION_ID, sessionId)
|
||||
.param("schedule","{'startTime':'2019-06-10 00:00:00','endTime':'2019-06-13 00:00:00','crontab':'0 0 3/6 * * ? *'}"))
|
||||
.andExpect(status().isCreated())
|
||||
|
|
@ -171,7 +210,7 @@ public class SchedulerControllerTest extends AbstractControllerTest {
|
|||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -180,7 +219,10 @@ public class SchedulerControllerTest extends AbstractControllerTest {
|
|||
MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
|
||||
paramsMap.add("scheduleId","37");
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/{projectName}/schedule/delete","cxc_1113")
|
||||
Mockito.when(schedulerService.deleteScheduleById(isA(User.class), isA(Long.class), isA(Integer.class)))
|
||||
.thenReturn(success());
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(delete("/projects/{projectCode}/schedules/{id}",123, 37)
|
||||
.header(SESSION_ID, sessionId)
|
||||
.params(paramsMap))
|
||||
.andExpect(status().isOk())
|
||||
|
|
@ -188,7 +230,7 @@ public class SchedulerControllerTest extends AbstractControllerTest {
|
|||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ package org.apache.dolphinscheduler.api.controller;
|
|||
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.anyInt;
|
||||
import static org.mockito.ArgumentMatchers.anyString;
|
||||
import static org.mockito.ArgumentMatchers.anyLong;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.when;
|
||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
|
||||
|
|
@ -72,9 +72,9 @@ public class TaskInstanceControllerTest extends AbstractControllerTest {
|
|||
result.setCode(Status.SUCCESS.getCode());
|
||||
result.setMsg(Status.SUCCESS.getMsg());
|
||||
|
||||
when(taskInstanceService.queryTaskListPaging(any(), eq(""), eq(1), eq(""), eq(""), eq(""),any(), any(),
|
||||
when(taskInstanceService.queryTaskListPaging(any(), eq(1L), eq(1), eq(""), eq(""), eq(""),any(), any(),
|
||||
eq(""), Mockito.any(), eq("192.168.xx.xx"), any(), any())).thenReturn(result);
|
||||
Result taskResult = taskInstanceController.queryTaskListPaging(null, "", 1, "", "",
|
||||
Result taskResult = taskInstanceController.queryTaskListPaging(null, 1L, 1, "", "",
|
||||
"", "", ExecutionStatus.SUCCESS,"192.168.xx.xx", "2020-01-01 00:00:00", "2020-01-02 00:00:00",pageNo, pageSize);
|
||||
Assert.assertEquals(Integer.valueOf(Status.SUCCESS.getCode()), taskResult.getCode());
|
||||
}
|
||||
|
|
@ -88,7 +88,7 @@ public class TaskInstanceControllerTest extends AbstractControllerTest {
|
|||
Map<String, Object> mockResult = new HashMap<>(5);
|
||||
mockResult.put(Constants.STATUS, Status.SUCCESS);
|
||||
mockResult.put(Constants.MSG, Status.SUCCESS.getMsg());
|
||||
when(taskInstanceService.forceTaskSuccess(any(User.class), anyString(), anyInt())).thenReturn(mockResult);
|
||||
when(taskInstanceService.forceTaskSuccess(any(User.class), anyLong(), anyInt())).thenReturn(mockResult);
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(post("/projects/{projectName}/task-instance/force-success", "cxc_1113")
|
||||
.header(SESSION_ID, sessionId)
|
||||
|
|
@ -98,7 +98,7 @@ public class TaskInstanceControllerTest extends AbstractControllerTest {
|
|||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(), result.getCode().intValue());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,8 +17,10 @@
|
|||
|
||||
package org.apache.dolphinscheduler.api.controller;
|
||||
|
||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete;
|
||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
|
||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
|
||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put;
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
||||
|
||||
|
|
@ -49,7 +51,7 @@ public class TenantControllerTest extends AbstractControllerTest {
|
|||
paramsMap.add("queueId","1");
|
||||
paramsMap.add("description","tenant description");
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(post("/tenant/create")
|
||||
MvcResult mvcResult = mockMvc.perform(post("/tenants/")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.params(paramsMap))
|
||||
.andExpect(status().isCreated())
|
||||
|
|
@ -57,7 +59,7 @@ public class TenantControllerTest extends AbstractControllerTest {
|
|||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
|
||||
}
|
||||
|
|
@ -69,7 +71,7 @@ public class TenantControllerTest extends AbstractControllerTest {
|
|||
paramsMap.add("searchVal","tenant");
|
||||
paramsMap.add("pageSize","30");
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(get("/tenant/list-paging")
|
||||
MvcResult mvcResult = mockMvc.perform(get("/tenants/")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.params(paramsMap))
|
||||
.andExpect(status().isOk())
|
||||
|
|
@ -77,7 +79,7 @@ public class TenantControllerTest extends AbstractControllerTest {
|
|||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -89,7 +91,7 @@ public class TenantControllerTest extends AbstractControllerTest {
|
|||
paramsMap.add("queueId","1");
|
||||
paramsMap.add("description","tenant description");
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(post("/tenant/update")
|
||||
MvcResult mvcResult = mockMvc.perform(put("/tenants/{id}", 9)
|
||||
.header(SESSION_ID, sessionId)
|
||||
.params(paramsMap))
|
||||
.andExpect(status().isOk())
|
||||
|
|
@ -97,7 +99,7 @@ public class TenantControllerTest extends AbstractControllerTest {
|
|||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isStatus(Status.TENANT_NOT_EXIST));
|
||||
Assert.assertEquals(Status.TENANT_NOT_EXIST.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
|
||||
}
|
||||
|
|
@ -107,7 +109,7 @@ public class TenantControllerTest extends AbstractControllerTest {
|
|||
MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
|
||||
paramsMap.add("tenantCode","cxc_test");
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(get("/tenant/verify-tenant-code")
|
||||
MvcResult mvcResult = mockMvc.perform(get("/tenants/verify-code")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.params(paramsMap))
|
||||
.andExpect(status().isOk())
|
||||
|
|
@ -115,7 +117,7 @@ public class TenantControllerTest extends AbstractControllerTest {
|
|||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
|
||||
}
|
||||
|
|
@ -125,7 +127,7 @@ public class TenantControllerTest extends AbstractControllerTest {
|
|||
MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
|
||||
paramsMap.add("tenantCode", "hayden");
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(get("/tenant/verify-tenant-code")
|
||||
MvcResult mvcResult = mockMvc.perform(get("/tenants/verify-code")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.params(paramsMap))
|
||||
.andExpect(status().isOk())
|
||||
|
|
@ -133,7 +135,7 @@ public class TenantControllerTest extends AbstractControllerTest {
|
|||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isStatus(Status.OS_TENANT_CODE_EXIST));
|
||||
Assert.assertEquals(Status.OS_TENANT_CODE_EXIST.getCode(), result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
|
||||
}
|
||||
|
|
@ -141,14 +143,14 @@ public class TenantControllerTest extends AbstractControllerTest {
|
|||
@Test
|
||||
public void testQueryTenantlist() throws Exception {
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(get("/tenant/list")
|
||||
MvcResult mvcResult = mockMvc.perform(get("/tenants/list")
|
||||
.header(SESSION_ID, sessionId))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
|
@ -158,14 +160,14 @@ public class TenantControllerTest extends AbstractControllerTest {
|
|||
MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
|
||||
paramsMap.add("id","64");
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(post("/tenant/delete")
|
||||
MvcResult mvcResult = mockMvc.perform(delete("/tenants/{id}", 64)
|
||||
.header(SESSION_ID, sessionId)
|
||||
.params(paramsMap))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isStatus(Status.TENANT_NOT_EXIST));
|
||||
Assert.assertEquals(Status.TENANT_NOT_EXIST.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ import static org.springframework.test.web.servlet.request.MockMvcRequestBuilder
|
|||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
||||
|
||||
import org.apache.dolphinscheduler.api.enums.Status;
|
||||
import org.apache.dolphinscheduler.api.utils.Result;
|
||||
import org.apache.dolphinscheduler.common.utils.JSONUtils;
|
||||
|
||||
|
|
@ -62,7 +63,7 @@ public class UsersControllerTest extends AbstractControllerTest {
|
|||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -85,7 +86,7 @@ public class UsersControllerTest extends AbstractControllerTest {
|
|||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -103,7 +104,7 @@ public class UsersControllerTest extends AbstractControllerTest {
|
|||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -121,7 +122,7 @@ public class UsersControllerTest extends AbstractControllerTest {
|
|||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -139,7 +140,7 @@ public class UsersControllerTest extends AbstractControllerTest {
|
|||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -157,7 +158,7 @@ public class UsersControllerTest extends AbstractControllerTest {
|
|||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -170,7 +171,7 @@ public class UsersControllerTest extends AbstractControllerTest {
|
|||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -187,7 +188,7 @@ public class UsersControllerTest extends AbstractControllerTest {
|
|||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -204,7 +205,7 @@ public class UsersControllerTest extends AbstractControllerTest {
|
|||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -221,7 +222,7 @@ public class UsersControllerTest extends AbstractControllerTest {
|
|||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -234,7 +235,7 @@ public class UsersControllerTest extends AbstractControllerTest {
|
|||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -251,7 +252,7 @@ public class UsersControllerTest extends AbstractControllerTest {
|
|||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -265,7 +266,7 @@ public class UsersControllerTest extends AbstractControllerTest {
|
|||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
logger.info(mvcResult.getResponse().getContentAsString());
|
||||
}
|
||||
|
||||
|
|
@ -284,7 +285,7 @@ public class UsersControllerTest extends AbstractControllerTest {
|
|||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -300,7 +301,7 @@ public class UsersControllerTest extends AbstractControllerTest {
|
|||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -318,6 +319,6 @@ public class UsersControllerTest extends AbstractControllerTest {
|
|||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertTrue(result != null && result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,23 +21,17 @@ import org.apache.dolphinscheduler.api.enums.Status;
|
|||
import org.apache.dolphinscheduler.api.service.impl.WorkFlowLineageServiceImpl;
|
||||
import org.apache.dolphinscheduler.api.utils.Result;
|
||||
import org.apache.dolphinscheduler.common.Constants;
|
||||
import org.apache.dolphinscheduler.dao.entity.Project;
|
||||
import org.apache.dolphinscheduler.dao.mapper.ProjectMapper;
|
||||
import org.apache.dolphinscheduler.service.bean.SpringApplicationContext;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.Mockito;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
|
||||
/**
|
||||
* work flow lineage controller test
|
||||
|
|
@ -50,53 +44,30 @@ public class WorkFlowLineageControllerTest extends AbstractControllerTest {
|
|||
@Mock
|
||||
private WorkFlowLineageServiceImpl workFlowLineageService;
|
||||
|
||||
@Before
|
||||
public void init() {
|
||||
ApplicationContext applicationContext = Mockito.mock(ApplicationContext.class);
|
||||
SpringApplicationContext springApplicationContext = new SpringApplicationContext();
|
||||
springApplicationContext.setApplicationContext(applicationContext);
|
||||
|
||||
ProjectMapper projectMapper = Mockito.mock(ProjectMapper.class);
|
||||
Mockito.when(applicationContext.getBean(ProjectMapper.class)).thenReturn(projectMapper);
|
||||
Project project = new Project();
|
||||
project.setId(1);
|
||||
project.setCode(1L);
|
||||
Mockito.when(projectMapper.selectById(1)).thenReturn(project);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testQueryWorkFlowLineageByName() {
|
||||
int projectId = 1;
|
||||
long projectCode = 1L;
|
||||
String searchVal = "test";
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.SUCCESS);
|
||||
result.put(Constants.DATA_LIST, 1);
|
||||
Mockito.when(workFlowLineageService.queryWorkFlowLineageByName(searchVal, projectId)).thenReturn(result);
|
||||
Result response = workFlowLineageController.queryWorkFlowLineageByName(user, projectId, searchVal);
|
||||
Assert.assertTrue(response.isSuccess());
|
||||
}
|
||||
|
||||
private void putMsg(Map<String, Object> result, Status status, Object... statusParams) {
|
||||
result.put(Constants.STATUS, status);
|
||||
if (statusParams != null && statusParams.length > 0) {
|
||||
result.put(Constants.MSG, MessageFormat.format(status.getMsg(), statusParams));
|
||||
} else {
|
||||
result.put(Constants.MSG, status.getMsg());
|
||||
}
|
||||
Mockito.when(workFlowLineageService.queryWorkFlowLineageByName(searchVal, projectCode)).thenReturn(result);
|
||||
Result response = workFlowLineageController.queryWorkFlowLineageByName(user, projectCode, searchVal);
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(), response.getCode().intValue());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testQueryWorkFlowLineageByIds() {
|
||||
int projectId = 1;
|
||||
long projectCode = 1L;
|
||||
String ids = "1";
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.SUCCESS);
|
||||
result.put(Constants.DATA_LIST, 1);
|
||||
Set<Integer> idSet = new HashSet<>();
|
||||
idSet.add(1);
|
||||
Mockito.when(workFlowLineageService.queryWorkFlowLineageByIds(idSet, projectId)).thenReturn(result);
|
||||
Result response = workFlowLineageController.queryWorkFlowLineageByIds(user, projectId, ids);
|
||||
Assert.assertTrue(response.isSuccess());
|
||||
Mockito.when(workFlowLineageService.queryWorkFlowLineageByIds(idSet, projectCode)).thenReturn(result);
|
||||
Result response = workFlowLineageController.queryWorkFlowLineageByIds(user, projectCode, ids);
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(), response.getCode().intValue());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,11 +25,8 @@ import org.junit.Assert;
|
|||
import org.junit.Test;
|
||||
import org.springframework.web.method.HandlerMethod;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
public class ApiExceptionHandlerTest {
|
||||
|
||||
@Test
|
||||
|
|
@ -39,16 +36,16 @@ public class ApiExceptionHandlerTest {
|
|||
Method method = controller.getClass().getMethod("createToken", User.class, int.class, String.class, String.class);
|
||||
HandlerMethod hm = new HandlerMethod(controller, method);
|
||||
Result result = handler.exceptionHandler(new RuntimeException("test exception"), hm);
|
||||
Assert.assertTrue(result.isStatus(Status.CREATE_ACCESS_TOKEN_ERROR));
|
||||
Assert.assertEquals(Status.CREATE_ACCESS_TOKEN_ERROR.getCode(),result.getCode().intValue());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void exceptionHandlerRuntime() throws NoSuchMethodException {
|
||||
ApiExceptionHandler handler = new ApiExceptionHandler();
|
||||
ProcessDefinitionController controller = new ProcessDefinitionController();
|
||||
Method method = controller.getClass().getMethod("batchExportProcessDefinitionByIds", User.class, String.class, String.class, HttpServletResponse.class);
|
||||
Method method = controller.getClass().getMethod("queryAllProcessDefinitionByProjectCode", User.class, long.class);
|
||||
HandlerMethod hm = new HandlerMethod(controller, method);
|
||||
Result result = handler.exceptionHandler(new RuntimeException("test exception"), hm);
|
||||
Assert.assertTrue(result.isStatus(Status.INTERNAL_SERVER_ERROR_ARGS));
|
||||
Assert.assertEquals(Status.QUERY_PROCESS_DEFINITION_LIST.getCode(),result.getCode().intValue());
|
||||
}
|
||||
}
|
||||
|
|
@ -20,18 +20,18 @@ package org.apache.dolphinscheduler.api.service;
|
|||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.anyInt;
|
||||
import static org.mockito.ArgumentMatchers.anyLong;
|
||||
|
||||
import org.apache.dolphinscheduler.api.dto.CommandStateCount;
|
||||
import org.apache.dolphinscheduler.api.dto.TaskStateCount;
|
||||
import org.apache.dolphinscheduler.api.enums.Status;
|
||||
import org.apache.dolphinscheduler.api.service.impl.DataAnalysisServiceImpl;
|
||||
import org.apache.dolphinscheduler.api.service.impl.ProjectServiceImpl;
|
||||
import org.apache.dolphinscheduler.common.Constants;
|
||||
import org.apache.dolphinscheduler.common.enums.CommandType;
|
||||
import org.apache.dolphinscheduler.common.enums.ExecutionStatus;
|
||||
import org.apache.dolphinscheduler.common.enums.UserType;
|
||||
import org.apache.dolphinscheduler.common.utils.DateUtils;
|
||||
import org.apache.dolphinscheduler.dao.entity.CommandCount;
|
||||
import org.apache.dolphinscheduler.dao.entity.DefinitionGroupByUser;
|
||||
import org.apache.dolphinscheduler.dao.entity.ExecuteStatusCount;
|
||||
import org.apache.dolphinscheduler.dao.entity.Project;
|
||||
import org.apache.dolphinscheduler.dao.entity.User;
|
||||
|
|
@ -43,6 +43,7 @@ import org.apache.dolphinscheduler.dao.mapper.ProjectMapper;
|
|||
import org.apache.dolphinscheduler.dao.mapper.TaskInstanceMapper;
|
||||
import org.apache.dolphinscheduler.service.process.ProcessService;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
|
|
@ -57,6 +58,7 @@ import org.junit.runner.RunWith;
|
|||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.Mockito;
|
||||
import org.powermock.api.mockito.PowerMockito;
|
||||
import org.powermock.modules.junit4.PowerMockRunner;
|
||||
|
||||
/**
|
||||
|
|
@ -66,13 +68,13 @@ import org.powermock.modules.junit4.PowerMockRunner;
|
|||
public class DataAnalysisServiceTest {
|
||||
|
||||
@InjectMocks
|
||||
private DataAnalysisServiceImpl dataAnalysisService;
|
||||
private DataAnalysisServiceImpl dataAnalysisServiceImpl;
|
||||
|
||||
@Mock
|
||||
ProjectMapper projectMapper;
|
||||
|
||||
@Mock
|
||||
ProjectServiceImpl projectService;
|
||||
ProjectService projectService;
|
||||
|
||||
@Mock
|
||||
ProcessInstanceMapper processInstanceMapper;
|
||||
|
|
@ -102,29 +104,30 @@ public class DataAnalysisServiceTest {
|
|||
user = new User();
|
||||
Project project = new Project();
|
||||
project.setId(1);
|
||||
project.setName("test");
|
||||
resultMap = new HashMap<>();
|
||||
Mockito.when(projectMapper.selectById(1)).thenReturn(project);
|
||||
Mockito.when(projectService.hasProjectAndPerm(user, project, resultMap)).thenReturn(true);
|
||||
|
||||
Mockito.when(projectMapper.queryByCode(1L)).thenReturn(project);
|
||||
}
|
||||
|
||||
@After
|
||||
public void after() {
|
||||
|
||||
user = null;
|
||||
projectMapper = null;
|
||||
resultMap = null;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCountTaskStateByProject() {
|
||||
|
||||
public void testCountTaskStateByProject_success() {
|
||||
String startDate = "2020-02-11 16:02:18";
|
||||
String endDate = "2020-02-11 16:03:18";
|
||||
|
||||
//checkProject false
|
||||
Map<String, Object> result = dataAnalysisService.countTaskStateByProject(user, 2, startDate, endDate);
|
||||
Assert.assertTrue(result.isEmpty());
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.SUCCESS, null);
|
||||
Mockito.when(projectService.checkProjectAndAuth(any(), any(), anyLong())).thenReturn(result);
|
||||
Mockito.when(projectMapper.queryByCode(1L)).thenReturn(getProject("test"));
|
||||
|
||||
//SUCCESS
|
||||
Mockito.when(taskInstanceMapper.countTaskInstanceStateByUser(DateUtils.getScheduleDate(startDate),
|
||||
|
|
@ -132,150 +135,140 @@ public class DataAnalysisServiceTest {
|
|||
Mockito.when(projectMapper.selectById(Mockito.any())).thenReturn(getProject("test"));
|
||||
Mockito.when(projectService.hasProjectAndPerm(Mockito.any(), Mockito.any(), (Map<String, Object>)Mockito.any())).thenReturn(true);
|
||||
|
||||
result = dataAnalysisService.countTaskStateByProject(user, 1, startDate, endDate);
|
||||
result = dataAnalysisServiceImpl.countTaskStateByProject(user, 1, startDate, endDate);
|
||||
Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCountTaskStateByProject_projectNotFound() {
|
||||
String startDate = "2020-02-11 16:02:18";
|
||||
String endDate = "2020-02-11 16:03:18";
|
||||
|
||||
// checkProject false
|
||||
Map<String, Object> failResult = new HashMap<>();
|
||||
putMsg(failResult, Status.PROJECT_NOT_FOUNT, 1);
|
||||
Mockito.when(projectService.checkProjectAndAuth(any(), any(), anyLong())).thenReturn(failResult);
|
||||
failResult = dataAnalysisServiceImpl.countTaskStateByProject(user, 1, startDate, endDate);
|
||||
Assert.assertEquals(Status.PROJECT_NOT_FOUNT, failResult.get(Constants.STATUS));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCountTaskStateByProject_paramValid() {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.SUCCESS, null);
|
||||
Mockito.when(projectService.checkProjectAndAuth(any(), any(), anyLong())).thenReturn(result);
|
||||
Mockito.when(projectMapper.queryByCode(1L)).thenReturn(getProject("test"));
|
||||
|
||||
// when date in illegal format then return error message
|
||||
String startDate2 = "illegalDateString";
|
||||
String endDate2 = "illegalDateString";
|
||||
result = dataAnalysisService.countTaskStateByProject(user, 0, startDate2, endDate2);
|
||||
result = dataAnalysisServiceImpl.countTaskStateByProject(user, 1, startDate2, endDate2);
|
||||
Assert.assertEquals(Status.REQUEST_PARAMS_NOT_VALID_ERROR, result.get(Constants.STATUS));
|
||||
|
||||
// when one of date in illegal format then return error message
|
||||
String startDate3 = "2020-08-28 14:13:40";
|
||||
String endDate3 = "illegalDateString";
|
||||
result = dataAnalysisService.countTaskStateByProject(user, 0, startDate3, endDate3);
|
||||
result = dataAnalysisServiceImpl.countTaskStateByProject(user, 1, startDate3, endDate3);
|
||||
Assert.assertEquals(Status.REQUEST_PARAMS_NOT_VALID_ERROR, result.get(Constants.STATUS));
|
||||
|
||||
// when one of date in illegal format then return error message
|
||||
String startDate4 = "illegalDateString";
|
||||
String endDate4 = "2020-08-28 14:13:40";
|
||||
result = dataAnalysisService.countTaskStateByProject(user, 0, startDate4, endDate4);
|
||||
result = dataAnalysisServiceImpl.countTaskStateByProject(user, 1, startDate4, endDate4);
|
||||
Assert.assertEquals(Status.REQUEST_PARAMS_NOT_VALID_ERROR, result.get(Constants.STATUS));
|
||||
}
|
||||
|
||||
// when counting general user's task status then return user's task status count
|
||||
user.setUserType(UserType.GENERAL_USER);
|
||||
Mockito.when(processService.getProjectIdListHavePerm(anyInt()))
|
||||
.thenReturn(Collections.singletonList(123L));
|
||||
ExecuteStatusCount executeStatusCount = new ExecuteStatusCount();
|
||||
executeStatusCount.setExecutionStatus(ExecutionStatus.RUNNING_EXECUTION);
|
||||
executeStatusCount.setCount(10);
|
||||
Mockito.when(taskInstanceMapper.countTaskInstanceStateByUser(any(), any(), any()))
|
||||
.thenReturn(Collections.singletonList(executeStatusCount));
|
||||
result = dataAnalysisService.countTaskStateByProject(user, 0, startDate, null);
|
||||
assertThat(result.get(Constants.DATA_LIST)).extracting("taskCountDtos").first().asList()
|
||||
.hasSameSizeAs(ExecutionStatus.values());
|
||||
assertThat(result.get(Constants.DATA_LIST)).extracting("totalCount").first().isEqualTo(10);
|
||||
TaskStateCount taskStateCount = new TaskStateCount(ExecutionStatus.RUNNING_EXECUTION, 10);
|
||||
assertThat(result.get(Constants.DATA_LIST)).extracting("taskCountDtos").first().asList().containsOnlyOnce(taskStateCount);
|
||||
@Test
|
||||
public void testCountTaskStateByProject_allCountZero() {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.SUCCESS, null);
|
||||
Mockito.when(projectService.checkProjectAndAuth(any(), any(), anyLong())).thenReturn(result);
|
||||
Mockito.when(projectMapper.queryByCode(1L)).thenReturn(getProject("test"));
|
||||
|
||||
// when general user doesn't have any task then return all count are 0
|
||||
user.setUserType(UserType.GENERAL_USER);
|
||||
Mockito.when(processService.getProjectIdListHavePerm(anyInt()))
|
||||
.thenReturn(new ArrayList<>());
|
||||
Mockito.when(taskInstanceMapper.countTaskInstanceStateByUser(any(), any(), any()))
|
||||
.thenReturn(Collections.emptyList());
|
||||
result = dataAnalysisService.countTaskStateByProject(user, 0, null, null);
|
||||
Mockito.when(taskInstanceMapper.countTaskInstanceStateByUser(any(), any(), any())).thenReturn(
|
||||
Collections.emptyList());
|
||||
result = dataAnalysisServiceImpl.countTaskStateByProject(user, 1, null, null);
|
||||
assertThat(result.get(Constants.DATA_LIST)).extracting("totalCount").first().isEqualTo(0);
|
||||
assertThat(result.get(Constants.DATA_LIST)).extracting("taskCountDtos").first().asList()
|
||||
.hasSameSizeAs(ExecutionStatus.values());
|
||||
assertThat(result.get(Constants.DATA_LIST)).extracting("taskCountDtos").first().asList()
|
||||
.extracting("count").allMatch(count -> count.equals(0));
|
||||
assertThat(result.get(Constants.DATA_LIST)).extracting("taskCountDtos").first().asList().hasSameSizeAs(
|
||||
ExecutionStatus.values());
|
||||
assertThat(result.get(Constants.DATA_LIST)).extracting("taskCountDtos").first().asList().extracting(
|
||||
"count").allMatch(count -> count.equals(0));
|
||||
}
|
||||
|
||||
// when general user doesn't have any task then return all count are 0
|
||||
user.setUserType(UserType.GENERAL_USER);
|
||||
Mockito.when(processService.getProjectIdListHavePerm(anyInt()))
|
||||
.thenReturn(new ArrayList<>());
|
||||
Mockito.when(taskInstanceMapper.countTaskInstanceStateByUser(any(), any(), any()))
|
||||
.thenReturn(Collections.emptyList());
|
||||
result = dataAnalysisService.countTaskStateByProject(user, 0, null, null);
|
||||
assertThat(result.get(Constants.DATA_LIST)).extracting("totalCount").first().isEqualTo(0);
|
||||
assertThat(result.get(Constants.DATA_LIST)).extracting("taskCountDtos").first().asList()
|
||||
.hasSameSizeAs(ExecutionStatus.values());
|
||||
assertThat(result.get(Constants.DATA_LIST)).extracting("taskCountDtos").first().asList()
|
||||
.extracting("count").allMatch(count -> count.equals(0));
|
||||
@Test
|
||||
public void testCountTaskStateByProject_noData() {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.SUCCESS, null);
|
||||
Mockito.when(projectService.checkProjectAndAuth(any(), any(), anyLong())).thenReturn(result);
|
||||
Mockito.when(projectMapper.queryByCode(1L)).thenReturn(getProject("test"));
|
||||
|
||||
// when instanceStateCounter return null, then return nothing
|
||||
user.setUserType(UserType.GENERAL_USER);
|
||||
Mockito.when(processService.getProjectIdListHavePerm(anyInt()))
|
||||
.thenReturn(new ArrayList<>());
|
||||
Mockito.when(taskInstanceMapper.countTaskInstanceStateByUser(any(), any(), any()))
|
||||
.thenReturn(null);
|
||||
result = dataAnalysisService.countTaskStateByProject(user, 0, null, null);
|
||||
assertThat(result).isEmpty();
|
||||
PowerMockito.when(taskInstanceMapper.countTaskInstanceStateByUser(any(), any(), any())).thenReturn(null);
|
||||
result = dataAnalysisServiceImpl.countTaskStateByProject(user, 1, null, null);
|
||||
Assert.assertNull(result.get(Constants.DATA_LIST));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCountProcessInstanceStateByProject() {
|
||||
|
||||
String startDate = "2020-02-11 16:02:18";
|
||||
String endDate = "2020-02-11 16:03:18";
|
||||
|
||||
Mockito.when(projectMapper.queryByCode(1L)).thenReturn(getProject("test"));
|
||||
|
||||
//checkProject false
|
||||
Map<String, Object> result = dataAnalysisService.countProcessInstanceStateByProject(user, 2, startDate, endDate);
|
||||
Assert.assertTrue(result.isEmpty());
|
||||
Map<String, Object> failResult = new HashMap<>();
|
||||
putMsg(failResult, Status.PROJECT_NOT_FOUNT, 1);
|
||||
Mockito.when(projectService.checkProjectAndAuth(any(), any(), anyLong())).thenReturn(failResult);
|
||||
failResult = dataAnalysisServiceImpl.countProcessInstanceStateByProject(user, 1, startDate, endDate);
|
||||
Assert.assertEquals(Status.PROJECT_NOT_FOUNT, failResult.get(Constants.STATUS));
|
||||
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.SUCCESS, null);
|
||||
Mockito.when(projectService.checkProjectAndAuth(any(), any(), anyLong())).thenReturn(result);
|
||||
|
||||
//SUCCESS
|
||||
Mockito.when(projectMapper.selectById(Mockito.any())).thenReturn(getProject("test"));
|
||||
Mockito.when(processInstanceMapper.countInstanceStateByUser(DateUtils.getScheduleDate(startDate),
|
||||
DateUtils.getScheduleDate(endDate), new Long[]{1L})).thenReturn(getTaskInstanceStateCounts());
|
||||
Mockito.when(projectService.hasProjectAndPerm(Mockito.any(), Mockito.any(), (Map<String, Object>)Mockito.any())).thenReturn(true);
|
||||
|
||||
result = dataAnalysisService.countProcessInstanceStateByProject(user, 1, startDate, endDate);
|
||||
result = dataAnalysisServiceImpl.countProcessInstanceStateByProject(user, 1, startDate, endDate);
|
||||
Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCountDefinitionByUser() {
|
||||
Mockito.when(projectMapper.selectById(Mockito.any())).thenReturn(getProject("test"));
|
||||
Map<String, Object> result = dataAnalysisService.countDefinitionByUser(user, 0);
|
||||
Mockito.when(projectMapper.queryByCode(1L)).thenReturn(getProject("test"));
|
||||
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.SUCCESS, null);
|
||||
Mockito.when(projectService.checkProjectAndAuth(any(), any(), anyLong())).thenReturn(result);
|
||||
|
||||
Mockito.when(processDefinitionMapper.countDefinitionGroupByUser(Mockito.anyInt(), Mockito.any(Long[].class),
|
||||
Mockito.anyBoolean())).thenReturn(new ArrayList<DefinitionGroupByUser>());
|
||||
result = dataAnalysisServiceImpl.countDefinitionByUser(user, 0);
|
||||
Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCountCommandState() {
|
||||
|
||||
String startDate = "2020-02-11 16:02:18";
|
||||
String endDate = "2020-02-11 16:03:18";
|
||||
//checkProject false
|
||||
Map<String, Object> result = dataAnalysisService.countCommandState(user, 2, startDate, endDate);
|
||||
Assert.assertTrue(result.isEmpty());
|
||||
List<CommandCount> commandCounts = new ArrayList<>(1);
|
||||
CommandCount commandCount = new CommandCount();
|
||||
commandCount.setCommandType(CommandType.START_PROCESS);
|
||||
commandCounts.add(commandCount);
|
||||
Mockito.when(commandMapper.countCommandState(0, DateUtils.getScheduleDate(startDate),
|
||||
DateUtils.getScheduleDate(endDate), new Long[]{1L})).thenReturn(commandCounts);
|
||||
|
||||
Mockito.when(errorCommandMapper.countCommandState(DateUtils.getScheduleDate(startDate),
|
||||
DateUtils.getScheduleDate(endDate), new Long[]{1L})).thenReturn(commandCounts);
|
||||
Mockito.when(projectMapper.selectById(Mockito.any())).thenReturn(getProject("test"));
|
||||
Mockito.when(projectService.hasProjectAndPerm(Mockito.any(), Mockito.any(), (Map<String, Object>)Mockito.any())).thenReturn(true);
|
||||
Mockito.when(commandMapper.countCommandState(0, null, null, new Long[]{1L})).thenReturn(commandCounts);
|
||||
Mockito.when(errorCommandMapper.countCommandState(null, null, new Long[]{1L})).thenReturn(commandCounts);
|
||||
|
||||
result = dataAnalysisService.countCommandState(user, 1, startDate, endDate);
|
||||
Map<String, Object> result = dataAnalysisServiceImpl.countCommandState(user);
|
||||
Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
|
||||
|
||||
// when all date in illegal format then return error message
|
||||
String startDate2 = "illegalDateString";
|
||||
String endDate2 = "illegalDateString";
|
||||
Map<String, Object> result2 = dataAnalysisService.countCommandState(user, 0, startDate2, endDate2);
|
||||
Assert.assertEquals(Status.REQUEST_PARAMS_NOT_VALID_ERROR, result2.get(Constants.STATUS));
|
||||
|
||||
// when one of date in illegal format then return error message
|
||||
String startDate3 = "2020-08-22 09:23:10";
|
||||
String endDate3 = "illegalDateString";
|
||||
Map<String, Object> result3 = dataAnalysisService.countCommandState(user, 0, startDate3, endDate3);
|
||||
Assert.assertEquals(Status.REQUEST_PARAMS_NOT_VALID_ERROR, result3.get(Constants.STATUS));
|
||||
|
||||
// when one of date in illegal format then return error message
|
||||
String startDate4 = "illegalDateString";
|
||||
String endDate4 = "2020-08-22 09:23:10";
|
||||
Map<String, Object> result4 = dataAnalysisService.countCommandState(user, 0, startDate4, endDate4);
|
||||
Assert.assertEquals(Status.REQUEST_PARAMS_NOT_VALID_ERROR, result4.get(Constants.STATUS));
|
||||
|
||||
// when no command found then return all count are 0
|
||||
Mockito.when(commandMapper.countCommandState(anyInt(), any(), any(), any())).thenReturn(Collections.emptyList());
|
||||
Mockito.when(errorCommandMapper.countCommandState(any(), any(), any())).thenReturn(Collections.emptyList());
|
||||
Map<String, Object> result5 = dataAnalysisService.countCommandState(user, 0, startDate, null);
|
||||
Map<String, Object> result5 = dataAnalysisServiceImpl.countCommandState(user);
|
||||
assertThat(result5).containsEntry(Constants.STATUS, Status.SUCCESS);
|
||||
assertThat(result5.get(Constants.DATA_LIST)).asList().extracting("errorCount").allMatch(count -> count.equals(0));
|
||||
assertThat(result5.get(Constants.DATA_LIST)).asList().extracting("normalCount").allMatch(count -> count.equals(0));
|
||||
|
|
@ -290,7 +283,7 @@ public class DataAnalysisServiceTest {
|
|||
Mockito.when(commandMapper.countCommandState(anyInt(), any(), any(), any())).thenReturn(Collections.singletonList(normalCommandCount));
|
||||
Mockito.when(errorCommandMapper.countCommandState(any(), any(), any())).thenReturn(Collections.singletonList(errorCommandCount));
|
||||
|
||||
Map<String, Object> result6 = dataAnalysisService.countCommandState(user, 0, null, null);
|
||||
Map<String, Object> result6 = dataAnalysisServiceImpl.countCommandState(user);
|
||||
|
||||
assertThat(result6).containsEntry(Constants.STATUS, Status.SUCCESS);
|
||||
CommandStateCount commandStateCount = new CommandStateCount();
|
||||
|
|
@ -302,12 +295,8 @@ public class DataAnalysisServiceTest {
|
|||
|
||||
@Test
|
||||
public void testCountQueueState() {
|
||||
// when project check fail then return nothing
|
||||
Map<String, Object> result1 = dataAnalysisService.countQueueState(user, 2);
|
||||
Assert.assertTrue(result1.isEmpty());
|
||||
|
||||
// when project check success when return all count are 0
|
||||
Map<String, Object> result2 = dataAnalysisService.countQueueState(user, 1);
|
||||
Map<String, Object> result2 = dataAnalysisServiceImpl.countQueueState(user);
|
||||
assertThat(result2.get(Constants.DATA_LIST)).extracting("taskQueue", "taskKill")
|
||||
.isNotEmpty()
|
||||
.allMatch(count -> count.equals(0));
|
||||
|
|
@ -317,7 +306,6 @@ public class DataAnalysisServiceTest {
|
|||
* get list
|
||||
*/
|
||||
private List<ExecuteStatusCount> getTaskInstanceStateCounts() {
|
||||
|
||||
List<ExecuteStatusCount> taskInstanceStateCounts = new ArrayList<>(1);
|
||||
ExecuteStatusCount executeStatusCount = new ExecuteStatusCount();
|
||||
executeStatusCount.setExecutionStatus(ExecutionStatus.RUNNING_EXECUTION);
|
||||
|
|
@ -334,10 +322,19 @@ public class DataAnalysisServiceTest {
|
|||
*/
|
||||
private Project getProject(String projectName) {
|
||||
Project project = new Project();
|
||||
project.setCode(11L);
|
||||
project.setCode(1L);
|
||||
project.setId(1);
|
||||
project.setName(projectName);
|
||||
project.setUserId(1);
|
||||
return project;
|
||||
}
|
||||
}
|
||||
|
||||
private void putMsg(Map<String, Object> result, Status status, Object... statusParams) {
|
||||
result.put(Constants.STATUS, status);
|
||||
if (statusParams != null && statusParams.length > 0) {
|
||||
result.put(Constants.MSG, MessageFormat.format(status.getMsg(), statusParams));
|
||||
} else {
|
||||
result.put(Constants.MSG, status.getMsg());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@ public class DataSourceServiceTest {
|
|||
dataSourceList.add(dataSource);
|
||||
PowerMockito.when(dataSourceMapper.queryDataSourceByName(dataSourceName.trim())).thenReturn(dataSourceList);
|
||||
Result dataSourceExitsResult = dataSourceService.createDataSource(loginUser, postgreSqlDatasourceParam);
|
||||
Assert.assertTrue(dataSourceExitsResult.isStatus(Status.DATASOURCE_EXIST));
|
||||
Assert.assertEquals(Status.DATASOURCE_EXIST.getCode(), dataSourceExitsResult.getCode().intValue());
|
||||
|
||||
ConnectionParam connectionParam = DatasourceUtil.buildConnectionParams(postgreSqlDatasourceParam);
|
||||
DbType dataSourceType = postgreSqlDatasourceParam.getType();
|
||||
|
|
@ -103,20 +103,20 @@ public class DataSourceServiceTest {
|
|||
//PowerMockito.when(dataSourceService.checkConnection(dataSourceType, parameter)).thenReturn(connectionResult);
|
||||
PowerMockito.doReturn(connectionResult).when(dataSourceService).checkConnection(dataSourceType, connectionParam);
|
||||
Result connectFailedResult = dataSourceService.createDataSource(loginUser, postgreSqlDatasourceParam);
|
||||
Assert.assertTrue(connectFailedResult.isStatus(Status.DATASOURCE_CONNECT_FAILED));
|
||||
Assert.assertEquals(Status.DATASOURCE_CONNECT_FAILED.getCode(), connectFailedResult.getCode().intValue());
|
||||
|
||||
// data source exits
|
||||
PowerMockito.when(dataSourceMapper.queryDataSourceByName(dataSourceName.trim())).thenReturn(null);
|
||||
connectionResult = new Result(Status.SUCCESS.getCode(), Status.SUCCESS.getMsg());
|
||||
PowerMockito.when(dataSourceService.checkConnection(dataSourceType, connectionParam)).thenReturn(connectionResult);
|
||||
Result notValidError = dataSourceService.createDataSource(loginUser, postgreSqlDatasourceParam);
|
||||
Assert.assertTrue(notValidError.isStatus(Status.REQUEST_PARAMS_NOT_VALID_ERROR));
|
||||
Assert.assertEquals(Status.REQUEST_PARAMS_NOT_VALID_ERROR.getCode(), notValidError.getCode().intValue());
|
||||
|
||||
// success
|
||||
PowerMockito.when(dataSourceMapper.queryDataSourceByName(dataSourceName.trim())).thenReturn(null);
|
||||
PowerMockito.when(dataSourceService.checkConnection(dataSourceType, connectionParam)).thenReturn(connectionResult);
|
||||
Result success = dataSourceService.createDataSource(loginUser, postgreSqlDatasourceParam);
|
||||
Assert.assertTrue(success.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(), success.getCode().intValue());
|
||||
}
|
||||
|
||||
public void updateDataSourceTest() {
|
||||
|
|
@ -138,13 +138,13 @@ public class DataSourceServiceTest {
|
|||
// data source not exits
|
||||
PowerMockito.when(dataSourceMapper.selectById(dataSourceId)).thenReturn(null);
|
||||
Result resourceNotExits = dataSourceService.updateDataSource(dataSourceId, loginUser, postgreSqlDatasourceParam);
|
||||
Assert.assertTrue(resourceNotExits.isStatus(Status.RESOURCE_NOT_EXIST));
|
||||
Assert.assertEquals(Status.RESOURCE_NOT_EXIST.getCode(), resourceNotExits.getCode().intValue());
|
||||
// user no operation perm
|
||||
DataSource dataSource = new DataSource();
|
||||
dataSource.setUserId(0);
|
||||
PowerMockito.when(dataSourceMapper.selectById(dataSourceId)).thenReturn(dataSource);
|
||||
Result userNoOperationPerm = dataSourceService.updateDataSource(dataSourceId, loginUser, postgreSqlDatasourceParam);
|
||||
Assert.assertTrue(userNoOperationPerm.isStatus(Status.USER_NO_OPERATION_PERM));
|
||||
Assert.assertEquals(Status.USER_NO_OPERATION_PERM.getCode(), userNoOperationPerm.getCode().intValue());
|
||||
|
||||
// data source name exits
|
||||
dataSource.setUserId(-1);
|
||||
|
|
@ -153,7 +153,7 @@ public class DataSourceServiceTest {
|
|||
PowerMockito.when(dataSourceMapper.selectById(dataSourceId)).thenReturn(dataSource);
|
||||
PowerMockito.when(dataSourceMapper.queryDataSourceByName(dataSourceName)).thenReturn(dataSourceList);
|
||||
Result dataSourceNameExist = dataSourceService.updateDataSource(dataSourceId, loginUser, postgreSqlDatasourceParam);
|
||||
Assert.assertTrue(dataSourceNameExist.isStatus(Status.DATASOURCE_EXIST));
|
||||
Assert.assertEquals(Status.DATASOURCE_EXIST.getCode(), dataSourceNameExist.getCode().intValue());
|
||||
|
||||
// data source connect failed
|
||||
DbType dataSourceType = postgreSqlDatasourceParam.getType();
|
||||
|
|
@ -163,14 +163,15 @@ public class DataSourceServiceTest {
|
|||
Result connectionResult = new Result(Status.SUCCESS.getCode(), Status.SUCCESS.getMsg());
|
||||
PowerMockito.when(dataSourceService.checkConnection(dataSourceType, connectionParam)).thenReturn(connectionResult);
|
||||
Result connectFailed = dataSourceService.updateDataSource(dataSourceId, loginUser, postgreSqlDatasourceParam);
|
||||
Assert.assertTrue(connectFailed.isStatus(Status.DATASOURCE_CONNECT_FAILED));
|
||||
Assert.assertEquals(Status.DATASOURCE_CONNECT_FAILED.getCode(), connectFailed.getCode().intValue());
|
||||
|
||||
//success
|
||||
PowerMockito.when(dataSourceMapper.selectById(dataSourceId)).thenReturn(dataSource);
|
||||
PowerMockito.when(dataSourceMapper.queryDataSourceByName(dataSourceName)).thenReturn(null);
|
||||
connectionResult = new Result(Status.DATASOURCE_CONNECT_FAILED.getCode(), Status.DATASOURCE_CONNECT_FAILED.getMsg());
|
||||
PowerMockito.when(dataSourceService.checkConnection(dataSourceType, connectionParam)).thenReturn(connectionResult);
|
||||
Result success = dataSourceService.updateDataSource(dataSourceId, loginUser, postgreSqlDatasourceParam);
|
||||
Assert.assertTrue(success.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(), success.getCode().intValue());
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -189,7 +190,7 @@ public class DataSourceServiceTest {
|
|||
int dataSourceId = -1;
|
||||
PowerMockito.when(dataSourceMapper.selectById(dataSourceId)).thenReturn(null);
|
||||
Result result = dataSourceService.connectionTest(dataSourceId);
|
||||
Assert.assertTrue(result.isStatus(Status.RESOURCE_NOT_EXIST));
|
||||
Assert.assertEquals(Status.RESOURCE_NOT_EXIST.getCode(), result.getCode().intValue());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -397,12 +398,13 @@ public class DataSourceServiceTest {
|
|||
PowerMockito.mockStatic(DatasourceUtil.class);
|
||||
|
||||
Result result = dataSourceService.checkConnection(dataSourceType, connectionParam);
|
||||
Assert.assertTrue(result.isStatus(Status.CONNECTION_TEST_FAILURE));
|
||||
Assert.assertEquals(Status.CONNECTION_TEST_FAILURE.getCode(), result.getCode().intValue());
|
||||
|
||||
Connection connection = PowerMockito.mock(Connection.class);
|
||||
PowerMockito.when(DatasourceUtil.getConnection(Mockito.any(), Mockito.any())).thenReturn(connection);
|
||||
result = dataSourceService.checkConnection(dataSourceType, connectionParam);
|
||||
Assert.assertTrue(result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(), result.getCode().intValue());
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,308 +0,0 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The ASF licenses this file to You 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 org.apache.dolphinscheduler.api.service;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
|
||||
import org.apache.dolphinscheduler.api.enums.ExecuteType;
|
||||
import org.apache.dolphinscheduler.api.enums.Status;
|
||||
import org.apache.dolphinscheduler.api.service.impl.ExecutorServiceImpl;
|
||||
import org.apache.dolphinscheduler.api.service.impl.ProjectServiceImpl;
|
||||
import org.apache.dolphinscheduler.common.Constants;
|
||||
import org.apache.dolphinscheduler.common.enums.CommandType;
|
||||
import org.apache.dolphinscheduler.common.enums.ExecutionStatus;
|
||||
import org.apache.dolphinscheduler.common.enums.Priority;
|
||||
import org.apache.dolphinscheduler.common.enums.ReleaseState;
|
||||
import org.apache.dolphinscheduler.common.enums.RunMode;
|
||||
import org.apache.dolphinscheduler.common.model.Server;
|
||||
import org.apache.dolphinscheduler.dao.entity.Command;
|
||||
import org.apache.dolphinscheduler.dao.entity.ProcessDefinition;
|
||||
import org.apache.dolphinscheduler.dao.entity.ProcessInstance;
|
||||
import org.apache.dolphinscheduler.dao.entity.Project;
|
||||
import org.apache.dolphinscheduler.dao.entity.Schedule;
|
||||
import org.apache.dolphinscheduler.dao.entity.Tenant;
|
||||
import org.apache.dolphinscheduler.dao.entity.User;
|
||||
import org.apache.dolphinscheduler.dao.mapper.ProcessDefinitionMapper;
|
||||
import org.apache.dolphinscheduler.dao.mapper.ProjectMapper;
|
||||
import org.apache.dolphinscheduler.service.process.ProcessService;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
/**
|
||||
* executor service 2 test
|
||||
*/
|
||||
@RunWith(MockitoJUnitRunner.Silent.class)
|
||||
public class ExecutorService2Test {
|
||||
|
||||
@InjectMocks
|
||||
private ExecutorServiceImpl executorService;
|
||||
|
||||
@Mock
|
||||
private ProcessService processService;
|
||||
|
||||
@Mock
|
||||
private ProcessDefinitionMapper processDefinitionMapper;
|
||||
|
||||
@Mock
|
||||
private ProjectMapper projectMapper;
|
||||
|
||||
@Mock
|
||||
private ProjectServiceImpl projectService;
|
||||
|
||||
@Mock
|
||||
private MonitorService monitorService;
|
||||
|
||||
private int processDefinitionId = 1;
|
||||
|
||||
private int processInstanceId = 1;
|
||||
|
||||
private int tenantId = 1;
|
||||
|
||||
private int userId = 1;
|
||||
|
||||
private ProcessDefinition processDefinition = new ProcessDefinition();
|
||||
|
||||
private ProcessInstance processInstance = new ProcessInstance();
|
||||
|
||||
private User loginUser = new User();
|
||||
|
||||
private String projectName = "projectName";
|
||||
|
||||
private Project project = new Project();
|
||||
|
||||
private String cronTime;
|
||||
|
||||
@Before
|
||||
public void init() {
|
||||
// user
|
||||
loginUser.setId(userId);
|
||||
|
||||
// processDefinition
|
||||
processDefinition.setId(processDefinitionId);
|
||||
processDefinition.setReleaseState(ReleaseState.ONLINE);
|
||||
processDefinition.setTenantId(tenantId);
|
||||
processDefinition.setUserId(userId);
|
||||
processDefinition.setVersion(1);
|
||||
processDefinition.setCode(1L);
|
||||
|
||||
// processInstance
|
||||
processInstance.setId(processInstanceId);
|
||||
processInstance.setState(ExecutionStatus.FAILURE);
|
||||
processInstance.setExecutorId(userId);
|
||||
processInstance.setTenantId(tenantId);
|
||||
processInstance.setProcessDefinitionVersion(1);
|
||||
processInstance.setProcessDefinitionCode(1L);
|
||||
|
||||
// project
|
||||
project.setName(projectName);
|
||||
|
||||
// cronRangeTime
|
||||
cronTime = "2020-01-01 00:00:00,2020-01-31 23:00:00";
|
||||
|
||||
// mock
|
||||
Mockito.when(projectMapper.queryByName(projectName)).thenReturn(project);
|
||||
Mockito.when(projectService.checkProjectAndAuth(loginUser, project, projectName)).thenReturn(checkProjectAndAuth());
|
||||
Mockito.when(processDefinitionMapper.selectById(processDefinitionId)).thenReturn(processDefinition);
|
||||
Mockito.when(processService.getTenantForProcess(tenantId, userId)).thenReturn(new Tenant());
|
||||
Mockito.when(processService.createCommand(any(Command.class))).thenReturn(1);
|
||||
Mockito.when(monitorService.getServerListFromRegistry(true)).thenReturn(getMasterServersList());
|
||||
Mockito.when(processService.findProcessInstanceDetailById(processInstanceId)).thenReturn(processInstance);
|
||||
Mockito.when(processService.findProcessDefinition(1L, 1)).thenReturn(processDefinition);
|
||||
}
|
||||
|
||||
/**
|
||||
* not complement
|
||||
*/
|
||||
@Test
|
||||
public void testNoComplement() {
|
||||
|
||||
Mockito.when(processService.queryReleaseSchedulerListByProcessDefinitionId(processDefinitionId)).thenReturn(zeroSchedulerList());
|
||||
Map<String, Object> result = executorService.execProcessInstance(loginUser, projectName,
|
||||
processDefinitionId, cronTime, CommandType.START_PROCESS,
|
||||
null, null,
|
||||
null, null, 0,
|
||||
RunMode.RUN_MODE_SERIAL,
|
||||
Priority.LOW, Constants.DEFAULT_WORKER_GROUP,-1L, 110, null, 4);
|
||||
Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
|
||||
verify(processService, times(1)).createCommand(any(Command.class));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* not complement
|
||||
*/
|
||||
@Test
|
||||
public void testComplementWithStartNodeList() {
|
||||
|
||||
Mockito.when(processService.queryReleaseSchedulerListByProcessDefinitionId(processDefinitionId)).thenReturn(zeroSchedulerList());
|
||||
Map<String, Object> result = executorService.execProcessInstance(loginUser, projectName,
|
||||
processDefinitionId, cronTime, CommandType.START_PROCESS,
|
||||
null, "n1,n2",
|
||||
null, null, 0,
|
||||
RunMode.RUN_MODE_SERIAL,
|
||||
Priority.LOW, Constants.DEFAULT_WORKER_GROUP,-1L, 110, null, null);
|
||||
Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
|
||||
verify(processService, times(1)).createCommand(any(Command.class));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* date error
|
||||
*/
|
||||
@Test
|
||||
public void testDateError() {
|
||||
|
||||
Mockito.when(processService.queryReleaseSchedulerListByProcessDefinitionId(processDefinitionId)).thenReturn(zeroSchedulerList());
|
||||
Map<String, Object> result = executorService.execProcessInstance(loginUser, projectName,
|
||||
processDefinitionId, "2020-01-31 23:00:00,2020-01-01 00:00:00", CommandType.COMPLEMENT_DATA,
|
||||
null, null,
|
||||
null, null, 0,
|
||||
RunMode.RUN_MODE_SERIAL,
|
||||
Priority.LOW, Constants.DEFAULT_WORKER_GROUP,-1L, 110, null, null);
|
||||
Assert.assertEquals(Status.START_PROCESS_INSTANCE_ERROR, result.get(Constants.STATUS));
|
||||
verify(processService, times(0)).createCommand(any(Command.class));
|
||||
}
|
||||
|
||||
/**
|
||||
* serial
|
||||
*/
|
||||
@Test
|
||||
public void testSerial() {
|
||||
|
||||
Mockito.when(processService.queryReleaseSchedulerListByProcessDefinitionId(processDefinitionId)).thenReturn(zeroSchedulerList());
|
||||
Map<String, Object> result = executorService.execProcessInstance(loginUser, projectName,
|
||||
processDefinitionId, cronTime, CommandType.COMPLEMENT_DATA,
|
||||
null, null,
|
||||
null, null, 0,
|
||||
RunMode.RUN_MODE_SERIAL,
|
||||
Priority.LOW, Constants.DEFAULT_WORKER_GROUP,-1L, 110, null, null);
|
||||
Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
|
||||
verify(processService, times(1)).createCommand(any(Command.class));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* without schedule
|
||||
*/
|
||||
@Test
|
||||
public void testParallelWithOutSchedule() {
|
||||
|
||||
Mockito.when(processService.queryReleaseSchedulerListByProcessDefinitionId(processDefinitionId)).thenReturn(zeroSchedulerList());
|
||||
Map<String, Object> result = executorService.execProcessInstance(loginUser, projectName,
|
||||
processDefinitionId, cronTime, CommandType.COMPLEMENT_DATA,
|
||||
null, null,
|
||||
null, null, 0,
|
||||
RunMode.RUN_MODE_PARALLEL,
|
||||
Priority.LOW, Constants.DEFAULT_WORKER_GROUP,-1L, 110, null, null);
|
||||
Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
|
||||
verify(processService, times(31)).createCommand(any(Command.class));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* with schedule
|
||||
*/
|
||||
@Test
|
||||
public void testParallelWithSchedule() {
|
||||
|
||||
Mockito.when(processService.queryReleaseSchedulerListByProcessDefinitionId(processDefinitionId)).thenReturn(oneSchedulerList());
|
||||
Map<String, Object> result = executorService.execProcessInstance(loginUser, projectName,
|
||||
processDefinitionId, cronTime, CommandType.COMPLEMENT_DATA,
|
||||
null, null,
|
||||
null, null, 0,
|
||||
RunMode.RUN_MODE_PARALLEL,
|
||||
Priority.LOW, Constants.DEFAULT_WORKER_GROUP,-1L, 110, null, 4);
|
||||
Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
|
||||
verify(processService, times(4)).createCommand(any(Command.class));
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testNoMsterServers() {
|
||||
Mockito.when(monitorService.getServerListFromRegistry(true)).thenReturn(new ArrayList<>());
|
||||
|
||||
Map<String, Object> result = executorService.execProcessInstance(loginUser, projectName,
|
||||
processDefinitionId, cronTime, CommandType.COMPLEMENT_DATA,
|
||||
null, null,
|
||||
null, null, 0,
|
||||
RunMode.RUN_MODE_PARALLEL,
|
||||
Priority.LOW, Constants.DEFAULT_WORKER_GROUP,-1L, 110, null, 4);
|
||||
Assert.assertEquals(result.get(Constants.STATUS), Status.MASTER_NOT_EXISTS);
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testExecuteRepeatRunning() {
|
||||
Mockito.when(processService.verifyIsNeedCreateCommand(any(Command.class))).thenReturn(true);
|
||||
|
||||
Map<String, Object> result = executorService.execute(loginUser, projectName, processInstanceId, ExecuteType.REPEAT_RUNNING);
|
||||
Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
|
||||
}
|
||||
|
||||
private List<Server> getMasterServersList() {
|
||||
List<Server> masterServerList = new ArrayList<>();
|
||||
Server masterServer1 = new Server();
|
||||
masterServer1.setId(1);
|
||||
masterServer1.setHost("192.168.220.188");
|
||||
masterServer1.setPort(1121);
|
||||
masterServerList.add(masterServer1);
|
||||
|
||||
Server masterServer2 = new Server();
|
||||
masterServer2.setId(2);
|
||||
masterServer2.setHost("192.168.220.189");
|
||||
masterServer2.setPort(1122);
|
||||
masterServerList.add(masterServer2);
|
||||
|
||||
return masterServerList;
|
||||
|
||||
}
|
||||
|
||||
private List zeroSchedulerList() {
|
||||
return Collections.EMPTY_LIST;
|
||||
}
|
||||
|
||||
private List<Schedule> oneSchedulerList() {
|
||||
List<Schedule> schedulerList = new LinkedList<>();
|
||||
Schedule schedule = new Schedule();
|
||||
schedule.setCrontab("0 0 0 1/2 * ?");
|
||||
schedulerList.add(schedule);
|
||||
return schedulerList;
|
||||
}
|
||||
|
||||
private Map<String, Object> checkProjectAndAuth() {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
result.put(Constants.STATUS, Status.SUCCESS);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
|
@ -17,52 +17,313 @@
|
|||
|
||||
package org.apache.dolphinscheduler.api.service;
|
||||
|
||||
import org.apache.dolphinscheduler.api.controller.AbstractControllerTest;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
|
||||
import org.apache.dolphinscheduler.api.enums.ExecuteType;
|
||||
import org.apache.dolphinscheduler.api.enums.Status;
|
||||
import org.apache.dolphinscheduler.api.service.impl.ExecutorServiceImpl;
|
||||
import org.apache.dolphinscheduler.api.service.impl.ProjectServiceImpl;
|
||||
import org.apache.dolphinscheduler.common.Constants;
|
||||
import org.apache.dolphinscheduler.common.enums.CommandType;
|
||||
import org.apache.dolphinscheduler.common.enums.ExecutionStatus;
|
||||
import org.apache.dolphinscheduler.common.enums.Priority;
|
||||
import org.apache.dolphinscheduler.common.enums.ReleaseState;
|
||||
import org.apache.dolphinscheduler.common.enums.RunMode;
|
||||
import org.apache.dolphinscheduler.common.model.Server;
|
||||
import org.apache.dolphinscheduler.dao.entity.Command;
|
||||
import org.apache.dolphinscheduler.dao.entity.ProcessDefinition;
|
||||
import org.apache.dolphinscheduler.dao.entity.ProcessInstance;
|
||||
import org.apache.dolphinscheduler.dao.entity.Project;
|
||||
import org.apache.dolphinscheduler.dao.entity.Schedule;
|
||||
import org.apache.dolphinscheduler.dao.entity.Tenant;
|
||||
import org.apache.dolphinscheduler.dao.entity.User;
|
||||
import org.apache.dolphinscheduler.dao.mapper.ProcessDefinitionMapper;
|
||||
import org.apache.dolphinscheduler.dao.mapper.ProjectMapper;
|
||||
import org.apache.dolphinscheduler.service.process.ProcessService;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
/**
|
||||
* executor service test
|
||||
* executor service 2 test
|
||||
*/
|
||||
public class ExecutorServiceTest extends AbstractControllerTest {
|
||||
@RunWith(MockitoJUnitRunner.Silent.class)
|
||||
public class ExecutorServiceTest {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(ExecutorServiceTest.class);
|
||||
|
||||
@Autowired
|
||||
@InjectMocks
|
||||
private ExecutorServiceImpl executorService;
|
||||
|
||||
@Ignore
|
||||
@Mock
|
||||
private ProcessService processService;
|
||||
|
||||
@Mock
|
||||
private ProcessDefinitionMapper processDefinitionMapper;
|
||||
|
||||
@Mock
|
||||
private ProjectMapper projectMapper;
|
||||
|
||||
@Mock
|
||||
private ProjectServiceImpl projectService;
|
||||
|
||||
@Mock
|
||||
private MonitorService monitorService;
|
||||
|
||||
private int processDefinitionId = 1;
|
||||
|
||||
private long processDefinitionCode = 1L;
|
||||
|
||||
private int processInstanceId = 1;
|
||||
|
||||
private int tenantId = 1;
|
||||
|
||||
private int userId = 1;
|
||||
|
||||
private ProcessDefinition processDefinition = new ProcessDefinition();
|
||||
|
||||
private ProcessInstance processInstance = new ProcessInstance();
|
||||
|
||||
private User loginUser = new User();
|
||||
|
||||
private long projectCode = 1L;
|
||||
|
||||
private String projectName = "projectName";
|
||||
|
||||
private Project project = new Project();
|
||||
|
||||
private String cronTime;
|
||||
|
||||
@Before
|
||||
public void init() {
|
||||
// user
|
||||
loginUser.setId(userId);
|
||||
|
||||
// processDefinition
|
||||
processDefinition.setId(processDefinitionId);
|
||||
processDefinition.setReleaseState(ReleaseState.ONLINE);
|
||||
processDefinition.setTenantId(tenantId);
|
||||
processDefinition.setUserId(userId);
|
||||
processDefinition.setVersion(1);
|
||||
processDefinition.setCode(1L);
|
||||
|
||||
// processInstance
|
||||
processInstance.setId(processInstanceId);
|
||||
processInstance.setState(ExecutionStatus.FAILURE);
|
||||
processInstance.setExecutorId(userId);
|
||||
processInstance.setTenantId(tenantId);
|
||||
processInstance.setProcessDefinitionVersion(1);
|
||||
processInstance.setProcessDefinitionCode(1L);
|
||||
|
||||
// project
|
||||
project.setCode(projectCode);
|
||||
project.setName(projectName);
|
||||
|
||||
// cronRangeTime
|
||||
cronTime = "2020-01-01 00:00:00,2020-01-31 23:00:00";
|
||||
|
||||
// mock
|
||||
Mockito.when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
Mockito.when(projectService.checkProjectAndAuth(loginUser, project, projectCode)).thenReturn(checkProjectAndAuth());
|
||||
Mockito.when(processDefinitionMapper.queryByCode(processDefinitionCode)).thenReturn(processDefinition);
|
||||
Mockito.when(processService.getTenantForProcess(tenantId, userId)).thenReturn(new Tenant());
|
||||
Mockito.when(processService.createCommand(any(Command.class))).thenReturn(1);
|
||||
Mockito.when(monitorService.getServerListFromRegistry(true)).thenReturn(getMasterServersList());
|
||||
Mockito.when(processService.findProcessInstanceDetailById(processInstanceId)).thenReturn(processInstance);
|
||||
Mockito.when(processService.findProcessDefinition(1L, 1)).thenReturn(processDefinition);
|
||||
}
|
||||
|
||||
/**
|
||||
* not complement
|
||||
*/
|
||||
@Test
|
||||
public void startCheckByProcessDefinedId() {
|
||||
Map<String, Object> map = executorService.startCheckByProcessDefinedId(1234);
|
||||
Assert.assertNull(map);
|
||||
public void testNoComplement() {
|
||||
|
||||
Mockito.when(processService.queryReleaseSchedulerListByProcessDefinitionCode(processDefinitionCode)).thenReturn(zeroSchedulerList());
|
||||
Map<String, Object> result = executorService.execProcessInstance(loginUser, projectCode,
|
||||
processDefinitionCode, cronTime, CommandType.START_PROCESS,
|
||||
null, null,
|
||||
null, null, 0,
|
||||
RunMode.RUN_MODE_SERIAL,
|
||||
Priority.LOW, Constants.DEFAULT_WORKER_GROUP, 100L, 10, null, 0);
|
||||
Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
|
||||
verify(processService, times(1)).createCommand(any(Command.class));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* not complement
|
||||
*/
|
||||
@Test
|
||||
public void testComplementWithStartNodeList() {
|
||||
|
||||
Mockito.when(processService.queryReleaseSchedulerListByProcessDefinitionCode(processDefinitionCode)).thenReturn(zeroSchedulerList());
|
||||
Map<String, Object> result = executorService.execProcessInstance(loginUser, projectCode,
|
||||
processDefinitionCode, cronTime, CommandType.START_PROCESS,
|
||||
null, "n1,n2",
|
||||
null, null, 0,
|
||||
RunMode.RUN_MODE_SERIAL,
|
||||
Priority.LOW, Constants.DEFAULT_WORKER_GROUP, 100L,110, null, 0);
|
||||
Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
|
||||
verify(processService, times(1)).createCommand(any(Command.class));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* date error
|
||||
*/
|
||||
@Test
|
||||
public void testDateError() {
|
||||
|
||||
Mockito.when(processService.queryReleaseSchedulerListByProcessDefinitionCode(processDefinitionCode)).thenReturn(zeroSchedulerList());
|
||||
Map<String, Object> result = executorService.execProcessInstance(loginUser, projectCode,
|
||||
processDefinitionCode, "2020-01-31 23:00:00,2020-01-01 00:00:00", CommandType.COMPLEMENT_DATA,
|
||||
null, null,
|
||||
null, null, 0,
|
||||
RunMode.RUN_MODE_SERIAL,
|
||||
Priority.LOW, Constants.DEFAULT_WORKER_GROUP,100L, 110, null, 0);
|
||||
Assert.assertEquals(Status.START_PROCESS_INSTANCE_ERROR, result.get(Constants.STATUS));
|
||||
verify(processService, times(0)).createCommand(any(Command.class));
|
||||
}
|
||||
|
||||
/**
|
||||
* serial
|
||||
*/
|
||||
@Test
|
||||
public void testSerial() {
|
||||
|
||||
Mockito.when(processService.queryReleaseSchedulerListByProcessDefinitionCode(processDefinitionCode)).thenReturn(zeroSchedulerList());
|
||||
Map<String, Object> result = executorService.execProcessInstance(loginUser, projectCode,
|
||||
processDefinitionCode, cronTime, CommandType.COMPLEMENT_DATA,
|
||||
null, null,
|
||||
null, null, 0,
|
||||
RunMode.RUN_MODE_SERIAL,
|
||||
Priority.LOW, Constants.DEFAULT_WORKER_GROUP,100L, 110, null, 0);
|
||||
Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
|
||||
verify(processService, times(1)).createCommand(any(Command.class));
|
||||
}
|
||||
|
||||
/**
|
||||
* without schedule
|
||||
*/
|
||||
@Test
|
||||
public void testParallelWithOutSchedule() {
|
||||
|
||||
Mockito.when(processService.queryReleaseSchedulerListByProcessDefinitionCode(processDefinitionCode)).thenReturn(zeroSchedulerList());
|
||||
Map<String, Object> result = executorService.execProcessInstance(loginUser, projectCode,
|
||||
processDefinitionCode, cronTime, CommandType.COMPLEMENT_DATA,
|
||||
null, null,
|
||||
null, null, 0,
|
||||
RunMode.RUN_MODE_PARALLEL,
|
||||
Priority.LOW, Constants.DEFAULT_WORKER_GROUP,100L, 110, null, 0);
|
||||
Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
|
||||
verify(processService, times(31)).createCommand(any(Command.class));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* with schedule
|
||||
*/
|
||||
@Test
|
||||
public void testParallelWithSchedule() {
|
||||
|
||||
Mockito.when(processService.queryReleaseSchedulerListByProcessDefinitionCode(processDefinitionCode)).thenReturn(oneSchedulerList());
|
||||
Map<String, Object> result = executorService.execProcessInstance(loginUser, projectCode,
|
||||
processDefinitionCode, cronTime, CommandType.COMPLEMENT_DATA,
|
||||
null, null,
|
||||
null, null, 0,
|
||||
RunMode.RUN_MODE_PARALLEL,
|
||||
Priority.LOW, Constants.DEFAULT_WORKER_GROUP, 100L,110, null, 15);
|
||||
Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
|
||||
verify(processService, times(15)).createCommand(any(Command.class));
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void putMsgWithParamsTest() {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
putMsgWithParams(map, Status.PROJECT_ALREADY_EXISTS);
|
||||
logger.info(map.toString());
|
||||
public void testNoMasterServers() {
|
||||
Mockito.when(monitorService.getServerListFromRegistry(true)).thenReturn(new ArrayList<>());
|
||||
|
||||
Map<String, Object> result = executorService.execProcessInstance(loginUser, projectCode,
|
||||
processDefinitionCode, cronTime, CommandType.COMPLEMENT_DATA,
|
||||
null, null,
|
||||
null, null, 0,
|
||||
RunMode.RUN_MODE_PARALLEL,
|
||||
Priority.LOW, Constants.DEFAULT_WORKER_GROUP, 100L,110, null, 0);
|
||||
Assert.assertEquals(result.get(Constants.STATUS), Status.MASTER_NOT_EXISTS);
|
||||
|
||||
}
|
||||
|
||||
void putMsgWithParams(Map<String, Object> result, Status status, Object... statusParams) {
|
||||
result.put(Constants.STATUS, status);
|
||||
if (statusParams != null && statusParams.length > 0) {
|
||||
result.put(Constants.MSG, MessageFormat.format(status.getMsg(), statusParams));
|
||||
} else {
|
||||
result.put(Constants.MSG, status.getMsg());
|
||||
}
|
||||
@Test
|
||||
public void testExecuteRepeatRunning() {
|
||||
Mockito.when(processService.verifyIsNeedCreateCommand(any(Command.class))).thenReturn(true);
|
||||
|
||||
Map<String, Object> result = executorService.execute(loginUser, projectCode, processInstanceId, ExecuteType.REPEAT_RUNNING);
|
||||
Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStartCheckByProcessDefinedCode() {
|
||||
List<Integer> ids = new ArrayList<>();
|
||||
ids.add(1);
|
||||
Mockito.doNothing().when(processService).recurseFindSubProcessId(1, ids);
|
||||
|
||||
List<ProcessDefinition> processDefinitionList = new ArrayList<>();
|
||||
ProcessDefinition processDefinition = new ProcessDefinition();
|
||||
processDefinition.setId(1);
|
||||
processDefinition.setReleaseState(ReleaseState.ONLINE);
|
||||
processDefinitionList.add(processDefinition);
|
||||
Mockito.when(processDefinitionMapper.queryDefinitionListByIdList(new Integer[ids.size()]))
|
||||
.thenReturn(processDefinitionList);
|
||||
|
||||
Map<String, Object> result = executorService.startCheckByProcessDefinedCode(1L);
|
||||
Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
|
||||
}
|
||||
|
||||
private List<Server> getMasterServersList() {
|
||||
List<Server> masterServerList = new ArrayList<>();
|
||||
Server masterServer1 = new Server();
|
||||
masterServer1.setId(1);
|
||||
masterServer1.setHost("192.168.220.188");
|
||||
masterServer1.setPort(1121);
|
||||
masterServerList.add(masterServer1);
|
||||
|
||||
Server masterServer2 = new Server();
|
||||
masterServer2.setId(2);
|
||||
masterServer2.setHost("192.168.220.189");
|
||||
masterServer2.setPort(1122);
|
||||
masterServerList.add(masterServer2);
|
||||
|
||||
return masterServerList;
|
||||
}
|
||||
|
||||
private List zeroSchedulerList() {
|
||||
return Collections.EMPTY_LIST;
|
||||
}
|
||||
|
||||
private List<Schedule> oneSchedulerList() {
|
||||
List<Schedule> schedulerList = new LinkedList<>();
|
||||
Schedule schedule = new Schedule();
|
||||
schedule.setCrontab("0 0 0 1/2 * ?");
|
||||
schedulerList.add(schedule);
|
||||
return schedulerList;
|
||||
}
|
||||
|
||||
private Map<String, Object> checkProjectAndAuth() {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
result.put(Constants.STATUS, Status.SUCCESS);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ public class LoggerServiceTest {
|
|||
Mockito.when(processService.findTaskInstanceById(1)).thenReturn(taskInstance);
|
||||
Result result = loggerService.queryLog(2, 1, 1);
|
||||
//TASK_INSTANCE_NOT_FOUND
|
||||
Assert.assertTrue(result.isStatus(Status.TASK_INSTANCE_NOT_FOUND));
|
||||
Assert.assertEquals(Status.TASK_INSTANCE_NOT_FOUND.getCode(), result.getCode().intValue());
|
||||
|
||||
try {
|
||||
//HOST NOT FOUND OR ILLEGAL
|
||||
|
|
@ -72,14 +72,14 @@ public class LoggerServiceTest {
|
|||
Assert.assertTrue(true);
|
||||
logger.error("testQueryDataSourceList error {}", e.getMessage());
|
||||
}
|
||||
Assert.assertTrue(result.isStatus(Status.TASK_INSTANCE_NOT_FOUND));
|
||||
Assert.assertEquals(Status.TASK_INSTANCE_NOT_FOUND.getCode(), result.getCode().intValue());
|
||||
|
||||
//SUCCESS
|
||||
taskInstance.setHost("127.0.0.1:8080");
|
||||
taskInstance.setLogPath("/temp/log");
|
||||
Mockito.when(processService.findTaskInstanceById(1)).thenReturn(taskInstance);
|
||||
result = loggerService.queryLog(1, 1, 1);
|
||||
Assert.assertTrue(result.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(), result.getCode().intValue());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -49,6 +49,7 @@ import org.apache.dolphinscheduler.dao.mapper.ProcessDefinitionMapper;
|
|||
import org.apache.dolphinscheduler.dao.mapper.ProcessInstanceMapper;
|
||||
import org.apache.dolphinscheduler.dao.mapper.ProjectMapper;
|
||||
import org.apache.dolphinscheduler.dao.mapper.TaskInstanceMapper;
|
||||
import org.apache.dolphinscheduler.dao.mapper.TenantMapper;
|
||||
import org.apache.dolphinscheduler.service.process.ProcessService;
|
||||
|
||||
import java.io.IOException;
|
||||
|
|
@ -108,26 +109,36 @@ public class ProcessInstanceServiceTest {
|
|||
@Mock
|
||||
UsersService usersService;
|
||||
|
||||
private String shellJson = "{\"globalParams\":[],\"tasks\":[{\"type\":\"SHELL\",\"id\":\"tasks-9527\",\"name\":\"shell-1\","
|
||||
+ "\"params\":{\"resourceList\":[],\"localParams\":[],\"rawScript\":\"#!/bin/bash\\necho \\\"shell-1\\\"\"},"
|
||||
+ "\"description\":\"\",\"runFlag\":\"NORMAL\",\"dependence\":{},\"maxRetryTimes\":\"0\",\"retryInterval\":\"1\","
|
||||
+ "\"timeout\":{\"strategy\":\"\",\"interval\":1,\"enable\":false},\"taskInstancePriority\":\"MEDIUM\","
|
||||
+ "\"workerGroupId\":-1,\"preTasks\":[]}],\"tenantId\":1,\"timeout\":0}";
|
||||
@Mock
|
||||
TenantMapper tenantMapper;
|
||||
|
||||
private String shellJson = "[{\"name\":\"\",\"preTaskCode\":0,\"preTaskVersion\":0,\"postTaskCode\":123456789,"
|
||||
+ "\"postTaskVersion\":1,\"conditionType\":0,\"conditionParams\":\"{}\"},{\"name\":\"\",\"preTaskCode\":123456789,"
|
||||
+ "\"preTaskVersion\":1,\"postTaskCode\":123451234,\"postTaskVersion\":1,\"conditionType\":0,\"conditionParams\":\"{}\"}]";
|
||||
|
||||
private String taskJson = "[{\"name\":\"shell1\",\"description\":\"\",\"taskType\":\"SHELL\",\"taskParams\":{\"resourceList\":[],"
|
||||
+ "\"localParams\":[],\"rawScript\":\"echo 1\",\"conditionResult\":{\"successNode\":[\"\"],\"failedNode\":[\"\"]},\"dependence\":{}},"
|
||||
+ "\"flag\":\"NORMAL\",\"taskPriority\":\"MEDIUM\",\"workerGroup\":\"default\",\"failRetryTimes\":\"0\",\"failRetryInterval\":\"1\","
|
||||
+ "\"timeoutFlag\":\"CLOSE\",\"timeoutNotifyStrategy\":\"\",\"timeout\":null,\"delayTime\":\"0\"},{\"name\":\"shell2\",\"description\":\"\","
|
||||
+ "\"taskType\":\"SHELL\",\"taskParams\":{\"resourceList\":[],\"localParams\":[],\"rawScript\":\"echo 2\",\"conditionResult\":{\"successNode\""
|
||||
+ ":[\"\"],\"failedNode\":[\"\"]},\"dependence\":{}},\"flag\":\"NORMAL\",\"taskPriority\":\"MEDIUM\",\"workerGroup\":\"default\","
|
||||
+ "\"failRetryTimes\":\"0\",\"failRetryInterval\":\"1\",\"timeoutFlag\":\"CLOSE\",\"timeoutNotifyStrategy\":\"\",\"timeout\":null,\"delayTime\":\"0\"}]";
|
||||
|
||||
@Test
|
||||
public void testQueryProcessInstanceList() {
|
||||
String projectName = "project_test1";
|
||||
long projectCode = 1L;
|
||||
User loginUser = getAdminUser();
|
||||
Project project = getProject(projectCode);
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.PROJECT_NOT_FOUNT, projectName);
|
||||
putMsg(result, Status.PROJECT_NOT_FOUNT, projectCode);
|
||||
|
||||
//project auth fail
|
||||
when(projectMapper.queryByName(projectName)).thenReturn(null);
|
||||
when(projectService.checkProjectAndAuth(loginUser, null, projectName)).thenReturn(result);
|
||||
Result proejctAuthFailRes = processInstanceService.queryProcessInstanceList(loginUser, projectName, 46, "2020-01-01 00:00:00",
|
||||
"2020-01-02 00:00:00", "", "test_user", ExecutionStatus.SUBMITTED_SUCCESS,
|
||||
"192.168.xx.xx", 1, 10);
|
||||
Assert.assertEquals(Status.PROJECT_NOT_FOUNT.getCode(),(int) proejctAuthFailRes.getCode());
|
||||
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, projectCode)).thenReturn(result);
|
||||
Result proejctAuthFailRes = processInstanceService.queryProcessInstanceList(loginUser, projectCode, 46, "2020-01-01 00:00:00",
|
||||
"2020-01-02 00:00:00", "", "test_user", ExecutionStatus.SUBMITTED_SUCCESS,
|
||||
"192.168.xx.xx", 1, 10);
|
||||
Assert.assertEquals(Status.PROJECT_NOT_FOUNT.getCode(), (int) proejctAuthFailRes.getCode());
|
||||
|
||||
Date start = DateUtils.getScheduleDate("2020-01-01 00:00:00");
|
||||
Date end = DateUtils.getScheduleDate("2020-01-02 00:00:00");
|
||||
|
|
@ -138,67 +149,69 @@ public class ProcessInstanceServiceTest {
|
|||
pageReturn.setRecords(processInstanceList);
|
||||
|
||||
// data parameter check
|
||||
putMsg(result, Status.SUCCESS, projectName);
|
||||
Project project = getProject(projectName);
|
||||
when(projectMapper.queryByName(projectName)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, projectName)).thenReturn(result);
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, projectCode)).thenReturn(result);
|
||||
when(processDefineMapper.selectById(Mockito.anyInt())).thenReturn(getProcessDefinition());
|
||||
when(processInstanceMapper.queryProcessInstanceListPaging(Mockito.any(Page.class)
|
||||
, Mockito.any(), Mockito.any(), Mockito.any(), Mockito.any(), Mockito.any(),
|
||||
eq("192.168.xx.xx"), Mockito.any(), Mockito.any())).thenReturn(pageReturn);
|
||||
, Mockito.any(), Mockito.any(), Mockito.any(), Mockito.any(), Mockito.any(),
|
||||
eq("192.168.xx.xx"), Mockito.any(), Mockito.any())).thenReturn(pageReturn);
|
||||
|
||||
Result dataParameterRes = processInstanceService.queryProcessInstanceList(loginUser, projectName, 1, "20200101 00:00:00",
|
||||
"20200102 00:00:00", "", loginUser.getUserName(), ExecutionStatus.SUBMITTED_SUCCESS,
|
||||
"192.168.xx.xx", 1, 10);
|
||||
Assert.assertEquals(Status.REQUEST_PARAMS_NOT_VALID_ERROR.getCode(),(int) dataParameterRes.getCode());
|
||||
Result dataParameterRes = processInstanceService.queryProcessInstanceList(loginUser, projectCode, 1, "20200101 00:00:00",
|
||||
"20200102 00:00:00", "", loginUser.getUserName(), ExecutionStatus.SUBMITTED_SUCCESS,
|
||||
"192.168.xx.xx", 1, 10);
|
||||
Assert.assertEquals(Status.REQUEST_PARAMS_NOT_VALID_ERROR.getCode(), (int) dataParameterRes.getCode());
|
||||
|
||||
//project auth success
|
||||
putMsg(result, Status.SUCCESS, projectName);
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
|
||||
when(projectMapper.queryByName(projectName)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, projectName)).thenReturn(result);
|
||||
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, projectCode)).thenReturn(result);
|
||||
when(usersService.queryUser(loginUser.getId())).thenReturn(loginUser);
|
||||
when(usersService.getUserIdByName(loginUser.getUserName())).thenReturn(loginUser.getId());
|
||||
when(processInstanceMapper.queryProcessInstanceListPaging(Mockito.any(Page.class), eq(project.getCode()), eq(1L), eq(""), eq(-1), Mockito.any(),
|
||||
eq("192.168.xx.xx"), eq(start), eq(end))).thenReturn(pageReturn);
|
||||
eq("192.168.xx.xx"), eq(start), eq(end))).thenReturn(pageReturn);
|
||||
when(usersService.queryUser(processInstance.getExecutorId())).thenReturn(loginUser);
|
||||
Result successRes = processInstanceService.queryProcessInstanceList(loginUser, projectName, 1, "2020-01-01 00:00:00",
|
||||
"2020-01-02 00:00:00", "", loginUser.getUserName(), ExecutionStatus.SUBMITTED_SUCCESS,
|
||||
"192.168.xx.xx", 1, 10);
|
||||
|
||||
Result successRes = processInstanceService.queryProcessInstanceList(loginUser, projectCode, 1, "2020-01-01 00:00:00",
|
||||
"2020-01-02 00:00:00", "", loginUser.getUserName(), ExecutionStatus.SUBMITTED_SUCCESS,
|
||||
"192.168.xx.xx", 1, 10);
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(), (int)successRes.getCode());
|
||||
|
||||
// data parameter empty
|
||||
when(processInstanceMapper.queryProcessInstanceListPaging(Mockito.any(Page.class), eq(project.getCode()), eq(1L), eq(""), eq(-1), Mockito.any(),
|
||||
eq("192.168.xx.xx"), eq(null), eq(null))).thenReturn(pageReturn);
|
||||
successRes = processInstanceService.queryProcessInstanceList(loginUser, projectName, 1, "",
|
||||
"", "", loginUser.getUserName(), ExecutionStatus.SUBMITTED_SUCCESS,
|
||||
"192.168.xx.xx", 1, 10);
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(), (int)successRes.getCode());
|
||||
eq("192.168.xx.xx"), eq(null), eq(null))).thenReturn(pageReturn);
|
||||
successRes = processInstanceService.queryProcessInstanceList(loginUser, projectCode, 1, "",
|
||||
"", "", loginUser.getUserName(), ExecutionStatus.SUBMITTED_SUCCESS,
|
||||
"192.168.xx.xx", 1, 10);
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(), (int)successRes.getCode());
|
||||
|
||||
//executor null
|
||||
when(usersService.queryUser(loginUser.getId())).thenReturn(null);
|
||||
when(usersService.getUserIdByName(loginUser.getUserName())).thenReturn(-1);
|
||||
Result executorExistRes = processInstanceService.queryProcessInstanceList(loginUser, projectName, 1, "2020-01-01 00:00:00",
|
||||
"2020-01-02 00:00:00", "", "admin", ExecutionStatus.SUBMITTED_SUCCESS,
|
||||
"192.168.xx.xx", 1, 10);
|
||||
Result executorExistRes = processInstanceService.queryProcessInstanceList(loginUser, projectCode, 1, "2020-01-01 00:00:00",
|
||||
"2020-01-02 00:00:00", "", "admin", ExecutionStatus.SUBMITTED_SUCCESS,
|
||||
"192.168.xx.xx", 1, 10);
|
||||
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(), (int)executorExistRes.getCode());
|
||||
|
||||
//executor name empty
|
||||
when(processInstanceMapper.queryProcessInstanceListPaging(Mockito.any(Page.class), eq(project.getCode()), eq(1L), eq(""), eq(0), Mockito.any(),
|
||||
eq("192.168.xx.xx"), eq(start), eq(end))).thenReturn(pageReturn);
|
||||
Result executorEmptyRes = processInstanceService.queryProcessInstanceList(loginUser, projectName, 1, "2020-01-01 00:00:00",
|
||||
"2020-01-02 00:00:00", "", "", ExecutionStatus.SUBMITTED_SUCCESS,
|
||||
"192.168.xx.xx", 1, 10);
|
||||
eq("192.168.xx.xx"), eq(start), eq(end))).thenReturn(pageReturn);
|
||||
Result executorEmptyRes = processInstanceService.queryProcessInstanceList(loginUser, projectCode, 1, "2020-01-01 00:00:00",
|
||||
"2020-01-02 00:00:00", "", "", ExecutionStatus.SUBMITTED_SUCCESS,
|
||||
"192.168.xx.xx", 1, 10);
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(), (int)executorEmptyRes.getCode());
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testQueryTopNLongestRunningProcessInstance() {
|
||||
String projectName = "project_test1";
|
||||
long projectCode = 1L;
|
||||
User loginUser = getAdminUser();
|
||||
Project project = getProject(projectCode);
|
||||
Map<String, Object> result = new HashMap<>(5);
|
||||
putMsg(result, Status.PROJECT_NOT_FOUNT, projectName);
|
||||
putMsg(result, Status.PROJECT_NOT_FOUNT, projectCode);
|
||||
int size = 10;
|
||||
String startTime = "2020-01-01 00:00:00";
|
||||
String endTime = "2020-08-02 00:00:00";
|
||||
|
|
@ -206,77 +219,76 @@ public class ProcessInstanceServiceTest {
|
|||
Date end = DateUtils.getScheduleDate(endTime);
|
||||
|
||||
//project auth fail
|
||||
when(projectMapper.queryByName(projectName)).thenReturn(null);
|
||||
when(projectService.checkProjectAndAuth(loginUser, null, projectName)).thenReturn(result);
|
||||
Map<String, Object> proejctAuthFailRes = processInstanceService.queryTopNLongestRunningProcessInstance(loginUser, projectName, size, startTime, endTime);
|
||||
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, projectCode)).thenReturn(result);
|
||||
Map<String, Object> proejctAuthFailRes = processInstanceService.queryTopNLongestRunningProcessInstance(loginUser, projectCode, size, startTime, endTime);
|
||||
Assert.assertEquals(Status.PROJECT_NOT_FOUNT, proejctAuthFailRes.get(Constants.STATUS));
|
||||
|
||||
//project auth success
|
||||
putMsg(result, Status.SUCCESS, projectName);
|
||||
Project project = getProject(projectName);
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
ProcessInstance processInstance = getProcessInstance();
|
||||
when(projectMapper.queryByName(projectName)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, projectName)).thenReturn(result);
|
||||
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, projectCode)).thenReturn(result);
|
||||
when(usersService.queryUser(loginUser.getId())).thenReturn(loginUser);
|
||||
when(usersService.getUserIdByName(loginUser.getUserName())).thenReturn(loginUser.getId());
|
||||
when(usersService.queryUser(processInstance.getExecutorId())).thenReturn(loginUser);
|
||||
Map<String, Object> successRes = processInstanceService.queryTopNLongestRunningProcessInstance(loginUser, projectName, size, startTime, endTime);
|
||||
Map<String, Object> successRes = processInstanceService.queryTopNLongestRunningProcessInstance(loginUser, projectCode, size, startTime, endTime);
|
||||
|
||||
Assert.assertEquals(Status.SUCCESS, successRes.get(Constants.STATUS));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testQueryProcessInstanceById() {
|
||||
String projectName = "project_test1";
|
||||
long projectCode = 1L;
|
||||
User loginUser = getAdminUser();
|
||||
Project project = getProject(projectCode);
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.PROJECT_NOT_FOUNT, projectName);
|
||||
putMsg(result, Status.PROJECT_NOT_FOUNT, projectCode);
|
||||
|
||||
//project auth fail
|
||||
when(projectMapper.queryByName(projectName)).thenReturn(null);
|
||||
when(projectService.checkProjectAndAuth(loginUser, null, projectName)).thenReturn(result);
|
||||
Map<String, Object> proejctAuthFailRes = processInstanceService.queryProcessInstanceById(loginUser, projectName, 1);
|
||||
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, projectCode)).thenReturn(result);
|
||||
Map<String, Object> proejctAuthFailRes = processInstanceService.queryProcessInstanceById(loginUser, projectCode, 1);
|
||||
Assert.assertEquals(Status.PROJECT_NOT_FOUNT, proejctAuthFailRes.get(Constants.STATUS));
|
||||
|
||||
//project auth success
|
||||
ProcessInstance processInstance = getProcessInstance();
|
||||
putMsg(result, Status.SUCCESS, projectName);
|
||||
Project project = getProject(projectName);
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
ProcessDefinition processDefinition = getProcessDefinition();
|
||||
when(projectMapper.queryByName(projectName)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, projectName)).thenReturn(result);
|
||||
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, projectCode)).thenReturn(result);
|
||||
when(processService.findProcessInstanceDetailById(processInstance.getId())).thenReturn(processInstance);
|
||||
when(processService.findProcessDefinition(processInstance.getProcessDefinitionCode(),
|
||||
processInstance.getProcessDefinitionVersion())).thenReturn(processDefinition);
|
||||
Map<String, Object> successRes = processInstanceService.queryProcessInstanceById(loginUser, projectName, 1);
|
||||
processInstance.getProcessDefinitionVersion())).thenReturn(processDefinition);
|
||||
Map<String, Object> successRes = processInstanceService.queryProcessInstanceById(loginUser, projectCode, 1);
|
||||
Assert.assertEquals(Status.SUCCESS, successRes.get(Constants.STATUS));
|
||||
|
||||
//worker group null
|
||||
Map<String, Object> workerNullRes = processInstanceService.queryProcessInstanceById(loginUser, projectName, 1);
|
||||
Map<String, Object> workerNullRes = processInstanceService.queryProcessInstanceById(loginUser, projectCode, 1);
|
||||
Assert.assertEquals(Status.SUCCESS, workerNullRes.get(Constants.STATUS));
|
||||
|
||||
//worker group exist
|
||||
WorkerGroup workerGroup = getWorkGroup();
|
||||
Map<String, Object> workerExistRes = processInstanceService.queryProcessInstanceById(loginUser, projectName, 1);
|
||||
Map<String, Object> workerExistRes = processInstanceService.queryProcessInstanceById(loginUser, projectCode, 1);
|
||||
Assert.assertEquals(Status.SUCCESS, workerExistRes.get(Constants.STATUS));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testQueryTaskListByProcessId() throws IOException {
|
||||
String projectName = "project_test1";
|
||||
long projectCode = 1L;
|
||||
User loginUser = getAdminUser();
|
||||
Project project = getProject(projectCode);
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.PROJECT_NOT_FOUNT, projectName);
|
||||
putMsg(result, Status.PROJECT_NOT_FOUNT, projectCode);
|
||||
|
||||
//project auth fail
|
||||
when(projectMapper.queryByName(projectName)).thenReturn(null);
|
||||
when(projectService.checkProjectAndAuth(loginUser, null, projectName)).thenReturn(result);
|
||||
Map<String, Object> proejctAuthFailRes = processInstanceService.queryTaskListByProcessId(loginUser, projectName, 1);
|
||||
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, projectCode)).thenReturn(result);
|
||||
Map<String, Object> proejctAuthFailRes = processInstanceService.queryTaskListByProcessId(loginUser, projectCode, 1);
|
||||
Assert.assertEquals(Status.PROJECT_NOT_FOUNT, proejctAuthFailRes.get(Constants.STATUS));
|
||||
|
||||
//project auth success
|
||||
putMsg(result, Status.SUCCESS, projectName);
|
||||
Project project = getProject(projectName);
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
ProcessInstance processInstance = getProcessInstance();
|
||||
processInstance.setState(ExecutionStatus.SUCCESS);
|
||||
TaskInstance taskInstance = new TaskInstance();
|
||||
|
|
@ -286,103 +298,107 @@ public class ProcessInstanceServiceTest {
|
|||
Result res = new Result();
|
||||
res.setCode(Status.SUCCESS.ordinal());
|
||||
res.setData("xxx");
|
||||
when(projectMapper.queryByName(projectName)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, projectName)).thenReturn(result);
|
||||
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, projectCode)).thenReturn(result);
|
||||
when(processService.findProcessInstanceDetailById(processInstance.getId())).thenReturn(processInstance);
|
||||
when(processService.findValidTaskListByProcessId(processInstance.getId())).thenReturn(taskInstanceList);
|
||||
when(loggerService.queryLog(taskInstance.getId(), 0, 4098)).thenReturn(res);
|
||||
Map<String, Object> successRes = processInstanceService.queryTaskListByProcessId(loginUser, projectName, 1);
|
||||
Map<String, Object> successRes = processInstanceService.queryTaskListByProcessId(loginUser, projectCode, 1);
|
||||
Assert.assertEquals(Status.SUCCESS, successRes.get(Constants.STATUS));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testParseLogForDependentResult() throws IOException {
|
||||
String logString = "[INFO] 2019-03-19 17:11:08.475 org.apache.dolphinscheduler.server.worker.log.TaskLogger:[172]"
|
||||
+ " - [taskAppId=TASK_223_10739_452334] dependent item complete :|| 223-ALL-day-last1Day,SUCCESS\n"
|
||||
+ "[INFO] 2019-03-19 17:11:08.476 org.apache.dolphinscheduler.server.worker.runner.TaskScheduleThread:[172]"
|
||||
+ " - task : 223_10739_452334 exit status code : 0\n"
|
||||
+ "[root@node2 current]# ";
|
||||
+ " - [taskAppId=TASK_223_10739_452334] dependent item complete :|| 223-ALL-day-last1Day,SUCCESS\n"
|
||||
+ "[INFO] 2019-03-19 17:11:08.476 org.apache.dolphinscheduler.server.worker.runner.TaskScheduleThread:[172]"
|
||||
+ " - task : 223_10739_452334 exit status code : 0\n"
|
||||
+ "[root@node2 current]# ";
|
||||
Map<String, DependResult> resultMap =
|
||||
processInstanceService.parseLogForDependentResult(logString);
|
||||
processInstanceService.parseLogForDependentResult(logString);
|
||||
Assert.assertEquals(1, resultMap.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testQuerySubProcessInstanceByTaskId() {
|
||||
String projectName = "project_test1";
|
||||
long projectCode = 1L;
|
||||
User loginUser = getAdminUser();
|
||||
Project project = getProject(projectCode);
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.PROJECT_NOT_FOUNT, projectName);
|
||||
putMsg(result, Status.PROJECT_NOT_FOUNT, projectCode);
|
||||
|
||||
//project auth fail
|
||||
when(projectMapper.queryByName(projectName)).thenReturn(null);
|
||||
when(projectService.checkProjectAndAuth(loginUser, null, projectName)).thenReturn(result);
|
||||
Map<String, Object> proejctAuthFailRes = processInstanceService.querySubProcessInstanceByTaskId(loginUser, projectName, 1);
|
||||
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, projectCode)).thenReturn(result);
|
||||
Map<String, Object> proejctAuthFailRes = processInstanceService.querySubProcessInstanceByTaskId(loginUser, projectCode, 1);
|
||||
Assert.assertEquals(Status.PROJECT_NOT_FOUNT, proejctAuthFailRes.get(Constants.STATUS));
|
||||
|
||||
//task null
|
||||
Project project = getProject(projectName);
|
||||
putMsg(result, Status.SUCCESS, projectName);
|
||||
when(projectMapper.queryByName(projectName)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, projectName)).thenReturn(result);
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, projectCode)).thenReturn(result);
|
||||
when(processService.findTaskInstanceById(1)).thenReturn(null);
|
||||
Map<String, Object> taskNullRes = processInstanceService.querySubProcessInstanceByTaskId(loginUser, projectName, 1);
|
||||
Map<String, Object> taskNullRes = processInstanceService.querySubProcessInstanceByTaskId(loginUser, projectCode, 1);
|
||||
Assert.assertEquals(Status.TASK_INSTANCE_NOT_EXISTS, taskNullRes.get(Constants.STATUS));
|
||||
|
||||
//task not sub process
|
||||
TaskInstance taskInstance = getTaskInstance();
|
||||
taskInstance.setTaskType(TaskType.HTTP.getDesc());
|
||||
taskInstance.setProcessInstanceId(1);
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
when(processService.findTaskInstanceById(1)).thenReturn(taskInstance);
|
||||
Map<String, Object> notSubprocessRes = processInstanceService.querySubProcessInstanceByTaskId(loginUser, projectName, 1);
|
||||
Map<String, Object> notSubprocessRes = processInstanceService.querySubProcessInstanceByTaskId(loginUser, projectCode, 1);
|
||||
Assert.assertEquals(Status.TASK_INSTANCE_NOT_SUB_WORKFLOW_INSTANCE, notSubprocessRes.get(Constants.STATUS));
|
||||
|
||||
//sub process not exist
|
||||
TaskInstance subTask = getTaskInstance();
|
||||
subTask.setTaskType(TaskType.SUB_PROCESS.getDesc());
|
||||
subTask.setProcessInstanceId(1);
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
when(processService.findTaskInstanceById(subTask.getId())).thenReturn(subTask);
|
||||
when(processService.findSubProcessInstance(subTask.getProcessInstanceId(), subTask.getId())).thenReturn(null);
|
||||
Map<String, Object> subprocessNotExistRes = processInstanceService.querySubProcessInstanceByTaskId(loginUser, projectName, 1);
|
||||
Map<String, Object> subprocessNotExistRes = processInstanceService.querySubProcessInstanceByTaskId(loginUser, projectCode, 1);
|
||||
Assert.assertEquals(Status.SUB_PROCESS_INSTANCE_NOT_EXIST, subprocessNotExistRes.get(Constants.STATUS));
|
||||
|
||||
//sub process exist
|
||||
ProcessInstance processInstance = getProcessInstance();
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
when(processService.findSubProcessInstance(taskInstance.getProcessInstanceId(), taskInstance.getId())).thenReturn(processInstance);
|
||||
Map<String, Object> subprocessExistRes = processInstanceService.querySubProcessInstanceByTaskId(loginUser, projectName, 1);
|
||||
Map<String, Object> subprocessExistRes = processInstanceService.querySubProcessInstanceByTaskId(loginUser, projectCode, 1);
|
||||
Assert.assertEquals(Status.SUCCESS, subprocessExistRes.get(Constants.STATUS));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateProcessInstance() {
|
||||
String projectName = "project_test1";
|
||||
long projectCode = 1L;
|
||||
User loginUser = getAdminUser();
|
||||
Project project = getProject(projectCode);
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.PROJECT_NOT_FOUNT, projectName);
|
||||
putMsg(result, Status.PROJECT_NOT_FOUNT, projectCode);
|
||||
|
||||
//project auth fail
|
||||
when(projectMapper.queryByName(projectName)).thenReturn(null);
|
||||
when(projectService.checkProjectAndAuth(loginUser, null, projectName)).thenReturn(result);
|
||||
Map<String, Object> proejctAuthFailRes = processInstanceService.updateProcessInstance(loginUser, projectName, 1,
|
||||
shellJson, "2020-02-21 00:00:00", true, Flag.YES, "", "");
|
||||
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, projectCode)).thenReturn(result);
|
||||
Map<String, Object> proejctAuthFailRes = processInstanceService.updateProcessInstance(loginUser, projectCode, 1,
|
||||
shellJson, taskJson, "2020-02-21 00:00:00", true, "", "", 0, "");
|
||||
Assert.assertEquals(Status.PROJECT_NOT_FOUNT, proejctAuthFailRes.get(Constants.STATUS));
|
||||
|
||||
//process instance null
|
||||
Project project = getProject(projectName);
|
||||
putMsg(result, Status.SUCCESS, projectName);
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
ProcessInstance processInstance = getProcessInstance();
|
||||
when(projectMapper.queryByName(projectName)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, projectName)).thenReturn(result);
|
||||
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, projectCode)).thenReturn(result);
|
||||
when(processService.findProcessInstanceDetailById(1)).thenReturn(null);
|
||||
Map<String, Object> processInstanceNullRes = processInstanceService.updateProcessInstance(loginUser, projectName, 1,
|
||||
shellJson, "2020-02-21 00:00:00", true, Flag.YES, "", "");
|
||||
Map<String, Object> processInstanceNullRes = processInstanceService.updateProcessInstance(loginUser, projectCode, 1,
|
||||
shellJson, taskJson,"2020-02-21 00:00:00", true, "", "", 0, "");
|
||||
Assert.assertEquals(Status.PROCESS_INSTANCE_NOT_EXIST, processInstanceNullRes.get(Constants.STATUS));
|
||||
|
||||
//process instance not finish
|
||||
when(processService.findProcessInstanceDetailById(1)).thenReturn(processInstance);
|
||||
processInstance.setState(ExecutionStatus.RUNNING_EXECUTION);
|
||||
Map<String, Object> processInstanceNotFinishRes = processInstanceService.updateProcessInstance(loginUser, projectName, 1,
|
||||
shellJson, "2020-02-21 00:00:00", true, Flag.YES, "", "");
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
Map<String, Object> processInstanceNotFinishRes = processInstanceService.updateProcessInstance(loginUser, projectCode, 1,
|
||||
shellJson, taskJson,"2020-02-21 00:00:00", true, "", "", 0, "");
|
||||
Assert.assertEquals(Status.PROCESS_INSTANCE_STATE_OPERATION_ERROR, processInstanceNotFinishRes.get(Constants.STATUS));
|
||||
|
||||
//process instance finish
|
||||
|
|
@ -394,90 +410,81 @@ public class ProcessInstanceServiceTest {
|
|||
ProcessDefinition processDefinition = getProcessDefinition();
|
||||
processDefinition.setId(1);
|
||||
processDefinition.setUserId(1);
|
||||
Tenant tenant = new Tenant();
|
||||
tenant.setId(1);
|
||||
tenant.setTenantCode("test_tenant");
|
||||
Tenant tenant = getTenant();
|
||||
when(processDefineMapper.queryByCode(46L)).thenReturn(processDefinition);
|
||||
when(tenantMapper.queryByTenantCode("root")).thenReturn(tenant);
|
||||
when(processService.getTenantForProcess(Mockito.anyInt(), Mockito.anyInt())).thenReturn(tenant);
|
||||
when(processService.updateProcessInstance(processInstance)).thenReturn(1);
|
||||
when(processDefinitionService.checkProcessNodeList(Mockito.any(), eq(shellJson))).thenReturn(result);
|
||||
when(processService.findProcessDefinition(processInstance.getProcessDefinitionCode(),
|
||||
processInstance.getProcessDefinitionVersion())).thenReturn(processDefinition);
|
||||
|
||||
Map<String, Object> processInstanceFinishRes = processInstanceService.updateProcessInstance(loginUser, projectName, 1,
|
||||
shellJson, "2020-02-21 00:00:00", true, Flag.YES, "", "");
|
||||
Assert.assertEquals(Status.UPDATE_PROCESS_INSTANCE_ERROR, processInstanceFinishRes.get(Constants.STATUS));
|
||||
when(processDefinitionService.checkProcessNodeList(shellJson)).thenReturn(result);
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
Map<String, Object> processInstanceFinishRes = processInstanceService.updateProcessInstance(loginUser, projectCode, 1,
|
||||
shellJson, taskJson,"2020-02-21 00:00:00", true, "", "", 0, "root");
|
||||
Assert.assertEquals(Status.CREATE_TASK_DEFINITION_ERROR, processInstanceFinishRes.get(Constants.STATUS));
|
||||
|
||||
//success
|
||||
when(processService.saveProcessDefinition(Mockito.any(), Mockito.any(),
|
||||
Mockito.anyString(), Mockito.anyString(), Mockito.anyString(),
|
||||
Mockito.anyString(), Mockito.any(), Mockito.any(), Mockito.anyBoolean())).thenReturn(1);
|
||||
when(processService.findProcessDefinition(46L, 0)).thenReturn(processDefinition);
|
||||
putMsg(result, Status.SUCCESS, projectName);
|
||||
when(processDefineMapper.queryByCode(46L)).thenReturn(processDefinition);
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
|
||||
Map<String, Object> successRes = processInstanceService.updateProcessInstance(loginUser, projectName, 1,
|
||||
shellJson, "2020-02-21 00:00:00", true, Flag.YES, "", "");
|
||||
Map<String, Object> successRes = processInstanceService.updateProcessInstance(loginUser, projectCode, 1,
|
||||
shellJson, taskJson,"2020-02-21 00:00:00", false, "", "", 0, "root");
|
||||
Assert.assertEquals(Status.SUCCESS, successRes.get(Constants.STATUS));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testQueryParentInstanceBySubId() {
|
||||
String projectName = "project_test1";
|
||||
long projectCode = 1L;
|
||||
User loginUser = getAdminUser();
|
||||
Project project = getProject(projectCode);
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.PROJECT_NOT_FOUNT, projectName);
|
||||
putMsg(result, Status.PROJECT_NOT_FOUNT, projectCode);
|
||||
|
||||
//project auth fail
|
||||
when(projectMapper.queryByName(projectName)).thenReturn(null);
|
||||
when(projectService.checkProjectAndAuth(loginUser, null, projectName)).thenReturn(result);
|
||||
Map<String, Object> proejctAuthFailRes = processInstanceService.queryParentInstanceBySubId(loginUser, projectName, 1);
|
||||
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, projectCode)).thenReturn(result);
|
||||
Map<String, Object> proejctAuthFailRes = processInstanceService.queryParentInstanceBySubId(loginUser, projectCode, 1);
|
||||
Assert.assertEquals(Status.PROJECT_NOT_FOUNT, proejctAuthFailRes.get(Constants.STATUS));
|
||||
|
||||
//process instance null
|
||||
Project project = getProject(projectName);
|
||||
putMsg(result, Status.SUCCESS, projectName);
|
||||
when(projectMapper.queryByName(projectName)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, projectName)).thenReturn(result);
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, projectCode)).thenReturn(result);
|
||||
when(processService.findProcessInstanceDetailById(1)).thenReturn(null);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, projectName)).thenReturn(result);
|
||||
Map<String, Object> processInstanceNullRes = processInstanceService.queryParentInstanceBySubId(loginUser, projectName, 1);
|
||||
Map<String, Object> processInstanceNullRes = processInstanceService.queryParentInstanceBySubId(loginUser, projectCode, 1);
|
||||
Assert.assertEquals(Status.PROCESS_INSTANCE_NOT_EXIST, processInstanceNullRes.get(Constants.STATUS));
|
||||
|
||||
//not sub process
|
||||
ProcessInstance processInstance = getProcessInstance();
|
||||
processInstance.setIsSubProcess(Flag.NO);
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
when(processService.findProcessInstanceDetailById(1)).thenReturn(processInstance);
|
||||
Map<String, Object> notSubProcessRes = processInstanceService.queryParentInstanceBySubId(loginUser, projectName, 1);
|
||||
Map<String, Object> notSubProcessRes = processInstanceService.queryParentInstanceBySubId(loginUser, projectCode, 1);
|
||||
Assert.assertEquals(Status.PROCESS_INSTANCE_NOT_SUB_PROCESS_INSTANCE, notSubProcessRes.get(Constants.STATUS));
|
||||
|
||||
//sub process
|
||||
processInstance.setIsSubProcess(Flag.YES);
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
when(processService.findParentProcessInstance(1)).thenReturn(null);
|
||||
Map<String, Object> subProcessNullRes = processInstanceService.queryParentInstanceBySubId(loginUser, projectName, 1);
|
||||
Map<String, Object> subProcessNullRes = processInstanceService.queryParentInstanceBySubId(loginUser, projectCode, 1);
|
||||
Assert.assertEquals(Status.SUB_PROCESS_INSTANCE_NOT_EXIST, subProcessNullRes.get(Constants.STATUS));
|
||||
|
||||
//success
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
when(processService.findParentProcessInstance(1)).thenReturn(processInstance);
|
||||
Map<String, Object> successRes = processInstanceService.queryParentInstanceBySubId(loginUser, projectName, 1);
|
||||
Map<String, Object> successRes = processInstanceService.queryParentInstanceBySubId(loginUser, projectCode, 1);
|
||||
Assert.assertEquals(Status.SUCCESS, successRes.get(Constants.STATUS));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteProcessInstanceById() {
|
||||
String projectName = "project_test1";
|
||||
long projectCode = 1L;
|
||||
User loginUser = getAdminUser();
|
||||
Project project = getProject(projectCode);
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.PROJECT_NOT_FOUNT, projectName);
|
||||
|
||||
//project auth fail
|
||||
when(projectMapper.queryByName(projectName)).thenReturn(null);
|
||||
when(projectService.checkProjectAndAuth(loginUser, null, projectName)).thenReturn(result);
|
||||
|
||||
putMsg(result, Status.PROJECT_NOT_FOUNT, projectCode);
|
||||
//process instance null
|
||||
Project project = getProject(projectName);
|
||||
putMsg(result, Status.SUCCESS, projectName);
|
||||
when(projectMapper.queryByName(projectName)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, projectName)).thenReturn(result);
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, projectCode)).thenReturn(result);
|
||||
when(processService.findProcessInstanceDetailById(1)).thenReturn(null);
|
||||
}
|
||||
|
||||
|
|
@ -487,7 +494,6 @@ public class ProcessInstanceServiceTest {
|
|||
ProcessInstance processInstance = getProcessInstance();
|
||||
processInstance.setCommandType(CommandType.SCHEDULER);
|
||||
processInstance.setScheduleTime(new Date());
|
||||
processInstance.setProcessInstanceJson(shellJson);
|
||||
processInstance.setGlobalParams("");
|
||||
when(processInstanceMapper.queryDetailById(1)).thenReturn(processInstance);
|
||||
Map<String, Object> successRes = processInstanceService.viewVariables(1);
|
||||
|
|
@ -497,14 +503,13 @@ public class ProcessInstanceServiceTest {
|
|||
@Test
|
||||
public void testViewGantt() throws Exception {
|
||||
ProcessInstance processInstance = getProcessInstance();
|
||||
processInstance.setProcessInstanceJson(shellJson);
|
||||
TaskInstance taskInstance = getTaskInstance();
|
||||
taskInstance.setState(ExecutionStatus.RUNNING_EXECUTION);
|
||||
taskInstance.setStartTime(new Date());
|
||||
when(processInstanceMapper.queryDetailById(1)).thenReturn(processInstance);
|
||||
when(processDefinitionLogMapper.queryByDefinitionCodeAndVersion(
|
||||
processInstance.getProcessDefinitionCode(),
|
||||
processInstance.getProcessDefinitionVersion()
|
||||
processInstance.getProcessDefinitionCode(),
|
||||
processInstance.getProcessDefinitionVersion()
|
||||
)).thenReturn(new ProcessDefinitionLog());
|
||||
when(processInstanceMapper.queryDetailById(1)).thenReturn(processInstance);
|
||||
when(taskInstanceMapper.queryByInstanceIdAndName(Mockito.anyInt(), Mockito.any())).thenReturn(taskInstance);
|
||||
|
|
@ -514,7 +519,7 @@ public class ProcessInstanceServiceTest {
|
|||
}
|
||||
|
||||
when(processService.genDagGraph(Mockito.any(ProcessDefinition.class)))
|
||||
.thenReturn(graph);
|
||||
.thenReturn(graph);
|
||||
|
||||
Map<String, Object> successRes = processInstanceService.viewGantt(1);
|
||||
Assert.assertEquals(Status.SUCCESS, successRes.get(Constants.STATUS));
|
||||
|
|
@ -536,14 +541,14 @@ public class ProcessInstanceServiceTest {
|
|||
/**
|
||||
* get mock Project
|
||||
*
|
||||
* @param projectName projectName
|
||||
* @param projectCode projectCode
|
||||
* @return Project
|
||||
*/
|
||||
private Project getProject(String projectName) {
|
||||
private Project getProject(long projectCode) {
|
||||
Project project = new Project();
|
||||
project.setCode(1L);
|
||||
project.setCode(projectCode);
|
||||
project.setId(1);
|
||||
project.setName(projectName);
|
||||
project.setName("project_test1");
|
||||
project.setUserId(1);
|
||||
return project;
|
||||
}
|
||||
|
|
@ -575,13 +580,19 @@ public class ProcessInstanceServiceTest {
|
|||
processDefinition.setVersion(1);
|
||||
processDefinition.setId(46);
|
||||
processDefinition.setName("test_pdf");
|
||||
processDefinition.setProjectId(2);
|
||||
processDefinition.setProjectCode(2L);
|
||||
processDefinition.setTenantId(1);
|
||||
processDefinition.setDescription("");
|
||||
return processDefinition;
|
||||
}
|
||||
|
||||
private Tenant getTenant() {
|
||||
Tenant tenant = new Tenant();
|
||||
tenant.setId(1);
|
||||
tenant.setTenantCode("root");
|
||||
return tenant;
|
||||
}
|
||||
|
||||
/**
|
||||
* get Mock worker group
|
||||
*
|
||||
|
|
|
|||
|
|
@ -1,107 +0,0 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The ASF licenses this file to You 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 org.apache.dolphinscheduler.api.service;
|
||||
|
||||
import org.apache.dolphinscheduler.api.enums.Status;
|
||||
import org.apache.dolphinscheduler.api.service.impl.ProcessTaskRelationServiceImpl;
|
||||
import org.apache.dolphinscheduler.api.service.impl.ProjectServiceImpl;
|
||||
import org.apache.dolphinscheduler.common.Constants;
|
||||
import org.apache.dolphinscheduler.common.enums.UserType;
|
||||
import org.apache.dolphinscheduler.dao.entity.Project;
|
||||
import org.apache.dolphinscheduler.dao.entity.User;
|
||||
import org.apache.dolphinscheduler.dao.mapper.ProcessDefinitionMapper;
|
||||
import org.apache.dolphinscheduler.dao.mapper.ProcessTaskRelationMapper;
|
||||
import org.apache.dolphinscheduler.dao.mapper.ProjectMapper;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class ProcessTaskRelationServiceImplTest {
|
||||
@InjectMocks
|
||||
private ProcessTaskRelationServiceImpl processTaskRelationService;
|
||||
|
||||
@Mock
|
||||
private ProcessDefinitionMapper processDefineMapper;
|
||||
|
||||
@Mock
|
||||
private ProcessTaskRelationMapper processTaskRelationMapper;
|
||||
|
||||
@Mock
|
||||
private ProjectMapper projectMapper;
|
||||
|
||||
@Mock
|
||||
private ProjectServiceImpl projectService;
|
||||
|
||||
@Test
|
||||
public void queryProcessTaskRelationTest() {
|
||||
String projectName = "project_test1";
|
||||
|
||||
Project project = getProject(projectName);
|
||||
Mockito.when(projectMapper.queryByName(projectName)).thenReturn(project);
|
||||
|
||||
User loginUser = new User();
|
||||
loginUser.setId(-1);
|
||||
loginUser.setUserType(UserType.GENERAL_USER);
|
||||
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.SUCCESS, projectName);
|
||||
|
||||
//project check auth fail
|
||||
Mockito.when(projectService.checkProjectAndAuth(loginUser, project, projectName)).thenReturn(result);
|
||||
|
||||
Map<String, Object> relation = processTaskRelationService
|
||||
.queryProcessTaskRelation(loginUser, projectName, 11L);
|
||||
|
||||
Assert.assertEquals(Status.SUCCESS, relation.get(Constants.STATUS));
|
||||
}
|
||||
|
||||
private void putMsg(Map<String, Object> result, Status status, Object... statusParams) {
|
||||
result.put(Constants.STATUS, status);
|
||||
if (statusParams != null && statusParams.length > 0) {
|
||||
result.put(Constants.MSG, MessageFormat.format(status.getMsg(), statusParams));
|
||||
} else {
|
||||
result.put(Constants.MSG, status.getMsg());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* get mock Project
|
||||
*
|
||||
* @param projectName projectName
|
||||
* @return Project
|
||||
*/
|
||||
private Project getProject(String projectName) {
|
||||
Project project = new Project();
|
||||
project.setCode(11L);
|
||||
project.setId(1);
|
||||
project.setName(projectName);
|
||||
project.setUserId(1);
|
||||
return project;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -102,29 +102,14 @@ public class ProjectServiceTest {
|
|||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testQueryById() {
|
||||
|
||||
//not exist
|
||||
Map<String, Object> result = projectService.queryById(Integer.MAX_VALUE);
|
||||
Assert.assertEquals(Status.PROJECT_NOT_FOUNT, result.get(Constants.STATUS));
|
||||
logger.info(result.toString());
|
||||
|
||||
//success
|
||||
Mockito.when(projectMapper.selectById(1)).thenReturn(getProject());
|
||||
result = projectService.queryById(1);
|
||||
logger.info(result.toString());
|
||||
Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCheckProjectAndAuth() {
|
||||
|
||||
long projectCode = 1L;
|
||||
Mockito.when(projectUserMapper.queryProjectRelation(1, 1)).thenReturn(getProjectUser());
|
||||
User loginUser = getLoginUser();
|
||||
|
||||
Map<String, Object> result = projectService.checkProjectAndAuth(loginUser, null, projectName);
|
||||
Map<String, Object> result = projectService.checkProjectAndAuth(loginUser, null, projectCode);
|
||||
logger.info(result.toString());
|
||||
Status status = (Status) result.get(Constants.STATUS);
|
||||
Assert.assertEquals(Status.PROJECT_NOT_FOUNT, result.get(Constants.STATUS));
|
||||
|
|
@ -132,30 +117,30 @@ public class ProjectServiceTest {
|
|||
Project project = getProject();
|
||||
//USER_NO_OPERATION_PROJECT_PERM
|
||||
project.setUserId(2);
|
||||
result = projectService.checkProjectAndAuth(loginUser, project, projectName);
|
||||
result = projectService.checkProjectAndAuth(loginUser, project, projectCode);
|
||||
logger.info(result.toString());
|
||||
Assert.assertEquals(Status.USER_NO_OPERATION_PROJECT_PERM, result.get(Constants.STATUS));
|
||||
|
||||
//success
|
||||
project.setUserId(1);
|
||||
result = projectService.checkProjectAndAuth(loginUser, project, projectName);
|
||||
result = projectService.checkProjectAndAuth(loginUser, project, projectCode);
|
||||
logger.info(result.toString());
|
||||
Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
|
||||
|
||||
Map<String, Object> result2 = new HashMap<>();
|
||||
|
||||
result2 = projectService.checkProjectAndAuth(loginUser, null, projectName);
|
||||
result2 = projectService.checkProjectAndAuth(loginUser, null, projectCode);
|
||||
Assert.assertEquals(Status.PROJECT_NOT_FOUNT, result2.get(Constants.STATUS));
|
||||
|
||||
Project project1 = getProject();
|
||||
// USER_NO_OPERATION_PROJECT_PERM
|
||||
project1.setUserId(2);
|
||||
result2 = projectService.checkProjectAndAuth(loginUser, project1, projectName);
|
||||
result2 = projectService.checkProjectAndAuth(loginUser, project1, projectCode);
|
||||
Assert.assertEquals(Status.USER_NO_OPERATION_PROJECT_PERM, result2.get(Constants.STATUS));
|
||||
|
||||
//success
|
||||
project1.setUserId(1);
|
||||
projectService.checkProjectAndAuth(loginUser, project1, projectName);
|
||||
projectService.checkProjectAndAuth(loginUser, project1, projectCode);
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -207,33 +192,31 @@ public class ProjectServiceTest {
|
|||
|
||||
@Test
|
||||
public void testDeleteProject() {
|
||||
|
||||
Mockito.when(projectMapper.selectById(1)).thenReturn(getProject());
|
||||
User loginUser = getLoginUser();
|
||||
Mockito.when(projectMapper.queryByCode(1L)).thenReturn(getProject());
|
||||
//PROJECT_NOT_FOUNT
|
||||
Map<String, Object> result = projectService.deleteProject(loginUser, 12);
|
||||
Map<String, Object> result = projectService.deleteProject(loginUser, 11L);
|
||||
logger.info(result.toString());
|
||||
Assert.assertEquals(Status.PROJECT_NOT_FOUNT, result.get(Constants.STATUS));
|
||||
loginUser.setId(2);
|
||||
//USER_NO_OPERATION_PROJECT_PERM
|
||||
result = projectService.deleteProject(loginUser, 1);
|
||||
result = projectService.deleteProject(loginUser, 1L);
|
||||
logger.info(result.toString());
|
||||
Assert.assertEquals(Status.USER_NO_OPERATION_PROJECT_PERM, result.get(Constants.STATUS));
|
||||
|
||||
//DELETE_PROJECT_ERROR_DEFINES_NOT_NULL
|
||||
Mockito.when(processDefinitionMapper.queryAllDefinitionList(1L)).thenReturn(getProcessDefinitions());
|
||||
loginUser.setUserType(UserType.ADMIN_USER);
|
||||
result = projectService.deleteProject(loginUser, 1);
|
||||
result = projectService.deleteProject(loginUser, 1L);
|
||||
logger.info(result.toString());
|
||||
Assert.assertEquals(Status.DELETE_PROJECT_ERROR_DEFINES_NOT_NULL, result.get(Constants.STATUS));
|
||||
|
||||
//success
|
||||
Mockito.when(projectMapper.deleteById(1)).thenReturn(1);
|
||||
Mockito.when(processDefinitionMapper.queryAllDefinitionList(1L)).thenReturn(new ArrayList<>());
|
||||
result = projectService.deleteProject(loginUser, 1);
|
||||
result = projectService.deleteProject(loginUser, 1L);
|
||||
logger.info(result.toString());
|
||||
Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -241,28 +224,28 @@ public class ProjectServiceTest {
|
|||
|
||||
User loginUser = getLoginUser();
|
||||
Project project = getProject();
|
||||
project.setId(2);
|
||||
project.setCode(2L);
|
||||
Mockito.when(projectMapper.queryByName(projectName)).thenReturn(project);
|
||||
Mockito.when(projectMapper.selectById(1)).thenReturn(getProject());
|
||||
Mockito.when(projectMapper.queryByCode(2L)).thenReturn(getProject());
|
||||
// PROJECT_NOT_FOUNT
|
||||
Map<String, Object> result = projectService.update(loginUser, 12, projectName, "desc", "testUser");
|
||||
Map<String, Object> result = projectService.update(loginUser, 1L, projectName, "desc", "testUser");
|
||||
logger.info(result.toString());
|
||||
Assert.assertEquals(Status.PROJECT_NOT_FOUNT, result.get(Constants.STATUS));
|
||||
|
||||
//PROJECT_ALREADY_EXISTS
|
||||
result = projectService.update(loginUser, 1, projectName, "desc", "testUser");
|
||||
result = projectService.update(loginUser, 2L, projectName, "desc", userName);
|
||||
logger.info(result.toString());
|
||||
Assert.assertEquals(Status.PROJECT_ALREADY_EXISTS, result.get(Constants.STATUS));
|
||||
|
||||
Mockito.when(userMapper.queryByUserNameAccurately(Mockito.any())).thenReturn(null);
|
||||
result = projectService.update(loginUser, 1, "test", "desc", "testuser");
|
||||
result = projectService.update(loginUser, 2L, "test", "desc", "testuser");
|
||||
Assert.assertEquals(Status.USER_NOT_EXIST, result.get(Constants.STATUS));
|
||||
|
||||
//success
|
||||
Mockito.when(userMapper.queryByUserNameAccurately(Mockito.any())).thenReturn(new User());
|
||||
project.setUserId(1);
|
||||
Mockito.when(projectMapper.updateById(Mockito.any(Project.class))).thenReturn(1);
|
||||
result = projectService.update(loginUser, 1, "test", "desc", "testUser");
|
||||
result = projectService.update(loginUser, 2L, "test", "desc", "testUser");
|
||||
logger.info(result.toString());
|
||||
Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
|
||||
|
||||
|
|
@ -394,7 +377,7 @@ public class ProjectServiceTest {
|
|||
private List<ProcessDefinition> getProcessDefinitions() {
|
||||
List<ProcessDefinition> list = new ArrayList<>();
|
||||
ProcessDefinition processDefinition = new ProcessDefinition();
|
||||
processDefinition.setProjectId(1);
|
||||
processDefinition.setProjectCode(1L);
|
||||
list.add(processDefinition);
|
||||
return list;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -156,27 +156,27 @@ public class QueueServiceTest {
|
|||
//queue null
|
||||
Result result = queueService.verifyQueue(null,queueName);
|
||||
logger.info(result.toString());
|
||||
Assert.assertTrue(result.isStatus(Status.REQUEST_PARAMS_NOT_VALID_ERROR));
|
||||
Assert.assertEquals(result.getCode().intValue(), Status.REQUEST_PARAMS_NOT_VALID_ERROR.getCode());
|
||||
|
||||
//queueName null
|
||||
result = queueService.verifyQueue(queueName,null);
|
||||
logger.info(result.toString());
|
||||
Assert.assertTrue(result.isStatus(Status.REQUEST_PARAMS_NOT_VALID_ERROR));
|
||||
Assert.assertEquals(result.getCode().intValue(), Status.REQUEST_PARAMS_NOT_VALID_ERROR.getCode());
|
||||
|
||||
//exist queueName
|
||||
result = queueService.verifyQueue(queueName,queueName);
|
||||
logger.info(result.toString());
|
||||
Assert.assertTrue(result.isStatus(Status.QUEUE_NAME_EXIST));
|
||||
Assert.assertEquals(result.getCode().intValue(), Status.QUEUE_NAME_EXIST.getCode());
|
||||
|
||||
//exist queue
|
||||
result = queueService.verifyQueue(queueName,"test");
|
||||
logger.info(result.toString());
|
||||
Assert.assertTrue(result.isStatus(Status.QUEUE_VALUE_EXIST));
|
||||
Assert.assertEquals(result.getCode().intValue(), Status.QUEUE_VALUE_EXIST.getCode());
|
||||
|
||||
// success
|
||||
result = queueService.verifyQueue("test","test");
|
||||
logger.info(result.toString());
|
||||
Assert.assertTrue(result.isSuccess());
|
||||
Assert.assertEquals(result.getCode().intValue(), Status.SUCCESS.getCode());
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -235,7 +235,7 @@ public class ResourcesServiceTest {
|
|||
Mockito.when(userMapper.selectById(Mockito.anyInt())).thenReturn(null);
|
||||
result = resourcesService.updateResource(user, 1, "ResourcesServiceTest1.jar", "ResourcesServiceTest", ResourceType.UDF, null);
|
||||
logger.info(result.toString());
|
||||
Assert.assertTrue(result.isStatus(Status.USER_NOT_EXIST));
|
||||
Assert.assertTrue(Status.USER_NOT_EXIST.getCode() == result.getCode());
|
||||
|
||||
//TENANT_NOT_EXIST
|
||||
Mockito.when(userMapper.selectById(1)).thenReturn(getUser());
|
||||
|
|
@ -372,8 +372,7 @@ public class ResourcesServiceTest {
|
|||
PowerMockito.when(HadoopUtils.getHdfsResourceFileName("123", "test1")).thenReturn("test");
|
||||
result = resourcesService.verifyResourceName("/ResourcesServiceTest.jar", ResourceType.FILE, user);
|
||||
logger.info(result.toString());
|
||||
|
||||
Assert.assertTrue(result.isStatus(Status.RESOURCE_EXIST));
|
||||
Assert.assertTrue(Status.RESOURCE_EXIST.getCode() == result.getCode());
|
||||
|
||||
//SUCCESS
|
||||
result = resourcesService.verifyResourceName("test2", ResourceType.FILE, user);
|
||||
|
|
@ -411,7 +410,7 @@ public class ResourcesServiceTest {
|
|||
PowerMockito.when(FileUtils.suffix("ResourcesServiceTest.jar")).thenReturn("jar");
|
||||
result = resourcesService.readResource(1, 1, 10);
|
||||
logger.info(result.toString());
|
||||
Assert.assertTrue(result.isStatus(Status.USER_NOT_EXIST));
|
||||
Assert.assertTrue(Status.USER_NOT_EXIST.getCode() == result.getCode());
|
||||
|
||||
//TENANT_NOT_EXIST
|
||||
Mockito.when(userMapper.selectById(1)).thenReturn(getUser());
|
||||
|
|
@ -428,7 +427,7 @@ public class ResourcesServiceTest {
|
|||
}
|
||||
result = resourcesService.readResource(1, 1, 10);
|
||||
logger.info(result.toString());
|
||||
Assert.assertTrue(result.isStatus(Status.RESOURCE_FILE_NOT_EXIST));
|
||||
Assert.assertTrue(Status.RESOURCE_FILE_NOT_EXIST.getCode() == result.getCode());
|
||||
|
||||
//SUCCESS
|
||||
try {
|
||||
|
|
@ -512,13 +511,13 @@ public class ResourcesServiceTest {
|
|||
PowerMockito.when(FileUtils.suffix("ResourcesServiceTest.jar")).thenReturn("jar");
|
||||
result = resourcesService.updateResourceContent(1, "content");
|
||||
logger.info(result.toString());
|
||||
Assert.assertTrue(result.isStatus(Status.USER_NOT_EXIST));
|
||||
Assert.assertTrue(Status.USER_NOT_EXIST.getCode() == result.getCode());
|
||||
|
||||
//TENANT_NOT_EXIST
|
||||
Mockito.when(userMapper.selectById(1)).thenReturn(getUser());
|
||||
result = resourcesService.updateResourceContent(1, "content");
|
||||
logger.info(result.toString());
|
||||
Assert.assertTrue(result.isStatus(Status.TENANT_NOT_EXIST));
|
||||
Assert.assertTrue(Status.TENANT_NOT_EXIST.getCode() == result.getCode());
|
||||
|
||||
//SUCCESS
|
||||
Mockito.when(tenantMapper.queryById(1)).thenReturn(getTenant());
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ import org.apache.dolphinscheduler.dao.entity.ProcessDefinition;
|
|||
import org.apache.dolphinscheduler.dao.entity.Project;
|
||||
import org.apache.dolphinscheduler.dao.entity.Schedule;
|
||||
import org.apache.dolphinscheduler.dao.entity.User;
|
||||
import org.apache.dolphinscheduler.dao.mapper.ProcessDefinitionMapper;
|
||||
import org.apache.dolphinscheduler.dao.mapper.ProjectMapper;
|
||||
import org.apache.dolphinscheduler.dao.mapper.ScheduleMapper;
|
||||
import org.apache.dolphinscheduler.service.process.ProcessService;
|
||||
|
|
@ -70,6 +71,9 @@ public class SchedulerServiceTest {
|
|||
@Mock
|
||||
private ProjectMapper projectMapper;
|
||||
|
||||
@Mock
|
||||
private ProcessDefinitionMapper processDefinitionMapper;
|
||||
|
||||
@Mock
|
||||
private ProjectServiceImpl projectService;
|
||||
|
||||
|
|
@ -91,18 +95,18 @@ public class SchedulerServiceTest {
|
|||
|
||||
@Test
|
||||
public void testSetScheduleState() {
|
||||
|
||||
String projectName = "test";
|
||||
long projectCode = 1L;
|
||||
User loginUser = new User();
|
||||
loginUser.setId(1);
|
||||
Map<String, Object> result = new HashMap<String, Object>();
|
||||
Project project = getProject(projectName);
|
||||
Project project = getProject(projectName, projectCode);
|
||||
|
||||
ProcessDefinition processDefinition = new ProcessDefinition();
|
||||
|
||||
Schedule schedule = new Schedule();
|
||||
schedule.setId(1);
|
||||
schedule.setProcessDefinitionId(1);
|
||||
schedule.setProcessDefinitionCode(1);
|
||||
schedule.setReleaseState(ReleaseState.OFFLINE);
|
||||
|
||||
List<Server> masterServers = new ArrayList<>();
|
||||
|
|
@ -110,49 +114,50 @@ public class SchedulerServiceTest {
|
|||
|
||||
Mockito.when(scheduleMapper.selectById(1)).thenReturn(schedule);
|
||||
|
||||
Mockito.when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
Mockito.when(projectMapper.queryByName(projectName)).thenReturn(project);
|
||||
|
||||
Mockito.when(processService.findProcessDefineById(1)).thenReturn(processDefinition);
|
||||
Mockito.when(processDefinitionMapper.queryByCode(1)).thenReturn(processDefinition);
|
||||
|
||||
//hash no auth
|
||||
result = schedulerService.setScheduleState(loginUser, projectName, 1, ReleaseState.ONLINE);
|
||||
result = schedulerService.setScheduleState(loginUser, project.getCode(), 1, ReleaseState.ONLINE);
|
||||
|
||||
Mockito.when(projectService.hasProjectAndPerm(loginUser, project, result)).thenReturn(true);
|
||||
//schedule not exists
|
||||
result = schedulerService.setScheduleState(loginUser, projectName, 2, ReleaseState.ONLINE);
|
||||
result = schedulerService.setScheduleState(loginUser, project.getCode(), 2, ReleaseState.ONLINE);
|
||||
Assert.assertEquals(Status.SCHEDULE_CRON_NOT_EXISTS, result.get(Constants.STATUS));
|
||||
|
||||
//SCHEDULE_CRON_REALEASE_NEED_NOT_CHANGE
|
||||
result = schedulerService.setScheduleState(loginUser, projectName, 1, ReleaseState.OFFLINE);
|
||||
result = schedulerService.setScheduleState(loginUser, project.getCode(), 1, ReleaseState.OFFLINE);
|
||||
Assert.assertEquals(Status.SCHEDULE_CRON_REALEASE_NEED_NOT_CHANGE, result.get(Constants.STATUS));
|
||||
|
||||
//PROCESS_DEFINE_NOT_EXIST
|
||||
schedule.setProcessDefinitionId(2);
|
||||
result = schedulerService.setScheduleState(loginUser, projectName, 1, ReleaseState.ONLINE);
|
||||
schedule.setProcessDefinitionCode(2);
|
||||
result = schedulerService.setScheduleState(loginUser, project.getCode(), 1, ReleaseState.ONLINE);
|
||||
Assert.assertEquals(Status.PROCESS_DEFINE_NOT_EXIST, result.get(Constants.STATUS));
|
||||
schedule.setProcessDefinitionId(1);
|
||||
schedule.setProcessDefinitionCode(1);
|
||||
|
||||
// PROCESS_DEFINE_NOT_RELEASE
|
||||
result = schedulerService.setScheduleState(loginUser, projectName, 1, ReleaseState.ONLINE);
|
||||
result = schedulerService.setScheduleState(loginUser, project.getCode(), 1, ReleaseState.ONLINE);
|
||||
Assert.assertEquals(Status.PROCESS_DEFINE_NOT_RELEASE, result.get(Constants.STATUS));
|
||||
|
||||
processDefinition.setReleaseState(ReleaseState.ONLINE);
|
||||
Mockito.when(processService.findProcessDefineById(1)).thenReturn(processDefinition);
|
||||
|
||||
//MASTER_NOT_EXISTS
|
||||
result = schedulerService.setScheduleState(loginUser, projectName, 1, ReleaseState.ONLINE);
|
||||
result = schedulerService.setScheduleState(loginUser, project.getCode(), 1, ReleaseState.ONLINE);
|
||||
Assert.assertEquals(Status.MASTER_NOT_EXISTS, result.get(Constants.STATUS));
|
||||
|
||||
//set master
|
||||
Mockito.when(monitorService.getServerListFromRegistry(true)).thenReturn(masterServers);
|
||||
|
||||
//SUCCESS
|
||||
result = schedulerService.setScheduleState(loginUser, projectName, 1, ReleaseState.ONLINE);
|
||||
result = schedulerService.setScheduleState(loginUser, project.getCode(), 1, ReleaseState.ONLINE);
|
||||
Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
|
||||
|
||||
//OFFLINE
|
||||
Mockito.when(quartzExecutors.deleteJob(null, null)).thenReturn(true);
|
||||
result = schedulerService.setScheduleState(loginUser, projectName, 1, ReleaseState.OFFLINE);
|
||||
result = schedulerService.setScheduleState(loginUser, project.getCode(), 1, ReleaseState.OFFLINE);
|
||||
Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
|
||||
|
||||
}
|
||||
|
|
@ -174,7 +179,6 @@ public class SchedulerServiceTest {
|
|||
}
|
||||
|
||||
private Project getProject(String name) {
|
||||
|
||||
Project project = new Project();
|
||||
project.setName(name);
|
||||
project.setUserId(1);
|
||||
|
|
@ -182,4 +186,13 @@ public class SchedulerServiceTest {
|
|||
return project;
|
||||
}
|
||||
|
||||
}
|
||||
private Project getProject(String name, long code) {
|
||||
Project project = new Project();
|
||||
project.setName(name);
|
||||
project.setCode(code);
|
||||
project.setUserId(1);
|
||||
|
||||
return project;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,13 +22,12 @@ import org.apache.dolphinscheduler.api.service.impl.ProjectServiceImpl;
|
|||
import org.apache.dolphinscheduler.api.service.impl.TaskDefinitionServiceImpl;
|
||||
import org.apache.dolphinscheduler.common.Constants;
|
||||
import org.apache.dolphinscheduler.common.enums.UserType;
|
||||
import org.apache.dolphinscheduler.common.model.TaskNode;
|
||||
import org.apache.dolphinscheduler.common.task.shell.ShellParameters;
|
||||
import org.apache.dolphinscheduler.common.utils.JSONUtils;
|
||||
import org.apache.dolphinscheduler.dao.entity.Project;
|
||||
import org.apache.dolphinscheduler.dao.entity.TaskDefinition;
|
||||
import org.apache.dolphinscheduler.dao.entity.TaskDefinitionLog;
|
||||
import org.apache.dolphinscheduler.dao.entity.User;
|
||||
import org.apache.dolphinscheduler.dao.mapper.ProcessDefinitionMapper;
|
||||
import org.apache.dolphinscheduler.dao.mapper.ProcessTaskRelationMapper;
|
||||
import org.apache.dolphinscheduler.dao.mapper.ProjectMapper;
|
||||
import org.apache.dolphinscheduler.dao.mapper.TaskDefinitionLogMapper;
|
||||
|
|
@ -36,7 +35,9 @@ import org.apache.dolphinscheduler.dao.mapper.TaskDefinitionMapper;
|
|||
import org.apache.dolphinscheduler.service.process.ProcessService;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.junit.Assert;
|
||||
|
|
@ -50,49 +51,6 @@ import org.mockito.junit.MockitoJUnitRunner;
|
|||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class TaskDefinitionServiceImplTest {
|
||||
|
||||
String taskDefinitionJson = "{\n"
|
||||
+ " \"type\": \"SQL\",\n"
|
||||
+ " \"id\": \"tasks-27297\",\n"
|
||||
+ " \"name\": \"SQL\",\n"
|
||||
+ " \"params\": {\n"
|
||||
+ " \"type\": \"MYSQL\",\n"
|
||||
+ " \"datasource\": 1,\n"
|
||||
+ " \"sql\": \"select * from test\",\n"
|
||||
+ " \"udfs\": \"\",\n"
|
||||
+ " \"sqlType\": \"1\",\n"
|
||||
+ " \"title\": \"\",\n"
|
||||
+ " \"receivers\": \"\",\n"
|
||||
+ " \"receiversCc\": \"\",\n"
|
||||
+ " \"showType\": \"TABLE\",\n"
|
||||
+ " \"localParams\": [\n"
|
||||
+ " \n"
|
||||
+ " ],\n"
|
||||
+ " \"connParams\": \"\",\n"
|
||||
+ " \"preStatements\": [\n"
|
||||
+ " \n"
|
||||
+ " ],\n"
|
||||
+ " \"postStatements\": [\n"
|
||||
+ " \n"
|
||||
+ " ]\n"
|
||||
+ " },\n"
|
||||
+ " \"description\": \"\",\n"
|
||||
+ " \"runFlag\": \"NORMAL\",\n"
|
||||
+ " \"dependence\": {\n"
|
||||
+ " \n"
|
||||
+ " },\n"
|
||||
+ " \"maxRetryTimes\": \"0\",\n"
|
||||
+ " \"retryInterval\": \"1\",\n"
|
||||
+ " \"timeout\": {\n"
|
||||
+ " \"strategy\": \"\",\n"
|
||||
+ " \"enable\": false\n"
|
||||
+ " },\n"
|
||||
+ " \"taskInstancePriority\": \"MEDIUM\",\n"
|
||||
+ " \"workerGroupId\": -1,\n"
|
||||
+ " \"preTasks\": [\n"
|
||||
+ " \"dependent\"\n"
|
||||
+ " ]\n"
|
||||
+ "}\n";
|
||||
|
||||
@InjectMocks
|
||||
private TaskDefinitionServiceImpl taskDefinitionService;
|
||||
|
||||
|
|
@ -102,12 +60,6 @@ public class TaskDefinitionServiceImplTest {
|
|||
@Mock
|
||||
private TaskDefinitionLogMapper taskDefinitionLogMapper;
|
||||
|
||||
@Mock
|
||||
private ProcessDefinitionMapper processDefineMapper;
|
||||
|
||||
@Mock
|
||||
private ProcessTaskRelationMapper processTaskRelationMapper;
|
||||
|
||||
@Mock
|
||||
private ProjectMapper projectMapper;
|
||||
|
||||
|
|
@ -117,157 +69,147 @@ public class TaskDefinitionServiceImplTest {
|
|||
@Mock
|
||||
private ProcessService processService;
|
||||
|
||||
@Mock
|
||||
private ProcessTaskRelationMapper processTaskRelationMapper;
|
||||
;
|
||||
|
||||
@Test
|
||||
public void createTaskDefinition() {
|
||||
String projectName = "project_test1";
|
||||
long projectCode = 1L;
|
||||
|
||||
Project project = getProject(projectName);
|
||||
Mockito.when(projectMapper.queryByName(projectName)).thenReturn(project);
|
||||
Project project = getProject(projectCode);
|
||||
Mockito.when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
|
||||
User loginUser = new User();
|
||||
loginUser.setId(-1);
|
||||
loginUser.setUserType(UserType.GENERAL_USER);
|
||||
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.SUCCESS, projectName);
|
||||
|
||||
//project check auth fail
|
||||
Mockito.when(projectService.checkProjectAndAuth(loginUser, project, projectName)).thenReturn(result);
|
||||
|
||||
TaskNode taskNode = JSONUtils.parseObject(taskDefinitionJson, TaskNode.class);
|
||||
|
||||
Mockito.when(processService.saveTaskDefinition(Mockito.eq(loginUser)
|
||||
, Mockito.eq(project.getCode())
|
||||
, Mockito.eq(taskNode)
|
||||
, Mockito.any(TaskDefinition.class)))
|
||||
.thenReturn(1);
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
Mockito.when(projectService.checkProjectAndAuth(loginUser, project, projectCode)).thenReturn(result);
|
||||
|
||||
String createTaskDefinitionJson = "[{\"name\":\"detail_up\",\"description\":\"\",\"taskType\":\"SHELL\",\"taskParams\":"
|
||||
+ "\"{\\\"resourceList\\\":[],\\\"localParams\\\":[{\\\"prop\\\":\\\"datetime\\\",\\\"direct\\\":\\\"IN\\\","
|
||||
+ "\\\"type\\\":\\\"VARCHAR\\\",\\\"value\\\":\\\"${system.datetime}\\\"}],\\\"rawScript\\\":"
|
||||
+ "\\\"echo ${datetime}\\\",\\\"conditionResult\\\":\\\"{\\\\\\\"successNode\\\\\\\":[\\\\\\\"\\\\\\\"],"
|
||||
+ "\\\\\\\"failedNode\\\\\\\":[\\\\\\\"\\\\\\\"]}\\\",\\\"dependence\\\":{}}\",\"flag\":0,\"taskPriority\":0,"
|
||||
+ "\"workerGroup\":\"default\",\"failRetryTimes\":0,\"failRetryInterval\":0,\"timeoutFlag\":0,"
|
||||
+ "\"timeoutNotifyStrategy\":0,\"timeout\":0,\"delayTime\":0,\"resourceIds\":\"\"}]";
|
||||
List<TaskDefinitionLog> taskDefinitions = JSONUtils.toList(createTaskDefinitionJson, TaskDefinitionLog.class);
|
||||
Mockito.when(processService.saveTaskDefine(loginUser, projectCode, taskDefinitions)).thenReturn(true);
|
||||
Map<String, Object> relation = taskDefinitionService
|
||||
.createTaskDefinition(loginUser, projectName, taskDefinitionJson);
|
||||
|
||||
Assert.assertEquals(Status.SUCCESS, relation.get(Constants.STATUS));
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void queryTaskDefinitionByName() {
|
||||
String projectName = "project_test1";
|
||||
String taskName = "task";
|
||||
Project project = getProject(projectName);
|
||||
Mockito.when(projectMapper.queryByName(projectName)).thenReturn(project);
|
||||
|
||||
User loginUser = new User();
|
||||
loginUser.setId(-1);
|
||||
loginUser.setUserType(UserType.GENERAL_USER);
|
||||
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.SUCCESS, projectName);
|
||||
|
||||
//project check auth fail
|
||||
Mockito.when(projectService.checkProjectAndAuth(loginUser, project, projectName)).thenReturn(result);
|
||||
|
||||
TaskNode taskNode = JSONUtils.parseObject(taskDefinitionJson, TaskNode.class);
|
||||
|
||||
Mockito.when(taskDefinitionMapper.queryByDefinitionName(project.getCode(), taskName))
|
||||
.thenReturn(new TaskDefinition());
|
||||
|
||||
Map<String, Object> relation = taskDefinitionService
|
||||
.queryTaskDefinitionByName(loginUser, projectName, taskName);
|
||||
|
||||
Assert.assertEquals(Status.SUCCESS, relation.get(Constants.STATUS));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void deleteTaskDefinitionByCode() {
|
||||
String projectName = "project_test1";
|
||||
|
||||
Project project = getProject(projectName);
|
||||
Mockito.when(projectMapper.queryByName(projectName)).thenReturn(project);
|
||||
|
||||
User loginUser = new User();
|
||||
loginUser.setId(-1);
|
||||
loginUser.setUserType(UserType.GENERAL_USER);
|
||||
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.SUCCESS, projectName);
|
||||
|
||||
//project check auth fail
|
||||
Mockito.when(projectService.checkProjectAndAuth(loginUser, project, projectName)).thenReturn(result);
|
||||
|
||||
TaskNode taskNode = JSONUtils.parseObject(taskDefinitionJson, TaskNode.class);
|
||||
|
||||
Mockito.when(taskDefinitionMapper.deleteByCode(Mockito.anyLong()))
|
||||
.thenReturn(1);
|
||||
|
||||
Map<String, Object> relation = taskDefinitionService
|
||||
.deleteTaskDefinitionByCode(loginUser, projectName, 11L);
|
||||
|
||||
.createTaskDefinition(loginUser, projectCode, createTaskDefinitionJson);
|
||||
Assert.assertEquals(Status.SUCCESS, relation.get(Constants.STATUS));
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateTaskDefinition() {
|
||||
String projectName = "project_test1";
|
||||
String taskDefinitionJson = "{\"name\":\"detail_up\",\"description\":\"\",\"taskType\":\"SHELL\",\"taskParams\":"
|
||||
+ "\"{\\\"resourceList\\\":[],\\\"localParams\\\":[{\\\"prop\\\":\\\"datetime\\\",\\\"direct\\\":\\\"IN\\\","
|
||||
+ "\\\"type\\\":\\\"VARCHAR\\\",\\\"value\\\":\\\"${system.datetime}\\\"}],\\\"rawScript\\\":"
|
||||
+ "\\\"echo ${datetime}\\\",\\\"conditionResult\\\":\\\"{\\\\\\\"successNode\\\\\\\":[\\\\\\\"\\\\\\\"],"
|
||||
+ "\\\\\\\"failedNode\\\\\\\":[\\\\\\\"\\\\\\\"]}\\\",\\\"dependence\\\":{}}\",\"flag\":0,\"taskPriority\":0,"
|
||||
+ "\"workerGroup\":\"default\",\"failRetryTimes\":0,\"failRetryInterval\":0,\"timeoutFlag\":0,"
|
||||
+ "\"timeoutNotifyStrategy\":0,\"timeout\":0,\"delayTime\":0,\"resourceIds\":\"\"}";
|
||||
long projectCode = 1L;
|
||||
long taskCode = 1L;
|
||||
|
||||
Project project = getProject(projectName);
|
||||
Mockito.when(projectMapper.queryByName(projectName)).thenReturn(project);
|
||||
Project project = getProject(projectCode);
|
||||
Mockito.when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
|
||||
User loginUser = new User();
|
||||
loginUser.setId(-1);
|
||||
loginUser.setUserType(UserType.GENERAL_USER);
|
||||
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.SUCCESS, projectName);
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
Mockito.when(projectService.checkProjectAndAuth(loginUser, project, projectCode)).thenReturn(result);
|
||||
|
||||
//project check auth fail
|
||||
Mockito.when(projectService.checkProjectAndAuth(loginUser, project, projectName)).thenReturn(result);
|
||||
Mockito.when(processService.isTaskOnline(taskCode)).thenReturn(Boolean.FALSE);
|
||||
Mockito.when(taskDefinitionMapper.queryByCode(taskCode)).thenReturn(new TaskDefinition());
|
||||
Mockito.when(taskDefinitionMapper.updateById(Mockito.any(TaskDefinitionLog.class))).thenReturn(1);
|
||||
Mockito.when(taskDefinitionLogMapper.insert(Mockito.any(TaskDefinitionLog.class))).thenReturn(1);
|
||||
Mockito.when(taskDefinitionLogMapper.queryMaxVersionForDefinition(taskCode)).thenReturn(1);
|
||||
result = taskDefinitionService.updateTaskDefinition(loginUser, projectCode, taskCode, taskDefinitionJson);
|
||||
Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
|
||||
}
|
||||
|
||||
TaskNode taskNode = JSONUtils.parseObject(taskDefinitionJson, TaskNode.class);
|
||||
@Test
|
||||
public void queryTaskDefinitionByName() {
|
||||
String taskName = "task";
|
||||
long projectCode = 1L;
|
||||
|
||||
Mockito.when(processService.updateTaskDefinition(Mockito.eq(loginUser)
|
||||
, Mockito.eq(project.getCode())
|
||||
, Mockito.eq(taskNode)
|
||||
, Mockito.any(TaskDefinition.class)))
|
||||
.thenReturn(1);
|
||||
Project project = getProject(projectCode);
|
||||
Mockito.when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
|
||||
Mockito.when(taskDefinitionMapper.queryByDefinitionCode(11L))
|
||||
.thenReturn(new TaskDefinition());
|
||||
User loginUser = new User();
|
||||
loginUser.setId(-1);
|
||||
loginUser.setUserType(UserType.GENERAL_USER);
|
||||
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
Mockito.when(projectService.checkProjectAndAuth(loginUser, project, projectCode)).thenReturn(result);
|
||||
|
||||
Mockito.when(taskDefinitionMapper.queryByName(project.getCode(), taskName))
|
||||
.thenReturn(new TaskDefinition());
|
||||
|
||||
Map<String, Object> relation = taskDefinitionService
|
||||
.updateTaskDefinition(loginUser, projectName, 11L, taskDefinitionJson);
|
||||
.queryTaskDefinitionByName(loginUser, projectCode, taskName);
|
||||
|
||||
Assert.assertEquals(Status.SUCCESS, relation.get(Constants.STATUS));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void deleteTaskDefinitionByCode() {
|
||||
long projectCode = 1L;
|
||||
|
||||
Project project = getProject(projectCode);
|
||||
Mockito.when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
|
||||
User loginUser = new User();
|
||||
loginUser.setId(-1);
|
||||
loginUser.setUserType(UserType.GENERAL_USER);
|
||||
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
Mockito.when(projectService.checkProjectAndAuth(loginUser, project, projectCode)).thenReturn(result);
|
||||
Mockito.when(processTaskRelationMapper.queryByTaskCode(Mockito.anyLong()))
|
||||
.thenReturn(new ArrayList<>());
|
||||
Mockito.when(taskDefinitionMapper.deleteByCode(Mockito.anyLong()))
|
||||
.thenReturn(1);
|
||||
|
||||
Map<String, Object> relation = taskDefinitionService
|
||||
.deleteTaskDefinitionByCode(loginUser, projectCode, Mockito.anyLong());
|
||||
|
||||
Assert.assertEquals(Status.SUCCESS, relation.get(Constants.STATUS));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void switchVersion() {
|
||||
String projectName = "project_test1";
|
||||
int version = 1;
|
||||
Long taskCode = 11L;
|
||||
Project project = getProject(projectName);
|
||||
Mockito.when(projectMapper.queryByName(projectName)).thenReturn(project);
|
||||
long taskCode = 11L;
|
||||
long projectCode = 1L;
|
||||
|
||||
Project project = getProject(projectCode);
|
||||
Mockito.when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
|
||||
User loginUser = new User();
|
||||
loginUser.setId(-1);
|
||||
loginUser.setUserType(UserType.GENERAL_USER);
|
||||
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.SUCCESS, projectName);
|
||||
|
||||
//project check auth fail
|
||||
Mockito.when(projectService.checkProjectAndAuth(loginUser, project, projectName)).thenReturn(result);
|
||||
|
||||
TaskNode taskNode = JSONUtils.parseObject(taskDefinitionJson, TaskNode.class);
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
Mockito.when(projectService.checkProjectAndAuth(loginUser, project, projectCode)).thenReturn(result);
|
||||
|
||||
Mockito.when(taskDefinitionLogMapper.queryByDefinitionCodeAndVersion(taskCode, version))
|
||||
.thenReturn(new TaskDefinitionLog());
|
||||
.thenReturn(new TaskDefinitionLog());
|
||||
|
||||
Mockito.when(taskDefinitionMapper.queryByDefinitionCode(taskCode))
|
||||
.thenReturn(new TaskDefinition());
|
||||
|
||||
Mockito.when(taskDefinitionMapper.queryByCode(taskCode))
|
||||
.thenReturn(new TaskDefinition());
|
||||
Mockito.when(taskDefinitionMapper.updateById(new TaskDefinitionLog())).thenReturn(1);
|
||||
Map<String, Object> relation = taskDefinitionService
|
||||
.switchVersion(loginUser, projectName, taskCode, version);
|
||||
.switchVersion(loginUser, projectCode, taskCode, version);
|
||||
|
||||
Assert.assertEquals(Status.SUCCESS, relation.get(Constants.STATUS));
|
||||
}
|
||||
|
|
@ -284,15 +226,54 @@ public class TaskDefinitionServiceImplTest {
|
|||
/**
|
||||
* get mock Project
|
||||
*
|
||||
* @param projectName projectName
|
||||
* @param projectCode projectCode
|
||||
* @return Project
|
||||
*/
|
||||
private Project getProject(String projectName) {
|
||||
private Project getProject(long projectCode) {
|
||||
Project project = new Project();
|
||||
project.setId(1);
|
||||
project.setName(projectName);
|
||||
project.setCode(projectCode);
|
||||
project.setName("test");
|
||||
project.setUserId(1);
|
||||
return project;
|
||||
}
|
||||
|
||||
}
|
||||
@Test
|
||||
public void checkJson() {
|
||||
String taskDefinitionJson = "[{\"name\":\"detail_up\",\"description\":\"\",\"taskType\":\"SHELL\",\"taskParams\":"
|
||||
+ "\"{\\\"resourceList\\\":[],\\\"localParams\\\":[{\\\"prop\\\":\\\"datetime\\\",\\\"direct\\\":\\\"IN\\\","
|
||||
+ "\\\"type\\\":\\\"VARCHAR\\\",\\\"value\\\":\\\"${system.datetime}\\\"}],\\\"rawScript\\\":"
|
||||
+ "\\\"echo ${datetime}\\\",\\\"conditionResult\\\":\\\"{\\\\\\\"successNode\\\\\\\":[\\\\\\\"\\\\\\\"],"
|
||||
+ "\\\\\\\"failedNode\\\\\\\":[\\\\\\\"\\\\\\\"]}\\\",\\\"dependence\\\":{}}\",\"flag\":0,\"taskPriority\":0,"
|
||||
+ "\"workerGroup\":\"default\",\"failRetryTimes\":0,\"failRetryInterval\":0,\"timeoutFlag\":0,"
|
||||
+ "\"timeoutNotifyStrategy\":0,\"timeout\":0,\"delayTime\":0,\"resourceIds\":\"\"}]";
|
||||
List<TaskDefinitionLog> taskDefinitionLogs = JSONUtils.toList(taskDefinitionJson, TaskDefinitionLog.class);
|
||||
Assert.assertFalse(taskDefinitionLogs.isEmpty());
|
||||
String taskJson = "[{\"name\":\"shell1\",\"description\":\"\",\"taskType\":\"SHELL\",\"taskParams\":{\"resourceList\":[],"
|
||||
+ "\"localParams\":[],\"rawScript\":\"echo 1\",\"conditionResult\":{\"successNode\":[\"\"],\"failedNode\":[\"\"]},\"dependence\":{}},"
|
||||
+ "\"flag\":\"NORMAL\",\"taskPriority\":\"MEDIUM\",\"workerGroup\":\"default\",\"failRetryTimes\":\"0\",\"failRetryInterval\":\"1\","
|
||||
+ "\"timeoutFlag\":\"CLOSE\",\"timeoutNotifyStrategy\":\"\",\"timeout\":null,\"delayTime\":\"0\"},{\"name\":\"shell2\",\"description\":\"\","
|
||||
+ "\"taskType\":\"SHELL\",\"taskParams\":{\"resourceList\":[],\"localParams\":[],\"rawScript\":\"echo 2\",\"conditionResult\":{\"successNode\""
|
||||
+ ":[\"\"],\"failedNode\":[\"\"]},\"dependence\":{}},\"flag\":\"NORMAL\",\"taskPriority\":\"MEDIUM\",\"workerGroup\":\"default\","
|
||||
+ "\"failRetryTimes\":\"0\",\"failRetryInterval\":\"1\",\"timeoutFlag\":\"CLOSE\",\"timeoutNotifyStrategy\":\"\",\"timeout\":null,\"delayTime\":\"0\"}]";
|
||||
taskDefinitionLogs = JSONUtils.toList(taskJson, TaskDefinitionLog.class);
|
||||
Assert.assertFalse(taskDefinitionLogs.isEmpty());
|
||||
String taskParams = "{\"resourceList\":[],\"localParams\":[{\"prop\":\"datetime\",\"direct\":\"IN\",\"type\":\"VARCHAR\","
|
||||
+ "\"value\":\"${system.datetime}\"}],\"rawScript\":\"echo ${datetime}\",\"conditionResult\":\"{\\\"successNode\\\":[\\\"\\\"],"
|
||||
+ "\\\"failedNode\\\":[\\\"\\\"]}\",\"dependence\":{}}";
|
||||
ShellParameters parameters = JSONUtils.parseObject(taskParams, ShellParameters.class);
|
||||
Assert.assertNotNull(parameters);
|
||||
String params = "{\"resourceList\":[],\"localParams\":[],\"rawScript\":\"echo 1\",\"conditionResult\":{\"successNode\":[\"\"],\"failedNode\":[\"\"]},\"dependence\":{}}";
|
||||
ShellParameters parameters1 = JSONUtils.parseObject(params, ShellParameters.class);
|
||||
Assert.assertNotNull(parameters1);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void genTaskCodeList() {
|
||||
User loginUser = new User();
|
||||
loginUser.setId(-1);
|
||||
loginUser.setUserType(UserType.GENERAL_USER);
|
||||
Map<String, Object> genTaskCodeList = taskDefinitionService.genTaskCodeList(loginUser, 10);
|
||||
Assert.assertEquals(Status.SUCCESS, genTaskCodeList.get(Constants.STATUS));
|
||||
}
|
||||
}
|
||||
|
|
@ -83,29 +83,29 @@ public class TaskInstanceServiceTest {
|
|||
|
||||
@Test
|
||||
public void queryTaskListPaging() {
|
||||
String projectName = "project_test1";
|
||||
long projectCode = 1L;
|
||||
User loginUser = getAdminUser();
|
||||
Project project = getProject(projectCode);
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.PROJECT_NOT_FOUNT, projectName);
|
||||
putMsg(result, Status.PROJECT_NOT_FOUNT, projectCode);
|
||||
|
||||
//project auth fail
|
||||
when(projectMapper.queryByName(projectName)).thenReturn(null);
|
||||
when(projectService.checkProjectAndAuth(loginUser, null, projectName)).thenReturn(result);
|
||||
Result proejctAuthFailRes = taskInstanceService.queryTaskListPaging(loginUser, "project_test1", 0, "", "",
|
||||
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, projectCode)).thenReturn(result);
|
||||
Result projectAuthFailRes = taskInstanceService.queryTaskListPaging(loginUser, projectCode, 0, "", "",
|
||||
"test_user", "2019-02-26 19:48:00", "2019-02-26 19:48:22", "", null, "", 1, 20);
|
||||
Assert.assertEquals(Status.PROJECT_NOT_FOUNT.getCode(), (int)proejctAuthFailRes.getCode());
|
||||
Assert.assertEquals(Status.PROJECT_NOT_FOUNT.getCode(), (int)projectAuthFailRes.getCode());
|
||||
|
||||
// data parameter check
|
||||
putMsg(result, Status.SUCCESS, projectName);
|
||||
Project project = getProject(projectName);
|
||||
when(projectMapper.queryByName(Mockito.anyString())).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, projectName)).thenReturn(result);
|
||||
Result dataParameterRes = taskInstanceService.queryTaskListPaging(loginUser, projectName, 1, "", "",
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, projectCode)).thenReturn(result);
|
||||
Result dataParameterRes = taskInstanceService.queryTaskListPaging(loginUser, projectCode, 1, "", "",
|
||||
"test_user", "20200101 00:00:00", "2020-01-02 00:00:00", "", ExecutionStatus.SUCCESS, "192.168.xx.xx", 1, 20);
|
||||
Assert.assertEquals(Status.REQUEST_PARAMS_NOT_VALID_ERROR.getCode(), (int)dataParameterRes.getCode());
|
||||
|
||||
//project
|
||||
putMsg(result, Status.SUCCESS, projectName);
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
Date start = DateUtils.getScheduleDate("2020-01-01 00:00:00");
|
||||
Date end = DateUtils.getScheduleDate("2020-01-02 00:00:00");
|
||||
ProcessInstance processInstance = getProcessInstance();
|
||||
|
|
@ -114,8 +114,8 @@ public class TaskInstanceServiceTest {
|
|||
Page<TaskInstance> pageReturn = new Page<>(1, 10);
|
||||
taskInstanceList.add(taskInstance);
|
||||
pageReturn.setRecords(taskInstanceList);
|
||||
when(projectMapper.queryByName(Mockito.anyString())).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, projectName)).thenReturn(result);
|
||||
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, projectCode)).thenReturn(result);
|
||||
when(usersService.queryUser(loginUser.getId())).thenReturn(loginUser);
|
||||
when(usersService.getUserIdByName(loginUser.getUserName())).thenReturn(loginUser.getId());
|
||||
when(taskInstanceMapper.queryTaskInstanceListPaging(Mockito.any(Page.class), eq(project.getCode()), eq(1), eq(""), eq(""), eq(""),
|
||||
|
|
@ -123,39 +123,39 @@ public class TaskInstanceServiceTest {
|
|||
when(usersService.queryUser(processInstance.getExecutorId())).thenReturn(loginUser);
|
||||
when(processService.findProcessInstanceDetailById(taskInstance.getProcessInstanceId())).thenReturn(processInstance);
|
||||
|
||||
|
||||
Result successRes = taskInstanceService.queryTaskListPaging(loginUser, projectName, 1, "", "",
|
||||
Result successRes = taskInstanceService.queryTaskListPaging(loginUser, projectCode, 1, "", "",
|
||||
"test_user", "2020-01-01 00:00:00", "2020-01-02 00:00:00", "", ExecutionStatus.SUCCESS, "192.168.xx.xx", 1, 20);
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(), (int)successRes.getCode());
|
||||
|
||||
//executor name empty
|
||||
when(taskInstanceMapper.queryTaskInstanceListPaging(Mockito.any(Page.class), eq(project.getCode()), eq(1), eq(""), eq(""), eq(""),
|
||||
eq(0), Mockito.any(), eq("192.168.xx.xx"), eq(start), eq(end))).thenReturn(pageReturn);
|
||||
Result executorEmptyRes = taskInstanceService.queryTaskListPaging(loginUser, projectName, 1, "", "",
|
||||
Result executorEmptyRes = taskInstanceService.queryTaskListPaging(loginUser, projectCode, 1, "", "",
|
||||
"", "2020-01-01 00:00:00", "2020-01-02 00:00:00", "", ExecutionStatus.SUCCESS, "192.168.xx.xx", 1, 20);
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(), (int)executorEmptyRes.getCode());
|
||||
|
||||
//executor null
|
||||
when(usersService.queryUser(loginUser.getId())).thenReturn(null);
|
||||
when(usersService.getUserIdByName(loginUser.getUserName())).thenReturn(-1);
|
||||
Result executorNullRes = taskInstanceService.queryTaskListPaging(loginUser, projectName, 1, "", "",
|
||||
Result executorNullRes = taskInstanceService.queryTaskListPaging(loginUser, projectCode, 1, "", "",
|
||||
"test_user", "2020-01-01 00:00:00", "2020-01-02 00:00:00", "", ExecutionStatus.SUCCESS, "192.168.xx.xx", 1, 20);
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),(int)executorNullRes.getCode());
|
||||
|
||||
//start/end date null
|
||||
when(taskInstanceMapper.queryTaskInstanceListPaging(Mockito.any(Page.class), eq(project.getCode()), eq(1), eq(""), eq(""), eq(""),
|
||||
eq(0), Mockito.any(), eq("192.168.xx.xx"), any(), any())).thenReturn(pageReturn);
|
||||
Result executorNullDateRes = taskInstanceService.queryTaskListPaging(loginUser, projectName, 1, "", "",
|
||||
Result executorNullDateRes = taskInstanceService.queryTaskListPaging(loginUser, projectCode, 1, "", "",
|
||||
"", null, null, "", ExecutionStatus.SUCCESS, "192.168.xx.xx", 1, 20);
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(),(int) executorNullDateRes.getCode());
|
||||
|
||||
//start date error format
|
||||
when(taskInstanceMapper.queryTaskInstanceListPaging(Mockito.any(Page.class), eq(project.getCode()), eq(1), eq(""), eq(""), eq(""),
|
||||
eq(0), Mockito.any(), eq("192.168.xx.xx"), any(), any())).thenReturn(pageReturn);
|
||||
Result executorErrorStartDateRes = taskInstanceService.queryTaskListPaging(loginUser, projectName, 1, "", "",
|
||||
|
||||
Result executorErrorStartDateRes = taskInstanceService.queryTaskListPaging(loginUser, projectCode, 1, "", "",
|
||||
"", "error date", null, "", ExecutionStatus.SUCCESS, "192.168.xx.xx", 1, 20);
|
||||
Assert.assertEquals(Status.REQUEST_PARAMS_NOT_VALID_ERROR.getCode(), (int)executorErrorStartDateRes.getCode());
|
||||
Result executorErrorEndDateRes = taskInstanceService.queryTaskListPaging(loginUser, projectName, 1, "", "",
|
||||
Result executorErrorEndDateRes = taskInstanceService.queryTaskListPaging(loginUser, projectCode, 1, "", "",
|
||||
"", null, "error date", "", ExecutionStatus.SUCCESS, "192.168.xx.xx", 1, 20);
|
||||
Assert.assertEquals(Status.REQUEST_PARAMS_NOT_VALID_ERROR.getCode(), (int)executorErrorEndDateRes.getCode());
|
||||
}
|
||||
|
|
@ -176,14 +176,14 @@ public class TaskInstanceServiceTest {
|
|||
/**
|
||||
* get mock Project
|
||||
*
|
||||
* @param projectName projectName
|
||||
* @param projectCode projectCode
|
||||
* @return Project
|
||||
*/
|
||||
private Project getProject(String projectName) {
|
||||
private Project getProject(long projectCode) {
|
||||
Project project = new Project();
|
||||
project.setCode(1L);
|
||||
project.setCode(projectCode);
|
||||
project.setId(1);
|
||||
project.setName(projectName);
|
||||
project.setName("project_test1");
|
||||
project.setUserId(1);
|
||||
return project;
|
||||
}
|
||||
|
|
@ -230,44 +230,54 @@ public class TaskInstanceServiceTest {
|
|||
@Test
|
||||
public void forceTaskSuccess() {
|
||||
User user = getAdminUser();
|
||||
String projectName = "test";
|
||||
Project project = getProject(projectName);
|
||||
long projectCode = 1L;
|
||||
Project project = getProject(projectCode);
|
||||
int taskId = 1;
|
||||
TaskInstance task = getTaskInstance();
|
||||
|
||||
Map<String, Object> mockSuccess = new HashMap<>(5);
|
||||
putMsg(mockSuccess, Status.SUCCESS);
|
||||
when(projectMapper.queryByName(projectName)).thenReturn(project);
|
||||
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
|
||||
// user auth failed
|
||||
Map<String, Object> mockFailure = new HashMap<>(5);
|
||||
putMsg(mockFailure, Status.USER_NO_OPERATION_PROJECT_PERM, user.getUserName(), projectName);
|
||||
when(projectService.checkProjectAndAuth(user, project, projectName)).thenReturn(mockFailure);
|
||||
Map<String, Object> authFailRes = taskInstanceService.forceTaskSuccess(user, projectName, taskId);
|
||||
putMsg(mockFailure, Status.USER_NO_OPERATION_PROJECT_PERM, user.getUserName(), projectCode);
|
||||
when(projectService.checkProjectAndAuth(user, project, projectCode)).thenReturn(mockFailure);
|
||||
Map<String, Object> authFailRes = taskInstanceService.forceTaskSuccess(user, projectCode, taskId);
|
||||
Assert.assertNotSame(Status.SUCCESS, authFailRes.get(Constants.STATUS));
|
||||
|
||||
// test task not found
|
||||
when(projectService.checkProjectAndAuth(user, project, projectName)).thenReturn(mockSuccess);
|
||||
when(projectService.checkProjectAndAuth(user, project, projectCode)).thenReturn(mockSuccess);
|
||||
when(taskInstanceMapper.selectById(Mockito.anyInt())).thenReturn(null);
|
||||
Map<String, Object> taskNotFoundRes = taskInstanceService.forceTaskSuccess(user, projectName, taskId);
|
||||
Map<String, Object> taskNotFoundRes = taskInstanceService.forceTaskSuccess(user, projectCode, taskId);
|
||||
Assert.assertEquals(Status.TASK_INSTANCE_NOT_FOUND, taskNotFoundRes.get(Constants.STATUS));
|
||||
|
||||
// test task instance state error
|
||||
task.setState(ExecutionStatus.SUCCESS);
|
||||
when(taskInstanceMapper.selectById(1)).thenReturn(task);
|
||||
Map<String, Object> taskStateErrorRes = taskInstanceService.forceTaskSuccess(user, projectName, taskId);
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(user, project, projectCode)).thenReturn(result);
|
||||
Map<String, Object> taskStateErrorRes = taskInstanceService.forceTaskSuccess(user, projectCode, taskId);
|
||||
Assert.assertEquals(Status.TASK_INSTANCE_STATE_OPERATION_ERROR, taskStateErrorRes.get(Constants.STATUS));
|
||||
|
||||
// test error
|
||||
task.setState(ExecutionStatus.FAILURE);
|
||||
when(taskInstanceMapper.updateById(task)).thenReturn(0);
|
||||
Map<String, Object> errorRes = taskInstanceService.forceTaskSuccess(user, projectName, taskId);
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(user, project, projectCode)).thenReturn(result);
|
||||
Map<String, Object> errorRes = taskInstanceService.forceTaskSuccess(user, projectCode, taskId);
|
||||
Assert.assertEquals(Status.FORCE_TASK_SUCCESS_ERROR, errorRes.get(Constants.STATUS));
|
||||
|
||||
// test success
|
||||
task.setState(ExecutionStatus.FAILURE);
|
||||
when(taskInstanceMapper.updateById(task)).thenReturn(1);
|
||||
Map<String, Object> successRes = taskInstanceService.forceTaskSuccess(user, projectName, taskId);
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(user, project, projectCode)).thenReturn(result);
|
||||
Map<String, Object> successRes = taskInstanceService.forceTaskSuccess(user, projectCode, taskId);
|
||||
Assert.assertEquals(Status.SUCCESS, successRes.get(Constants.STATUS));
|
||||
}
|
||||
}
|
||||
|
|
@ -193,7 +193,7 @@ public class TenantServiceTest {
|
|||
Assert.assertEquals(Status.SUCCESS.getMsg(), result.getMsg());
|
||||
// tenantCode exist
|
||||
result = tenantService.verifyTenantCode(getTenant().getTenantCode());
|
||||
Assert.assertTrue(result.isStatus(Status.OS_TENANT_CODE_EXIST));
|
||||
Assert.assertEquals(Status.OS_TENANT_CODE_EXIST.getCode(), result.getCode().intValue());
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -77,9 +77,9 @@ public class WorkFlowLineageServiceTest {
|
|||
public void testQueryWorkFlowLineageByName() {
|
||||
Project project = getProject("test");
|
||||
String searchVal = "test";
|
||||
when(projectMapper.selectById(1)).thenReturn(project);
|
||||
when(projectMapper.queryByCode(1L)).thenReturn(project);
|
||||
when(workFlowLineageMapper.queryByName(Mockito.any(), Mockito.any())).thenReturn(getWorkFlowLineages());
|
||||
Map<String, Object> result = workFlowLineageService.queryWorkFlowLineageByName(searchVal, 1);
|
||||
Map<String, Object> result = workFlowLineageService.queryWorkFlowLineageByName(searchVal, 1L);
|
||||
List<WorkFlowLineage> workFlowLineageList = (List<WorkFlowLineage>) result.get(Constants.DATA_LIST);
|
||||
Assert.assertTrue(workFlowLineageList.size() > 0);
|
||||
}
|
||||
|
|
@ -106,7 +106,7 @@ public class WorkFlowLineageServiceTest {
|
|||
WorkFlowLineage workFlowLineage = new WorkFlowLineage();
|
||||
workFlowLineage.setSourceWorkFlowId("");
|
||||
|
||||
when(projectMapper.selectById(1)).thenReturn(project);
|
||||
when(projectMapper.queryByCode(1L)).thenReturn(project);
|
||||
when(workFlowLineageMapper.queryRelationByIds(ids, project.getCode())).thenReturn(processLineages);
|
||||
when(workFlowLineageMapper.queryCodeRelation(processLineage.getPostTaskCode()
|
||||
, processLineage.getPreTaskVersion()
|
||||
|
|
@ -117,7 +117,7 @@ public class WorkFlowLineageServiceTest {
|
|||
.queryWorkFlowLineageByCode(processLineage.getProcessDefinitionCode(), processLineage.getProjectCode()))
|
||||
.thenReturn(workFlowLineage);
|
||||
|
||||
Map<String, Object> result = workFlowLineageService.queryWorkFlowLineageByIds(ids, 1);
|
||||
Map<String, Object> result = workFlowLineageService.queryWorkFlowLineageByIds(ids, 1L);
|
||||
|
||||
Map<String, Object> workFlowLists = (Map<String, Object>) result.get(Constants.DATA_LIST);
|
||||
Collection<WorkFlowLineage> workFlowLineages = (Collection<WorkFlowLineage>) workFlowLists.get(Constants.WORKFLOW_LIST);
|
||||
|
|
|
|||
|
|
@ -31,18 +31,18 @@ public class ResultTest {
|
|||
HashMap<String, String> map = new HashMap<>();
|
||||
map.put("testdata", "test");
|
||||
Result ret = Result.success(map);
|
||||
Assert.assertTrue(ret.isSuccess());
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(), ret.getCode().intValue());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void error() {
|
||||
Result ret = Result.error(Status.ACCESS_TOKEN_NOT_EXIST);
|
||||
Assert.assertTrue(ret.isStatus(Status.ACCESS_TOKEN_NOT_EXIST));
|
||||
Assert.assertEquals(Status.ACCESS_TOKEN_NOT_EXIST.getCode(), ret.getCode().intValue());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void errorWithArgs() {
|
||||
Result ret = Result.errorWithArgs(Status.INTERNAL_SERVER_ERROR_ARGS, "test internal server error");
|
||||
Assert.assertTrue(ret.isStatus(Status.INTERNAL_SERVER_ERROR_ARGS));
|
||||
Assert.assertEquals(Status.INTERNAL_SERVER_ERROR_ARGS.getCode(), ret.getCode().intValue());
|
||||
}
|
||||
}
|
||||
|
|
@ -437,7 +437,7 @@ public final class Constants {
|
|||
|
||||
public static final String COMMON_TASK_TYPE = "common";
|
||||
|
||||
public static final String DEFAULT = "Default";
|
||||
public static final String DEFAULT = "default";
|
||||
public static final String USER = "user";
|
||||
public static final String PASSWORD = "password";
|
||||
public static final String XXXXXX = "******";
|
||||
|
|
@ -637,6 +637,11 @@ public final class Constants {
|
|||
*/
|
||||
public static final int DEFINITION_FAILURE = -1;
|
||||
|
||||
/**
|
||||
* process or task definition first version
|
||||
*/
|
||||
public static final int VERSION_FIRST = 1;
|
||||
|
||||
/**
|
||||
* date format of yyyyMMdd
|
||||
*/
|
||||
|
|
@ -876,7 +881,6 @@ public final class Constants {
|
|||
public static final String FLINK_MAIN_CLASS = "-c";
|
||||
public static final String FLINK_PARALLELISM = "-p";
|
||||
public static final String FLINK_SHUTDOWN_ON_ATTACHED_EXIT = "-sae";
|
||||
public static final String FLINK_PYTHON = "-py";
|
||||
|
||||
|
||||
public static final int[] NOT_TERMINATED_STATES = new int[] {
|
||||
|
|
|
|||
|
|
@ -34,8 +34,7 @@ public enum Flag {
|
|||
NO(0, "no"),
|
||||
YES(1, "yes");
|
||||
|
||||
|
||||
Flag(int code, String descp){
|
||||
Flag(int code, String descp) {
|
||||
this.code = code;
|
||||
this.descp = descp;
|
||||
}
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue