From bd73bf93d3233dc2ed80871304007ba8bbf68f50 Mon Sep 17 00:00:00 2001 From: break60 <790061044@qq.com> Date: Wed, 23 Oct 2019 14:29:25 +0800 Subject: [PATCH 01/25] Download workflow instance map width adjustment and change "desc" field to "description" (#1073) * Dependency workflow add dependency correction value * Download workflow instance map width adjustment and change "desc" field to "description" --- .../src/js/conf/home/pages/dag/_source/plugIn/downChart.js | 2 +- .../pages/resource/pages/file/pages/list/_source/rename.vue | 4 ++-- .../resource/pages/udf/pages/function/_source/createUdf.vue | 2 +- .../resource/pages/udf/pages/resource/_source/rename.vue | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/plugIn/downChart.js b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/plugIn/downChart.js index a6b7b8f0be..8ee991f3e6 100644 --- a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/plugIn/downChart.js +++ b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/plugIn/downChart.js @@ -37,7 +37,7 @@ DownChart.prototype.maxVal = function () { let x = parseInt(_.maxBy(tasksAllList, 'x').x + 100) resolve({ - width: x > 600 ? x : dom.width(), + width: (x > 600 ? x : dom.width()) + 100, height: (y > 500 ? y : dom.height()) + 100 }) }) diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/file/pages/list/_source/rename.vue b/dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/file/pages/list/_source/rename.vue index 7d234d09e2..d03306c3a9 100644 --- a/dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/file/pages/list/_source/rename.vue +++ b/dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/file/pages/list/_source/rename.vue @@ -67,7 +67,7 @@ this._verification().then(res => { if (this.name === this.item.alias) { return new Promise((resolve,reject) => { - this.desc === this.item.desc ? reject({msg:'内容未修改'}) : resolve() + this.desc === this.item.description ? reject({msg:'内容未修改'}) : resolve() }) }else{ return this.store.dispatch('resource/resourceVerifyName', { @@ -109,7 +109,7 @@ let item = this.item || {} if (item) { this.name = item.alias - this.desc = item.desc + this.desc = item.description } }, mounted () { diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/udf/pages/function/_source/createUdf.vue b/dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/udf/pages/function/_source/createUdf.vue index 4fa1bed527..ab8bc14f1d 100644 --- a/dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/udf/pages/function/_source/createUdf.vue +++ b/dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/udf/pages/function/_source/createUdf.vue @@ -267,7 +267,7 @@ this.className = this.item.className || '' this.argTypes = this.item.argTypes || '' this.database = this.item.database || '' - this.desc = this.item.desc || '' + this.desc = this.item.description || '' this.resourceId = _.filter(this.udfResourceList, v => v.id === this.item.resourceId)[0] } else { this.resourceId = this.udfResourceList.length && this.udfResourceList[0] || [] diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/udf/pages/resource/_source/rename.vue b/dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/udf/pages/resource/_source/rename.vue index 58bbd5b9a2..49b4b1127b 100644 --- a/dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/udf/pages/resource/_source/rename.vue +++ b/dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/udf/pages/resource/_source/rename.vue @@ -67,7 +67,7 @@ this._verification().then(res => { if (this.name === this.item.alias) { return new Promise((resolve,reject) => { - this.desc === this.item.desc ? reject({msg:'内容未修改'}) : resolve() + this.desc === this.item.description ? reject({msg:'内容未修改'}) : resolve() }) }else{ return this.store.dispatch('resource/resourceVerifyName', { @@ -108,7 +108,7 @@ let item = this.item || {} if (item) { this.name = item.alias - this.desc = item.desc + this.desc = item.description } }, mounted () { From 006fad4e550d614eee44bffecd056aa132c60e1a Mon Sep 17 00:00:00 2001 From: lgcareer <18610854716@163.com> Date: Wed, 23 Oct 2019 14:56:31 +0800 Subject: [PATCH 02/25] fix update udf database not change and create time is changed (#1076) * rename from DatasourceUserMapper to DataSourceUserMapper * add unit test in UserMapper and WorkerGroupMapper * change cn.escheduler to org.apache.dolphinscheduler * add unit test in UdfFuncMapperTest * add unit test in UdfFuncMapperTest * remove DatabaseConfiguration * add ConnectionFactoryTest * cal duration in processInstancesList * change desc to description * change table name in mysql ddl * change table name in mysql ddl * change escheduler to dolphinscheduler * change escheduler to dolphinscheduler * change escheduler to dolphinscheduler * remove log4j-1.2-api and modify AlertMapperTest * remove log4j-1.2-api * Add alertDao to spring management * Add alertDao to spring management * get SqlSessionFactory from MybatisSqlSessionFactoryBean * get processDao by DaoFactory * read druid properties in ConneciontFactory * read druid properties in ConneciontFactory * change get alertDao by spring to DaoFactory * add log4j to resolve #967 * resole verify udf name error and delete udf error * Determine if principal is empty * Determine whether the logon user has the right to delete the project * Fixed an issue that produced attatch file named such as ATT00002.bin * fix too many connection in upgrade or create * fix NEED_FAULT_TOLERANCE and WAITTING_THREAD count fail * Added a judgment on whether the currently login user is an administrator * fix update udf database not change and create time is changed --- .../dolphinscheduler/api/service/UdfFuncService.java | 12 +++--------- .../dolphinscheduler/api/service/UsersService.java | 2 +- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/UdfFuncService.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/UdfFuncService.java index 46e0b13a08..7ab2afd6af 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/UdfFuncService.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/UdfFuncService.java @@ -112,7 +112,7 @@ public class UdfFuncService extends BaseService{ if (StringUtils.isNotEmpty(argTypes)) { udf.setArgTypes(argTypes); } - if (StringUtils.isNotEmpty(argTypes)) { + if (StringUtils.isNotEmpty(database)) { udf.setDatabase(database); } udf.setDescription(desc); @@ -214,19 +214,13 @@ public class UdfFuncService extends BaseService{ Date now = new Date(); udf.setFuncName(funcName); udf.setClassName(className); - if (StringUtils.isNotEmpty(argTypes)) { - udf.setArgTypes(argTypes); - } - if (StringUtils.isNotEmpty(argTypes)) { - udf.setDatabase(database); - } + udf.setArgTypes(argTypes); + udf.setDatabase(database); udf.setDescription(desc); udf.setResourceId(resourceId); udf.setResourceName(resource.getAlias()); udf.setType(type); - - udf.setCreateTime(now); udf.setUpdateTime(now); udfFuncMapper.updateById(udf); diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/UsersService.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/UsersService.java index 0edc9b72bb..232eda0763 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/UsersService.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/UsersService.java @@ -623,7 +623,7 @@ public class UsersService extends BaseService { return result; } - List userList = userMapper.selectList(null); + List userList = userMapper.queryAllGeneralUser(); List resultUsers = new ArrayList<>(); Set userSet = null; if (userList != null && userList.size() > 0) { From 9fa7c1ea68d39f1a33fbbd74538953297ddaef53 Mon Sep 17 00:00:00 2001 From: break60 <790061044@qq.com> Date: Wed, 23 Oct 2019 14:57:59 +0800 Subject: [PATCH 03/25] The third-party library that builds the dependency is recommended to be placed in 'devDependencies' (#1077) * Dependency workflow add dependency correction value * Download workflow instance map width adjustment and change "desc" field to "description" * The third-party library that builds the dependency is recommended to be placed in 'devDependencies' --- dolphinscheduler-ui/package.json | 82 ++++++++++++++++---------------- 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/dolphinscheduler-ui/package.json b/dolphinscheduler-ui/package.json index dab1d6a8b3..5a2e8715ee 100644 --- a/dolphinscheduler-ui/package.json +++ b/dolphinscheduler-ui/package.json @@ -14,53 +14,21 @@ "build:combined": "npm run clean && cross-env NODE_ENV=production PUBLIC_PATH=/dolphinscheduler/ui webpack --config ./build/webpack.config.combined.js" }, "dependencies": { - "autoprefixer": "^9.1.0", - "babel-core": "^6.25.0", - "babel-eslint": "^8.2.2", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^7.1.1", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-class-properties": "^6.24.1", - "babel-plugin-transform-object-rest-spread": "^6.26.0", - "babel-plugin-transform-runtime": "^6.23.0", - "babel-plugin-transform-vue-jsx": "^3.5.0", - "babel-preset-env": "^1.6.1", + "jquery": "1.12.4", + "vue": "^2.5.17", + "vue-router": "2.7.0", + "vuex": "^3.0.0", "bootstrap": "3.3.7", "canvg": "1.5", "clipboard": "^2.0.1", "codemirror": "^5.43.0", - "copy-webpack-plugin": "^4.5.2", - "cross-env": "^5.2.0", - "css-loader": "^0.28.8", - "cssnano": "4.1.10", "d3": "^3.5.17", "dayjs": "^1.7.8", "echarts": "^4.1.0", - "env-parse": "^1.0.5", - "extract-text-webpack-plugin": "^3.0.2", - "file-loader": "^1.1.11", - "globby": "^8.0.1", - "html-loader": "^0.5.5", - "html-webpack-ext-plugin": "^1.0.0", - "html-webpack-plugin": "^3.2.0", "html2canvas": "^0.5.0-beta4", "jsplumb": "^2.8.6", "lodash": "^4.17.11", - "node-sass": "^4.9.2", - "optimize-css-assets-webpack-plugin": "3.2.0", - "postcss-loader": "^2.1.6", - "rimraf": "^2.6.2", - "sass-loader": "^7.1.0", - "uglifyjs-webpack-plugin": "^1.2.7", - "url-loader": "^0.5.9", - "vue-loader": "^13.7.0", - "vue-style-loader": "^4.1.1", - "vue-template-compiler": "^2.5.16", - "vuex-router-sync": "^4.1.2", - "webpack": "^3.12.0", - "webpack-dev-server": "^2.11.2", - "webpack-merge": "^4.1.4" + "vuex-router-sync": "^4.1.2" }, "standard": { "parser": "babel-eslint", @@ -75,9 +43,41 @@ ] }, "devDependencies": { - "jquery": "1.12.4", - "vue": "^2.5.17", - "vue-router": "2.7.0", - "vuex": "^3.0.0" + "autoprefixer": "^9.1.0", + "babel-core": "^6.25.0", + "babel-eslint": "^8.2.2", + "babel-helper-vue-jsx-merge-props": "^2.0.2", + "babel-loader": "^7.1.1", + "babel-plugin-syntax-dynamic-import": "^6.18.0", + "babel-plugin-syntax-jsx": "^6.18.0", + "babel-plugin-transform-class-properties": "^6.24.1", + "babel-plugin-transform-object-rest-spread": "^6.26.0", + "babel-plugin-transform-runtime": "^6.23.0", + "babel-plugin-transform-vue-jsx": "^3.5.0", + "babel-preset-env": "^1.6.1", + "css-loader": "^0.28.8", + "html-loader": "^0.5.5", + "html-webpack-ext-plugin": "^1.0.0", + "html-webpack-plugin": "^3.2.0", + "env-parse": "^1.0.5", + "extract-text-webpack-plugin": "^3.0.2", + "file-loader": "^1.1.11", + "node-sass": "^4.9.2", + "optimize-css-assets-webpack-plugin": "3.2.0", + "postcss-loader": "^2.1.6", + "rimraf": "^2.6.2", + "sass-loader": "^7.1.0", + "uglifyjs-webpack-plugin": "^1.2.7", + "url-loader": "^0.5.9", + "vue-loader": "^13.7.0", + "vue-style-loader": "^4.1.1", + "vue-template-compiler": "^2.5.16", + "webpack": "^3.12.0", + "webpack-dev-server": "^2.11.2", + "webpack-merge": "^4.1.4", + "globby": "^8.0.1", + "cssnano": "4.1.10", + "cross-env": "^5.2.0", + "copy-webpack-plugin": "^4.5.2" } } From 1dcb58d7d5b1a6b62438137e2b8699c645735807 Mon Sep 17 00:00:00 2001 From: break60 <790061044@qq.com> Date: Wed, 23 Oct 2019 15:03:11 +0800 Subject: [PATCH 04/25] Tree chart and Gantt chart style modification (#1078) * Dependency workflow add dependency correction value * Download workflow instance map width adjustment and change "desc" field to "description" * The third-party library that builds the dependency is recommended to be placed in 'devDependencies' * Tree chart and Gantt chart style modification --- .../pages/definition/pages/tree/_source/util.js | 6 +++--- .../pages/instance/pages/gantt/_source/gantt.js | 15 ++++++--------- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/definition/pages/tree/_source/util.js b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/definition/pages/tree/_source/util.js index acb40f2bf3..eb37e82a6c 100644 --- a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/definition/pages/tree/_source/util.js +++ b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/definition/pages/tree/_source/util.js @@ -22,7 +22,7 @@ import { tasksState } from '@/conf/home/pages/dag/_source/config' * Node prompt dom */ const rtInstancesTooltip = (data) => { - let str = `
` + let str = `
` str += `id : ${data.id}
` str += `host : ${data.host}
` str += `name : ${data.name}
` @@ -30,8 +30,8 @@ const rtInstancesTooltip = (data) => { if (data.type) { str += `type : ${data.type}
` } - str += `startTime : ${data.startTime ? formatDate(data.startTime) : 'null'}
` - str += `endTime : ${data.endTime ? formatDate(data.endTime) : 'null'}
` + str += `startTime : ${data.startTime ? formatDate(data.startTime) : '-'}
` + str += `endTime : ${data.endTime ? formatDate(data.endTime) : '-'}
` str += `duration : ${data.duration}
` str += `
` return str diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/instance/pages/gantt/_source/gantt.js b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/instance/pages/gantt/_source/gantt.js index b1779eefd5..b59a636ffa 100644 --- a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/instance/pages/gantt/_source/gantt.js +++ b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/instance/pages/gantt/_source/gantt.js @@ -166,15 +166,12 @@ Gantt.prototype.drawChart = function () { * tip提示 */ Gantt.prototype.tip = function (d) { - let str = '' - str += `
` - str += `
    ` - str += `
  • taskName :${d.taskName}
  • ` - str += `
  • status :${tasksState[d.status].desc} (${d.status})
  • ` - str += `
  • startTime :${formatDate(d.isoStart)}
  • ` - str += `
  • endTime :${formatDate(d.isoEnd)}
  • ` - str += `
  • duration :${d.duration}
  • ` - str += `
` + let str = `
` + str += `taskName : ${d.taskName}
` + str += `status : ${tasksState[d.status].desc} (${d.status})
` + str += `startTime : ${formatDate(d.isoStart)}
` + str += `endTime : ${formatDate(d.isoEnd)}
` + str += `duration : ${d.duration}
` str += `
` return str } From 0fc419ed8f073217f5ee4e42b9f6e18cfda2eb32 Mon Sep 17 00:00:00 2001 From: bao liang <29528966+lenboo@users.noreply.github.com> Date: Wed, 23 Oct 2019 16:29:31 +0800 Subject: [PATCH 05/25] add check user and definitions function when delete tenant (#1080) * update english documents * refactor zk client * update documents * update zkclient * update zkclient * update documents * add architecture-design * change i18n * update i18n * update english documents * add architecture-design * update english documents * update en-US documents * add architecture-design * update demo site * add mybatis plus model * modify mybatisplus * modify mybatisplus * change interface by mybatisplus * add unit test * refactor dao interface. * add unit test for dao... * add unit test for dao... * add unit test for dao... * Merge remote-tracking branch 'upstream/dev-db' into dev-db # Conflicts: # dolphinscheduler-dao/src/main/resources/cn.escheduler.dao.mapper/ProjectMapper.xml # dolphinscheduler-dao/src/main/resources/cn.escheduler.dao.mapper/ScheduleMapper.xml # escheduler-dao/src/main/resources/cn.escheduler.dao.mapper/ProcessInstanceMapper.xml # escheduler-dao/src/main/resources/cn.escheduler.dao.mapper/ProjectUserMapper.xml # escheduler-dao/src/main/resources/cn.escheduler.dao.mapper/QueueMapper.xml # escheduler-dao/src/test/java/cn/escheduler/dao/mapper/ProcessInstanceMapperTest.java # escheduler-dao/src/test/java/cn/escheduler/dao/mapper/ProjectUserMapperTest.java # escheduler-dao/src/test/java/cn/escheduler/dao/mapper/QueueMapperTest.java # escheduler-dao/src/test/java/cn/escheduler/dao/mapper/ResourceUserMapperTest.java # escheduler-dao/src/test/java/cn/escheduler/dao/mapper/ScheduleMapperTest.java # escheduler-dao/src/test/java/cn/escheduler/dao/mapper/SessionMapperTest.java # escheduler-dao/src/test/java/cn/escheduler/dao/mapper/TenantMapperTest.java * Merge remote-tracking branch 'upstream/dev-db' into dev-db # Conflicts: # dolphinscheduler-dao/src/main/resources/cn.escheduler.dao.mapper/ProjectMapper.xml # dolphinscheduler-dao/src/main/resources/cn.escheduler.dao.mapper/ScheduleMapper.xml # escheduler-dao/src/main/resources/cn.escheduler.dao.mapper/ProcessInstanceMapper.xml # escheduler-dao/src/main/resources/cn.escheduler.dao.mapper/ProjectUserMapper.xml # escheduler-dao/src/main/resources/cn.escheduler.dao.mapper/QueueMapper.xml # escheduler-dao/src/test/java/cn/escheduler/dao/mapper/ProcessInstanceMapperTest.java # escheduler-dao/src/test/java/cn/escheduler/dao/mapper/ProjectUserMapperTest.java # escheduler-dao/src/test/java/cn/escheduler/dao/mapper/QueueMapperTest.java # escheduler-dao/src/test/java/cn/escheduler/dao/mapper/ResourceUserMapperTest.java # escheduler-dao/src/test/java/cn/escheduler/dao/mapper/ScheduleMapperTest.java # escheduler-dao/src/test/java/cn/escheduler/dao/mapper/SessionMapperTest.java # escheduler-dao/src/test/java/cn/escheduler/dao/mapper/TenantMapperTest.java * Merge remote-tracking branch 'upstream/dev-db' into dev-db # Conflicts: # dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ProjectMapper.xml # dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ResourceMapper.xml # dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/TaskInstanceMapper.xml * update some dao bugs * update for some bugs * update some bugs * Merge remote-tracking branch 'upstream/dev-db' into dev-db # Conflicts: # dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ProjectMapper.xml # dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ResourceMapper.xml # dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/TaskInstanceMapper.xml * update * update * add multiply settings for application.yml * add multiply settings for application.yml * revert * update configuration settings in task record dao... * change application_master to application-master * change application_master to application-master * update application.yml to application.properties * revert * revert * add properties * add properties * revert * revert * add api start up.. add alert send try catch * update dao info level * fix bug: task cannot submit when recovery failover * fix bug: task cannot submit when recovery failover * merge from dev-db * revert * revert * fix bug: get process definition list failed. * fix bug: process instance interval is error * revert * revert * update * support stop submit success tasks * update kill process * update for stop process * update for stop process * add some logs for stop process * update for small bug. * add check strategy before submit task * revert * update * update * revert * wait task instance exists if null. * revert * update * change desc to description. * add check user and definitions function when delete tenant * update --- .../api/controller/AlertGroupController.java | 20 ++++---- .../ProcessDefinitionController.java | 20 ++++---- .../api/controller/ProjectController.java | 20 ++++---- .../api/controller/ResourcesController.java | 20 ++++---- .../api/controller/TenantController.java | 22 ++++---- .../dolphinscheduler/api/enums/Status.java | 2 + .../api/service/TenantService.java | 50 ++++++++++++++----- .../dao/mapper/ProcessDefinitionMapper.java | 2 + .../dao/mapper/UserMapper.java | 1 + .../dao/mapper/ProcessDefinitionMapper.xml | 8 +-- .../dao/mapper/UserMapper.xml | 10 ++-- .../master/runner/MasterExecThread.java | 13 +++-- .../server/worker/runner/FetchTaskThread.java | 6 +-- 13 files changed, 116 insertions(+), 78 deletions(-) diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/AlertGroupController.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/AlertGroupController.java index d12415cdd6..c68383b4b8 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/AlertGroupController.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/AlertGroupController.java @@ -56,25 +56,25 @@ public class AlertGroupController extends BaseController{ * @param loginUser * @param groupName * @param groupType - * @param desc + * @param description * @return */ @ApiOperation(value = "createAlertgroup", notes= "CREATE_ALERT_GROUP_NOTES") @ApiImplicitParams({ @ApiImplicitParam(name = "groupName", value = "GROUP_NAME", required = true, dataType = "String"), @ApiImplicitParam(name = "groupType", value = "GROUP_TYPE", required = true, dataType ="AlertType"), - @ApiImplicitParam(name = "desc", value = "DESC", dataType ="String") + @ApiImplicitParam(name = "description", value = "DESC", dataType ="String") }) @PostMapping(value = "/create") @ResponseStatus(HttpStatus.CREATED) public Result createAlertgroup(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser, @RequestParam(value = "groupName") String groupName, @RequestParam(value = "groupType") AlertType groupType, - @RequestParam(value = "desc",required = false) String desc) { + @RequestParam(value = "description",required = false) String description) { logger.info("loginUser user {}, create alertgroup, groupName: {}, groupType: {}, desc: {}", - loginUser.getUserName(), groupName, groupType,desc); + loginUser.getUserName(), groupName, groupType,description); try { - Map result = alertGroupService.createAlertgroup(loginUser, groupName, groupType,desc); + Map result = alertGroupService.createAlertgroup(loginUser, groupName, groupType,description); return returnDataList(result); }catch (Exception e){ logger.error(Status.CREATE_ALERT_GROUP_ERROR.getMsg(),e); @@ -146,7 +146,7 @@ public class AlertGroupController extends BaseController{ * @param id * @param groupName * @param groupType - * @param desc + * @param description * @return */ @ApiOperation(value = "updateAlertgroup", notes= "UPDATE_ALERT_GROUP_NOTES") @@ -154,7 +154,7 @@ public class AlertGroupController extends BaseController{ @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 = "groupType", value = "GROUP_TYPE", required = true, dataType ="AlertType"), - @ApiImplicitParam(name = "desc", value = "DESC", dataType ="String") + @ApiImplicitParam(name = "description", value = "DESC", dataType ="String") }) @PostMapping(value = "/update") @ResponseStatus(HttpStatus.OK) @@ -162,11 +162,11 @@ public class AlertGroupController extends BaseController{ @RequestParam(value = "id") int id, @RequestParam(value = "groupName") String groupName, @RequestParam(value = "groupType") AlertType groupType, - @RequestParam(value = "desc",required = false) String desc) { + @RequestParam(value = "description",required = false) String description) { logger.info("login user {}, updateProcessInstance alertgroup, groupName: {}, groupType: {}, desc: {}", - loginUser.getUserName(), groupName, groupType,desc); + loginUser.getUserName(), groupName, groupType,description); try { - Map result = alertGroupService.updateAlertgroup(loginUser, id, groupName, groupType, desc); + Map result = alertGroupService.updateAlertgroup(loginUser, id, groupName, groupType, description); return returnDataList(result); }catch (Exception e){ diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/ProcessDefinitionController.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/ProcessDefinitionController.java index 5f3ab86d02..b6df0d6d95 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/ProcessDefinitionController.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/ProcessDefinitionController.java @@ -54,7 +54,7 @@ public class ProcessDefinitionController extends BaseController{ * @param projectName * @param name * @param json process definition json - * @param desc + * @param description * @return */ @ApiOperation(value = "save", notes= "CREATE_PROCESS_DEFINITION_NOTES") @@ -63,7 +63,7 @@ public class ProcessDefinitionController extends BaseController{ @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 = "desc", value = "PROCESS_DEFINITION_DESC", required = false, type ="String"), + @ApiImplicitParam(name = "description", value = "PROCESS_DEFINITION_DESC", required = false, type ="String"), }) @PostMapping(value = "/save") @ResponseStatus(HttpStatus.CREATED) @@ -73,14 +73,14 @@ public class ProcessDefinitionController extends BaseController{ @RequestParam(value = "processDefinitionJson", required = true) String json, @RequestParam(value = "locations", required = true) String locations, @RequestParam(value = "connects", required = true) String connects, - @RequestParam(value = "desc", required = false) String desc) { + @RequestParam(value = "description", required = false) String description) { try { logger.info("login user {}, create process definition, project name: {}, process definition name: {}, " + "process_definition_json: {}, desc: {} locations:{}, connects:{}", - loginUser.getUserName(), projectName, name, json, desc, locations, connects); + loginUser.getUserName(), projectName, name, json, description, locations, connects); Map result = processDefinitionService.createProcessDefinition(loginUser, projectName, name, json, - desc, locations, connects); + description, locations, connects); return returnDataList(result); } catch (Exception e) { logger.error(Status.CREATE_PROCESS_DEFINITION.getMsg(), e); @@ -124,7 +124,7 @@ public class ProcessDefinitionController extends BaseController{ * @param name * @param id * @param processDefinitionJson - * @param desc + * @param description * @return */ @ApiOperation(value = "updateProccessDefinition", notes= "UPDATE_PROCCESS_DEFINITION_NOTES") @@ -134,7 +134,7 @@ public class ProcessDefinitionController extends BaseController{ @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 = "desc", value = "PROCESS_DEFINITION_DESC", required = false, type ="String"), + @ApiImplicitParam(name = "description", value = "PROCESS_DEFINITION_DESC", required = false, type ="String"), }) @PostMapping(value = "/update") @ResponseStatus(HttpStatus.OK) @@ -145,14 +145,14 @@ public class ProcessDefinitionController extends BaseController{ @RequestParam(value = "processDefinitionJson", required = true) String processDefinitionJson, @RequestParam(value = "locations", required = false) String locations, @RequestParam(value = "connects", required = false) String connects, - @RequestParam(value = "desc", required = false) String desc) { + @RequestParam(value = "description", required = false) String description) { try { logger.info("login user {}, update process define, project name: {}, process define name: {}, " + "process_definition_json: {}, desc: {}, locations:{}, connects:{}", - loginUser.getUserName(), projectName, name, processDefinitionJson,desc, locations, connects); + loginUser.getUserName(), projectName, name, processDefinitionJson,description, locations, connects); Map result = processDefinitionService.updateProcessDefinition(loginUser, projectName, id, name, - processDefinitionJson, desc, locations, connects); + processDefinitionJson, description, locations, connects); return returnDataList(result); }catch (Exception e){ logger.error(Status.UPDATE_PROCESS_DEFINITION_ERROR.getMsg(),e); diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/ProjectController.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/ProjectController.java index d9927bbc2b..9833bf60af 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/ProjectController.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/ProjectController.java @@ -61,23 +61,23 @@ public class ProjectController extends BaseController { * * @param loginUser * @param projectName - * @param desc + * @param description * @return returns an error if it exists */ @ApiOperation(value = "createProject", notes= "CREATE_PROJECT_NOTES") @ApiImplicitParams({ @ApiImplicitParam(name = "projectName", value = "PROJECT_NAME", dataType ="String"), - @ApiImplicitParam(name = "desc", value = "PROJECT_DESC", dataType = "String") + @ApiImplicitParam(name = "description", value = "PROJECT_DESC", dataType = "String") }) @PostMapping(value = "/create") @ResponseStatus(HttpStatus.CREATED) public Result createProject(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser, @RequestParam("projectName") String projectName, - @RequestParam(value = "desc", required = false) String desc) { + @RequestParam(value = "description", required = false) String description) { try { - logger.info("login user {}, create project name: {}, desc: {}", loginUser.getUserName(), projectName, desc); - Map result = projectService.createProject(loginUser, projectName, desc); + logger.info("login user {}, create project name: {}, desc: {}", loginUser.getUserName(), projectName, description); + Map result = projectService.createProject(loginUser, projectName, description); return returnDataList(result); } catch (Exception e) { logger.error(CREATE_PROJECT_ERROR.getMsg(), e); @@ -91,24 +91,24 @@ public class ProjectController extends BaseController { * @param loginUser * @param projectId * @param projectName - * @param desc + * @param description * @return */ @ApiOperation(value = "updateProject", notes= "UPDATE_PROJECT_NOTES") @ApiImplicitParams({ @ApiImplicitParam(name = "projectId", value = "PROJECT_ID", dataType ="Int", example = "100"), @ApiImplicitParam(name = "projectName",value = "PROJECT_NAME",dataType = "String"), - @ApiImplicitParam(name = "desc", value = "PROJECT_DESC", dataType = "String") + @ApiImplicitParam(name = "description", value = "PROJECT_DESC", dataType = "String") }) @PostMapping(value = "/update") @ResponseStatus(HttpStatus.OK) public Result updateProject(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser, @RequestParam("projectId") Integer projectId, @RequestParam("projectName") String projectName, - @RequestParam(value = "desc", required = false) String desc) { + @RequestParam(value = "description", required = false) String description) { try { - logger.info("login user {} , updateProcessInstance project name: {}, desc: {}", loginUser.getUserName(), projectName, desc); - Map result = projectService.update(loginUser, projectId, projectName, desc); + logger.info("login user {} , updateProcessInstance project name: {}, desc: {}", loginUser.getUserName(), projectName, description); + Map result = projectService.update(loginUser, projectId, projectName, description); return returnDataList(result); } catch (Exception e) { logger.error(UPDATE_PROJECT_ERROR.getMsg(), e); diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/ResourcesController.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/ResourcesController.java index 0070b50952..d79c22ea1f 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/ResourcesController.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/ResourcesController.java @@ -383,7 +383,7 @@ public class ResourcesController extends BaseController{ * @param funcName * @param argTypes * @param database - * @param desc + * @param description * @param resourceId * @return */ @@ -394,7 +394,7 @@ public class ResourcesController extends BaseController{ @ApiImplicitParam(name = "suffix", 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 = "desc", value = "UDF_DESC", dataType ="String"), + @ApiImplicitParam(name = "description", value = "UDF_DESC", dataType ="String"), @ApiImplicitParam(name = "resourceId", value = "RESOURCE_ID", required = true, dataType ="Int", example = "100") }) @@ -406,14 +406,14 @@ public class ResourcesController extends BaseController{ @RequestParam(value ="className")String className, @RequestParam(value ="argTypes", required = false)String argTypes, @RequestParam(value ="database", required = false)String database, - @RequestParam(value = "desc", required = false) String desc, + @RequestParam(value = "description", required = false) String description, @RequestParam(value = "resourceId") int resourceId) { logger.info("login user {}, create udf function, type: {}, funcName: {},argTypes: {} ,database: {},desc: {},resourceId: {}", - loginUser.getUserName(),type, funcName, argTypes,database,desc, resourceId); + loginUser.getUserName(),type, funcName, argTypes,database,description, resourceId); Result result = new Result(); try { - return udfFuncService.createUdfFunction(loginUser,funcName,className,argTypes,database,desc,type,resourceId); + return udfFuncService.createUdfFunction(loginUser,funcName,className,argTypes,database,description,type,resourceId); } catch (Exception e) { logger.error(CREATE_UDF_FUNCTION_ERROR.getMsg(),e); return error(Status.CREATE_UDF_FUNCTION_ERROR.getCode(), Status.CREATE_UDF_FUNCTION_ERROR.getMsg()); @@ -457,7 +457,7 @@ public class ResourcesController extends BaseController{ * @param funcName * @param argTypes * @param database - * @param desc + * @param description * @param resourceId * @return */ @@ -468,7 +468,7 @@ public class ResourcesController extends BaseController{ @ApiImplicitParam(name = "suffix", 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 = "desc", value = "UDF_DESC", dataType ="String"), + @ApiImplicitParam(name = "description", value = "UDF_DESC", dataType ="String"), @ApiImplicitParam(name = "id", value = "RESOURCE_ID", required = true, dataType ="Int", example = "100") }) @@ -480,12 +480,12 @@ public class ResourcesController extends BaseController{ @RequestParam(value ="className")String className, @RequestParam(value ="argTypes", required = false)String argTypes, @RequestParam(value ="database", required = false)String database, - @RequestParam(value = "desc", required = false) String desc, + @RequestParam(value = "description", required = false) String description, @RequestParam(value = "resourceId") int resourceId) { try { logger.info("login user {}, updateProcessInstance udf function id: {},type: {}, funcName: {},argTypes: {} ,database: {},desc: {},resourceId: {}", - loginUser.getUserName(),udfFuncId,type, funcName, argTypes,database,desc, resourceId); - Map result = udfFuncService.updateUdfFunc(udfFuncId,funcName,className,argTypes,database,desc,type,resourceId); + loginUser.getUserName(),udfFuncId,type, funcName, argTypes,database,description, resourceId); + Map result = udfFuncService.updateUdfFunc(udfFuncId,funcName,className,argTypes,database,description,type,resourceId); return returnDataList(result); } catch (Exception e) { logger.error(UPDATE_UDF_FUNCTION_ERROR.getMsg(),e); diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/TenantController.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/TenantController.java index a1a2f559b1..0d65028e3a 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/TenantController.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/TenantController.java @@ -58,7 +58,7 @@ public class TenantController extends BaseController{ * @param tenantCode * @param tenantName * @param queueId - * @param desc + * @param description * @return */ @ApiOperation(value = "createTenant", notes= "CREATE_TENANT_NOTES") @@ -66,7 +66,7 @@ public class TenantController extends BaseController{ @ApiImplicitParam(name = "tenantCode", value = "TENANT_CODE", required = true, dataType = "String"), @ApiImplicitParam(name = "tenantName", value = "TENANT_NAME", required = true, dataType ="String"), @ApiImplicitParam(name = "queueId", value = "QUEUE_ID", required = true, dataType ="Int",example = "100"), - @ApiImplicitParam(name = "desc", value = "TENANT_DESC", dataType ="String") + @ApiImplicitParam(name = "description", value = "TENANT_DESC", dataType ="String") }) @PostMapping(value = "/create") @@ -75,11 +75,11 @@ public class TenantController extends BaseController{ @RequestParam(value = "tenantCode") String tenantCode, @RequestParam(value = "tenantName") String tenantName, @RequestParam(value = "queueId") int queueId, - @RequestParam(value = "desc",required = false) String desc) { + @RequestParam(value = "description",required = false) String description) { logger.info("login user {}, create tenant, tenantCode: {}, tenantName: {}, queueId: {}, desc: {}", - loginUser.getUserName(), tenantCode, tenantName, queueId,desc); + loginUser.getUserName(), tenantCode, tenantName, queueId,description); try { - Map result = tenantService.createTenant(loginUser,tenantCode,tenantName,queueId,desc); + Map result = tenantService.createTenant(loginUser,tenantCode,tenantName,queueId,description); return returnDataList(result); }catch (Exception e){ @@ -156,7 +156,7 @@ public class TenantController extends BaseController{ * @param tenantCode * @param tenantName * @param queueId - * @param desc + * @param description * @return */ @ApiOperation(value = "updateTenant", notes= "UPDATE_TENANT_NOTES") @@ -165,7 +165,7 @@ public class TenantController extends BaseController{ @ApiImplicitParam(name = "tenantCode", value = "TENANT_CODE", required = true, dataType = "String"), @ApiImplicitParam(name = "tenantName", value = "TENANT_NAME", required = true, dataType ="String"), @ApiImplicitParam(name = "queueId", value = "QUEUE_ID", required = true, dataType ="Int", example = "100"), - @ApiImplicitParam(name = "desc", value = "TENANT_DESC", type ="String") + @ApiImplicitParam(name = "description", value = "TENANT_DESC", type ="String") }) @PostMapping(value = "/update") @@ -175,11 +175,11 @@ public class TenantController extends BaseController{ @RequestParam(value = "tenantCode") String tenantCode, @RequestParam(value = "tenantName") String tenantName, @RequestParam(value = "queueId") int queueId, - @RequestParam(value = "desc",required = false) String desc) { - logger.info("login user {}, updateProcessInstance tenant, tenantCode: {}, tenantName: {}, queueId: {}, desc: {}", - loginUser.getUserName(), tenantCode, tenantName, queueId,desc); + @RequestParam(value = "description",required = false) String description) { + logger.info("login user {}, updateProcessInstance tenant, tenantCode: {}, tenantName: {}, queueId: {}, description: {}", + loginUser.getUserName(), tenantCode, tenantName, queueId,description); try { - Map result = tenantService.updateTenant(loginUser,id,tenantCode, tenantName, queueId, desc); + Map result = tenantService.updateTenant(loginUser,id,tenantCode, tenantName, queueId, description); return returnDataList(result); }catch (Exception e){ logger.error(Status.UPDATE_TENANT_ERROR.getMsg(),e); diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/enums/Status.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/enums/Status.java index 1c22da74cc..7bd7a00a74 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/enums/Status.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/enums/Status.java @@ -165,6 +165,8 @@ public enum Status { PARSE_TO_CRON_EXPRESSION_ERROR(10140,"parse cron to cron expression error"), SCHEDULE_START_TIME_END_TIME_SAME(10141,"The start time must not be the same as the end"), DELETE_TENANT_BY_ID_FAIL(100142,"delete tenant by id fail, for there are {0} process instances in executing using it"), + DELETE_TENANT_BY_ID_FAIL_DEFINES(100143,"delete tenant by id fail, for there are {0} process definitions using it"), + DELETE_TENANT_BY_ID_FAIL_USERS(100144,"delete tenant by id fail, for there are {0} users using it"), UDF_FUNCTION_NOT_EXIST(20001, "UDF function not found"), UDF_FUNCTION_EXISTS(20002, "UDF function already exists"), diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/TenantService.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/TenantService.java index 93acb9cbd2..11ace50648 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/TenantService.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/TenantService.java @@ -27,11 +27,14 @@ import org.apache.dolphinscheduler.common.enums.ExecutionStatus; import org.apache.dolphinscheduler.common.utils.CollectionUtils; import org.apache.dolphinscheduler.common.utils.HadoopUtils; import org.apache.dolphinscheduler.common.utils.PropertyUtils; +import org.apache.dolphinscheduler.dao.entity.ProcessDefinition; import org.apache.dolphinscheduler.dao.entity.ProcessInstance; 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.ProcessInstanceMapper; import org.apache.dolphinscheduler.dao.mapper.TenantMapper; +import org.apache.dolphinscheduler.dao.mapper.UserMapper; import org.apache.hadoop.fs.FileStatus; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -58,6 +61,14 @@ public class TenantService extends BaseService{ @Autowired private ProcessInstanceMapper processInstanceMapper; + @Autowired + private ProcessDefinitionMapper processDefinitionMapper; + + @Autowired + private UserMapper userMapper; + + + /** * create tenant * @@ -228,28 +239,29 @@ public class TenantService extends BaseService{ } Tenant tenant = tenantMapper.queryById(id); - if (tenant == null){ putMsg(result, Status.TENANT_NOT_EXIST); return result; } - int[] states = new int[]{ - ExecutionStatus.SUBMITTED_SUCCESS.ordinal(), - ExecutionStatus.RUNNING_EXEUTION.ordinal(), - ExecutionStatus.READY_PAUSE.ordinal(), - ExecutionStatus.READY_STOP.ordinal(), - ExecutionStatus.NEED_FAULT_TOLERANCE.ordinal(), - ExecutionStatus.WAITTING_THREAD.ordinal(), - ExecutionStatus.WAITTING_DEPEND.ordinal() - }; - - List processInstances = processInstanceMapper.queryByTenantIdAndStatus(tenant.getId(), states); + List processInstances = getProcessInstancesByTenant(tenant); if(CollectionUtils.isNotEmpty(processInstances)){ putMsg(result, Status.DELETE_TENANT_BY_ID_FAIL, processInstances.size()); return result; } + List processDefinitions = processDefinitionMapper.queryDefinitionListByTenant(tenant.getId()); + if(CollectionUtils.isNotEmpty(processDefinitions)){ + putMsg(result, Status.DELETE_TENANT_BY_ID_FAIL_DEFINES, processDefinitions.size()); + return result; + } + + List userList = userMapper.queryUserListByTenant(tenant.getId()); + if(CollectionUtils.isNotEmpty(userList)){ + putMsg(result, Status.DELETE_TENANT_BY_ID_FAIL_USERS, userList.size()); + return result; + } + // if resource upload startup if (PropertyUtils.getResUploadStartupState()){ String tenantPath = HadoopUtils.getHdfsDataBasePath() + "/" + tenant.getTenantCode(); @@ -277,6 +289,20 @@ public class TenantService extends BaseService{ return result; } + private List getProcessInstancesByTenant(Tenant tenant) { + int[] states = new int[]{ + ExecutionStatus.SUBMITTED_SUCCESS.ordinal(), + ExecutionStatus.RUNNING_EXEUTION.ordinal(), + ExecutionStatus.READY_PAUSE.ordinal(), + ExecutionStatus.READY_STOP.ordinal(), + ExecutionStatus.NEED_FAULT_TOLERANCE.ordinal(), + ExecutionStatus.WAITTING_THREAD.ordinal(), + ExecutionStatus.WAITTING_DEPEND.ordinal() + }; + + return processInstanceMapper.queryByTenantIdAndStatus(tenant.getId(), states); + } + /** * query tenant list * diff --git a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionMapper.java b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionMapper.java index 1eab334a0d..3287d8d8fb 100644 --- a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionMapper.java +++ b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionMapper.java @@ -41,6 +41,8 @@ public interface ProcessDefinitionMapper extends BaseMapper { List queryDefinitionListByIdList(@Param("ids") Integer[] ids); + List queryDefinitionListByTenant(@Param("tenantId") int tenantId); + List countDefinitionGroupByUser( @Param("userId") Integer userId, @Param("projectIds") Integer[] projectIds); diff --git a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/UserMapper.java b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/UserMapper.java index 61cf2bbad7..998c927da6 100644 --- a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/UserMapper.java +++ b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/UserMapper.java @@ -40,6 +40,7 @@ public interface UserMapper extends BaseMapper { List queryUserListByAlertGroupId(@Param("alertgroupId") int alertgroupId); + List queryUserListByTenant(@Param("tenantId") int tenantId); User queryTenantCodeByUserId(@Param("userId") int userId); diff --git a/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionMapper.xml b/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionMapper.xml index 286be0afc9..07e6f5db83 100644 --- a/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionMapper.xml +++ b/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionMapper.xml @@ -30,6 +30,11 @@ where project_id = #{projectId} order by create_time desc + - - - \ No newline at end of file diff --git a/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/UserMapper.xml b/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/UserMapper.xml index 55562ce6e8..d5d843a1c0 100644 --- a/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/UserMapper.xml +++ b/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/UserMapper.xml @@ -1,7 +1,6 @@ - - - - - + + + select t.state, count(0) as count from t_ds_process_instance t From 850d6bb3a5d440e7a29b181899f8c99c5ceaa534 Mon Sep 17 00:00:00 2001 From: break60 <790061044@qq.com> Date: Wed, 23 Oct 2019 20:15:27 +0800 Subject: [PATCH 09/25] The workflow instance can be deleted only when its status is success, failure, stop and pause. (#1079) * Dependency workflow add dependency correction value * Download workflow instance map width adjustment and change "desc" field to "description" * The third-party library that builds the dependency is recommended to be placed in 'devDependencies' * Tree chart and Gantt chart style modification * The workflow instance can be deleted only when its status is success, failure, stop and pause. --- .../pages/projects/pages/instance/pages/list/_source/list.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/instance/pages/list/_source/list.vue b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/instance/pages/list/_source/list.vue index c3dd2797df..3c8a00710b 100644 --- a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/instance/pages/list/_source/list.vue +++ b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/instance/pages/list/_source/list.vue @@ -149,7 +149,7 @@ shape="circle" size="xsmall" data-toggle="tooltip" - :disabled="item.state === 'RUNNING_EXEUTION'" + :disabled="item.state !== 'SUCCESS' && item.state !== 'FAILURE' && item.state !== 'STOP' && item.state !== 'PAUSE'" :title="$t('delete')"> From bdad19dbff9e64aba79d0f453901ac74713d5593 Mon Sep 17 00:00:00 2001 From: break60 <790061044@qq.com> Date: Wed, 23 Oct 2019 20:19:42 +0800 Subject: [PATCH 10/25] change desc to description (#1083) * Dependency workflow add dependency correction value * Download workflow instance map width adjustment and change "desc" field to "description" * The third-party library that builds the dependency is recommended to be placed in 'devDependencies' * Tree chart and Gantt chart style modification * The workflow instance can be deleted only when its status is success, failure, stop and pause. * change desc to description --- .../src/js/conf/home/pages/dag/_source/dag.vue | 10 +++++----- .../home/pages/dag/_source/formModel/formModel.vue | 12 ++++++------ .../src/js/conf/home/pages/dag/_source/udp/udp.vue | 10 +++++----- .../pages/list/_source/createDataSource.vue | 2 +- .../pages/datasource/pages/list/_source/list.vue | 2 +- .../pages/definition/pages/list/_source/list.vue | 4 ++-- .../projects/pages/list/_source/createProject.vue | 8 ++++---- .../home/pages/projects/pages/list/_source/list.vue | 4 ++-- .../projects/pages/taskInstance/_source/list.vue | 2 +- .../pages/resource/pages/file/pages/create/index.vue | 6 +++--- .../resource/pages/file/pages/list/_source/list.vue | 2 +- .../pages/file/pages/list/_source/rename.vue | 10 +++++----- .../pages/udf/pages/function/_source/createUdf.vue | 8 ++++---- .../pages/udf/pages/function/_source/list.vue | 2 +- .../pages/udf/pages/resource/_source/list.vue | 2 +- .../pages/udf/pages/resource/_source/rename.vue | 10 +++++----- .../pages/tenement/_source/createTenement.vue | 8 ++++---- .../pages/security/pages/tenement/_source/list.vue | 2 +- .../conf/home/pages/security/pages/users/index.vue | 2 +- .../pages/warningGroups/_source/createWarning.vue | 8 ++++---- .../security/pages/warningGroups/_source/list.vue | 2 +- .../src/js/conf/home/store/dag/actions.js | 10 +++++----- .../src/js/conf/home/store/dag/mutations.js | 6 +++--- .../src/js/conf/home/store/dag/state.js | 4 ++-- .../components/fileUpdate/definitionUpdate.vue | 4 ++-- .../js/module/components/fileUpdate/fileUpdate.vue | 8 ++++---- .../js/module/components/fileUpdate/udfUpdate.vue | 2 +- 27 files changed, 75 insertions(+), 75 deletions(-) diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/dag.vue b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/dag.vue index e703013073..97009bbef3 100644 --- a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/dag.vue +++ b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/dag.vue @@ -24,7 +24,7 @@ :id="v" v-for="(item,v) in tasksTypeList" @mousedown="_getDagId(v)"> -
+
@@ -66,7 +66,7 @@ :class="_operationClass(item)" :id="item.code" @click="_ckOperation(item,$event)"> - +
{ + const titleTpl = (item, description) => { let $item = _.filter(taskList, v => v.name === item.name)[0] - return `
${i18n.$t('Name')}:${$item.name}
${i18n.$t('State')}:${desc}
${i18n.$t('type')}:${$item.taskType}
${i18n.$t('host')}:${$item.host || '-'}
${i18n.$t('Retry Count')}:${$item.retryTimes}
${i18n.$t('Submit Time')}:${formatDate($item.submitTime)}
${i18n.$t('Start Time')}:${formatDate($item.startTime)}
${i18n.$t('End Time')}:${$item.endTime ? formatDate($item.endTime) : '-'}
` + return `
${i18n.$t('Name')}:${$item.name}
${i18n.$t('State')}:${description}
${i18n.$t('type')}:${$item.taskType}
${i18n.$t('host')}:${$item.host || '-'}
${i18n.$t('Retry Count')}:${$item.retryTimes}
${i18n.$t('Submit Time')}:${formatDate($item.submitTime)}
${i18n.$t('Start Time')}:${formatDate($item.startTime)}
${i18n.$t('End Time')}:${$item.endTime ? formatDate($item.endTime) : '-'}
` } // remove tip state dom @@ -212,7 +212,7 @@ dom.attr('data-state-id', v1.stateId) dom.attr('data-dependent-result', v1.dependentResult || '') state.append(`${v1.icoUnicode}`) - state.find('b').attr('title', titleTpl(v2, v1.desc)) + state.find('b').attr('title', titleTpl(v2, v1.description)) } }) }) diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/formModel.vue b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/formModel.vue index ae641da54a..9707449e8b 100644 --- a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/formModel.vue +++ b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/formModel.vue @@ -60,7 +60,7 @@
- +
{{$t('Description')}} @@ -72,7 +72,7 @@ :autosize="{minRows:2}" type="textarea" :disabled="isDetails" - v-model="desc" + v-model="description" :placeholder="$t('Please enter description')" autocomplete="off"> @@ -229,8 +229,8 @@ spinnerLoading: false, // node name name: ``, - // desc - desc: '', + // description + description: '', // Node echo data backfillItem: {}, // Resource(list) @@ -377,7 +377,7 @@ id: this.id, name: this.name, params: this.params, - desc: this.desc, + description: this.description, runFlag: this.runFlag, dependence: this.dependence, maxRetryTimes: this.maxRetryTimes, @@ -452,7 +452,7 @@ this.name = o.name this.taskInstancePriority = o.taskInstancePriority this.runFlag = o.runFlag || 'NORMAL' - this.desc = o.desc + this.description = o.description this.maxRetryTimes = o.maxRetryTimes this.retryInterval = o.retryInterval this.workerGroupId = o.workerGroupId diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/udp/udp.vue b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/udp/udp.vue index 2902a663d0..1bd48d8fb1 100644 --- a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/udp/udp.vue +++ b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/udp/udp.vue @@ -34,7 +34,7 @@
@@ -101,8 +101,8 @@ return { // dag name name: '', - // dag desc - desc: '', + // dag description + description: '', // Global custom parameters udpList: [], // Global custom parameters @@ -140,7 +140,7 @@ this.store.commit('dag/setName', _.cloneDeep(this.name)) this.store.commit('dag/setTimeout', _.cloneDeep(this.timeout)) this.store.commit('dag/setTenantId', _.cloneDeep(this.tenantId)) - this.store.commit('dag/setDesc', _.cloneDeep(this.desc)) + this.store.commit('dag/setDesc', _.cloneDeep(this.description)) this.store.commit('dag/setSyncDefine', this.syncDefine) }, /** @@ -201,7 +201,7 @@ this.udpList = dag.globalParams this.udpListCache = dag.globalParams this.name = dag.name - this.desc = dag.desc + this.description = dag.description this.syncDefine = dag.syncDefine this.timeout = dag.timeout || 0 this.checkedTimeout = this.timeout !== 0 diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/datasource/pages/list/_source/createDataSource.vue b/dolphinscheduler-ui/src/js/conf/home/pages/datasource/pages/list/_source/createDataSource.vue index 78fa8aa7ba..ec88a96f09 100644 --- a/dolphinscheduler-ui/src/js/conf/home/pages/datasource/pages/list/_source/createDataSource.vue +++ b/dolphinscheduler-ui/src/js/conf/home/pages/datasource/pages/list/_source/createDataSource.vue @@ -162,7 +162,7 @@ type: 'MYSQL', // name name: '', - // desc + // description note: '', // host host: '', diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/datasource/pages/list/_source/list.vue b/dolphinscheduler-ui/src/js/conf/home/pages/datasource/pages/list/_source/list.vue index d7cc5a4c44..a58b01a63f 100644 --- a/dolphinscheduler-ui/src/js/conf/home/pages/datasource/pages/list/_source/list.vue +++ b/dolphinscheduler-ui/src/js/conf/home/pages/datasource/pages/list/_source/list.vue @@ -64,7 +64,7 @@ - {{item.note}} + {{item.note}} - diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/definition/pages/list/_source/list.vue b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/definition/pages/list/_source/list.vue index 42b7e0eb95..91172cf744 100644 --- a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/definition/pages/list/_source/list.vue +++ b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/definition/pages/list/_source/list.vue @@ -69,7 +69,7 @@ - - {{item.desc}} + {{item.description}} - @@ -153,7 +153,7 @@ methods: { ...mapActions('dag', ['editProcessState', 'getStartCheck', 'getReceiver', 'deleteDefinition', 'batchDeleteDefinition','exportDefinition']), _rtPublishStatus (code) { - return _.filter(publishStatus, v => v.code === code)[0].desc + return _.filter(publishStatus, v => v.code === code)[0].description }, _treeView (item) { this.$router.push({ path: `/projects/definition/tree/${item.id}` }) diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/list/_source/createProject.vue b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/list/_source/createProject.vue index b10d9cbdab..b78a72d8a3 100644 --- a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/list/_source/createProject.vue +++ b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/list/_source/createProject.vue @@ -34,7 +34,7 @@