break60 4 years ago
parent
commit
1e2105bc9b
  1. 4
      dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/TenantController.java
  2. 10
      dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/enums/Status.java
  3. 8
      dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TenantServiceImpl.java
  4. 2
      dolphinscheduler-api/src/main/resources/i18n/messages.properties
  5. 2
      dolphinscheduler-api/src/main/resources/i18n/messages_en_US.properties
  6. 2
      dolphinscheduler-api/src/main/resources/i18n/messages_zh_CN.properties
  7. 2
      dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/TenantControllerTest.java
  8. 4
      dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TenantServiceTest.java
  9. 8
      dolphinscheduler-ui/src/js/conf/home/pages/security/pages/tenement/_source/createTenement.vue
  10. 2
      dolphinscheduler-ui/src/js/conf/home/pages/security/pages/tenement/_source/list.vue
  11. 11
      dolphinscheduler-ui/src/js/module/i18n/locale/en_US.js
  12. 10
      dolphinscheduler-ui/src/js/module/i18n/locale/zh_CN.js

4
dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/TenantController.java

@ -22,7 +22,7 @@ import static org.apache.dolphinscheduler.api.enums.Status.DELETE_TENANT_BY_ID_E
import static org.apache.dolphinscheduler.api.enums.Status.QUERY_TENANT_LIST_ERROR; import static org.apache.dolphinscheduler.api.enums.Status.QUERY_TENANT_LIST_ERROR;
import static org.apache.dolphinscheduler.api.enums.Status.QUERY_TENANT_LIST_PAGING_ERROR; import static org.apache.dolphinscheduler.api.enums.Status.QUERY_TENANT_LIST_PAGING_ERROR;
import static org.apache.dolphinscheduler.api.enums.Status.UPDATE_TENANT_ERROR; import static org.apache.dolphinscheduler.api.enums.Status.UPDATE_TENANT_ERROR;
import static org.apache.dolphinscheduler.api.enums.Status.VERIFY_TENANT_CODE_ERROR; import static org.apache.dolphinscheduler.api.enums.Status.VERIFY_OS_TENANT_CODE_ERROR;
import org.apache.dolphinscheduler.api.enums.Status; import org.apache.dolphinscheduler.api.enums.Status;
import org.apache.dolphinscheduler.api.exceptions.ApiException; import org.apache.dolphinscheduler.api.exceptions.ApiException;
@ -220,7 +220,7 @@ public class TenantController extends BaseController {
}) })
@GetMapping(value = "/verify-tenant-code") @GetMapping(value = "/verify-tenant-code")
@ResponseStatus(HttpStatus.OK) @ResponseStatus(HttpStatus.OK)
@ApiException(VERIFY_TENANT_CODE_ERROR) @ApiException(VERIFY_OS_TENANT_CODE_ERROR)
public Result verifyTenantCode(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser, public Result verifyTenantCode(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
@RequestParam(value = "tenantCode") String tenantCode) { @RequestParam(value = "tenantCode") String tenantCode) {
logger.info("login user {}, verfiy tenant code: {}", logger.info("login user {}, verfiy tenant code: {}",

10
dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/enums/Status.java

@ -36,7 +36,7 @@ public enum Status {
USER_NAME_NULL(10004, "user name is null", "用户名不能为空"), USER_NAME_NULL(10004, "user name is null", "用户名不能为空"),
HDFS_OPERATION_ERROR(10006, "hdfs operation error", "hdfs操作错误"), HDFS_OPERATION_ERROR(10006, "hdfs operation error", "hdfs操作错误"),
TASK_INSTANCE_NOT_FOUND(10008, "task instance not found", "任务实例不存在"), TASK_INSTANCE_NOT_FOUND(10008, "task instance not found", "任务实例不存在"),
TENANT_CODE_EXIST(10009, "tenant code {0} already exists", "租户编码[{0}]已存在"), OS_TENANT_CODE_EXIST(10009, "os tenant code {0} already exists", "操作系统租户[{0}]已存在"),
USER_NOT_EXIST(10010, "user {0} not exists", "用户[{0}]不存在"), USER_NOT_EXIST(10010, "user {0} not exists", "用户[{0}]不存在"),
ALERT_GROUP_NOT_EXIST(10011, "alarm group not found", "告警组不存在"), ALERT_GROUP_NOT_EXIST(10011, "alarm group not found", "告警组不存在"),
ALERT_GROUP_EXIST(10012, "alarm group already exists", "告警组名称已存在"), ALERT_GROUP_EXIST(10012, "alarm group already exists", "告警组名称已存在"),
@ -116,7 +116,7 @@ public enum Status {
QUERY_TENANT_LIST_ERROR(10086, "query tenant list error", "查询租户列表错误"), QUERY_TENANT_LIST_ERROR(10086, "query tenant list error", "查询租户列表错误"),
UPDATE_TENANT_ERROR(10087, "update tenant error", "更新租户错误"), UPDATE_TENANT_ERROR(10087, "update tenant error", "更新租户错误"),
DELETE_TENANT_BY_ID_ERROR(10088, "delete tenant by id error", "删除租户错误"), DELETE_TENANT_BY_ID_ERROR(10088, "delete tenant by id error", "删除租户错误"),
VERIFY_TENANT_CODE_ERROR(10089, "verify tenant code error", "租户编码验证错误"), VERIFY_OS_TENANT_CODE_ERROR(10089, "verify os tenant code error", "操作系统租户验证错误"),
CREATE_USER_ERROR(10090, "create user error", "创建用户错误"), CREATE_USER_ERROR(10090, "create user error", "创建用户错误"),
QUERY_USER_LIST_PAGING_ERROR(10091, "query user list paging error", "分页查询用户列表错误"), QUERY_USER_LIST_PAGING_ERROR(10091, "query user list paging error", "分页查询用户列表错误"),
UPDATE_USER_ERROR(10092, "update user error", "更新用户错误"), UPDATE_USER_ERROR(10092, "update user error", "更新用户错误"),
@ -151,7 +151,7 @@ public enum Status {
ENCAPSULATION_PROCESS_INSTANCE_GANTT_STRUCTURE_ERROR(10121, "encapsulation process instance gantt structure error", "查询工作流实例甘特图数据错误"), ENCAPSULATION_PROCESS_INSTANCE_GANTT_STRUCTURE_ERROR(10121, "encapsulation process instance gantt structure error", "查询工作流实例甘特图数据错误"),
QUERY_PROCESS_DEFINITION_LIST_PAGING_ERROR(10122, "query process definition list paging error", "分页查询工作流定义列表错误"), QUERY_PROCESS_DEFINITION_LIST_PAGING_ERROR(10122, "query process definition list paging error", "分页查询工作流定义列表错误"),
SIGN_OUT_ERROR(10123, "sign out error", "退出错误"), SIGN_OUT_ERROR(10123, "sign out error", "退出错误"),
TENANT_CODE_HAS_ALREADY_EXISTS(10124, "tenant code has already exists", "租户编码已存在"), OS_TENANT_CODE_HAS_ALREADY_EXISTS(10124, "os tenant code has already exists", "操作系统租户已存在"),
IP_IS_EMPTY(10125, "ip is empty", "IP地址不能为空"), IP_IS_EMPTY(10125, "ip is empty", "IP地址不能为空"),
SCHEDULE_CRON_REALEASE_NEED_NOT_CHANGE(10126, "schedule release is already {0}", "调度配置上线错误[{0}]"), SCHEDULE_CRON_REALEASE_NEED_NOT_CHANGE(10126, "schedule release is already {0}", "调度配置上线错误[{0}]"),
CREATE_QUEUE_ERROR(10127, "create queue error", "创建队列错误"), CREATE_QUEUE_ERROR(10127, "create queue error", "创建队列错误"),
@ -195,7 +195,7 @@ public enum Status {
QUERY_WORKFLOW_LINEAGE_ERROR(10161, "query workflow lineage 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", "查询授权的和用户创建的项目错误"), 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_ID_FAIL(10163,"delete process definition by id fail, for there are {0} process instances in executing using it", "删除工作流定义失败,有[{0}]个运行中的工作流实例正在使用"),
CHECK_TENANT_CODE_ERROR(10164, "Please enter the English tenant code", "请输入英文租户编码"), CHECK_OS_TENANT_CODE_ERROR(10164, "Please enter the English os tenant code", "请输入英文操作系统租户"),
UDF_FUNCTION_NOT_EXIST(20001, "UDF function not found", "UDF函数不存在"), UDF_FUNCTION_NOT_EXIST(20001, "UDF function not found", "UDF函数不存在"),
UDF_FUNCTION_EXISTS(20002, "UDF function already exists", "UDF函数已存在"), UDF_FUNCTION_EXISTS(20002, "UDF function already exists", "UDF函数已存在"),
@ -296,4 +296,4 @@ public enum Status {
return this.enMsg; return this.enMsg;
} }
} }
} }

8
dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TenantServiceImpl.java

@ -94,7 +94,7 @@ public class TenantServiceImpl extends BaseService implements TenantService {
} }
if (RegexUtils.isNumeric(tenantCode)) { if (RegexUtils.isNumeric(tenantCode)) {
putMsg(result, Status.CHECK_TENANT_CODE_ERROR); putMsg(result, Status.CHECK_OS_TENANT_CODE_ERROR);
return result; return result;
} }
@ -107,7 +107,7 @@ public class TenantServiceImpl extends BaseService implements TenantService {
Date now = new Date(); Date now = new Date();
if (!tenantCode.matches("^[0-9a-zA-Z_.-]{1,}$") || tenantCode.startsWith("-") || tenantCode.startsWith(".")) { if (!tenantCode.matches("^[0-9a-zA-Z_.-]{1,}$") || tenantCode.startsWith("-") || tenantCode.startsWith(".")) {
putMsg(result, Status.VERIFY_TENANT_CODE_ERROR); putMsg(result, Status.VERIFY_OS_TENANT_CODE_ERROR);
return result; return result;
} }
tenant.setTenantCode(tenantCode); tenant.setTenantCode(tenantCode);
@ -200,7 +200,7 @@ public class TenantServiceImpl extends BaseService implements TenantService {
HadoopUtils.getInstance().mkdir(udfsPath); HadoopUtils.getInstance().mkdir(udfsPath);
} }
} else { } else {
putMsg(result, Status.TENANT_CODE_HAS_ALREADY_EXISTS); putMsg(result, Status.OS_TENANT_CODE_HAS_ALREADY_EXISTS);
return result; return result;
} }
} }
@ -329,7 +329,7 @@ public class TenantServiceImpl extends BaseService implements TenantService {
public Result verifyTenantCode(String tenantCode) { public Result verifyTenantCode(String tenantCode) {
Result result = new Result(); Result result = new Result();
if (checkTenantExists(tenantCode)) { if (checkTenantExists(tenantCode)) {
putMsg(result, Status.TENANT_CODE_EXIST, tenantCode); putMsg(result, Status.OS_TENANT_CODE_EXIST, tenantCode);
} else { } else {
putMsg(result, Status.SUCCESS); putMsg(result, Status.SUCCESS);
} }

2
dolphinscheduler-api/src/main/resources/i18n/messages.properties

@ -116,7 +116,7 @@ UNAUTHORIZED_UDF_FUNC_NOTES=unauthorized udf func
VERIFY_QUEUE_NOTES=verify queue VERIFY_QUEUE_NOTES=verify queue
TENANT_TAG=tenant related operation TENANT_TAG=tenant related operation
CREATE_TENANT_NOTES=create tenant CREATE_TENANT_NOTES=create tenant
TENANT_CODE=tenant code TENANT_CODE=os tenant code
QUEUE_NAME=queue name QUEUE_NAME=queue name
PASSWORD=password PASSWORD=password
DATA_SOURCE_OTHER=jdbc connection params, format:{"key1":"value1",...} DATA_SOURCE_OTHER=jdbc connection params, format:{"key1":"value1",...}

2
dolphinscheduler-api/src/main/resources/i18n/messages_en_US.properties

@ -116,7 +116,7 @@ UNAUTHORIZED_UDF_FUNC_NOTES=unauthorized udf func
VERIFY_QUEUE_NOTES=verify queue VERIFY_QUEUE_NOTES=verify queue
TENANT_TAG=tenant related operation TENANT_TAG=tenant related operation
CREATE_TENANT_NOTES=create tenant CREATE_TENANT_NOTES=create tenant
TENANT_CODE=tenant code TENANT_CODE=os tenant code
QUEUE_NAME=queue name QUEUE_NAME=queue name
PASSWORD=password PASSWORD=password
DATA_SOURCE_OTHER=jdbc connection params, format:{"key1":"value1",...} DATA_SOURCE_OTHER=jdbc connection params, format:{"key1":"value1",...}

2
dolphinscheduler-api/src/main/resources/i18n/messages_zh_CN.properties

@ -115,7 +115,7 @@ UNAUTHORIZED_UDF_FUNC_NOTES=取消udf函数授权
VERIFY_QUEUE_NOTES=验证队列 VERIFY_QUEUE_NOTES=验证队列
TENANT_TAG=租户相关操作 TENANT_TAG=租户相关操作
CREATE_TENANT_NOTES=创建租户 CREATE_TENANT_NOTES=创建租户
TENANT_CODE=租户编码 TENANT_CODE=操作系统租户
QUEUE_NAME=队列名 QUEUE_NAME=队列名
PASSWORD=密码 PASSWORD=密码
DATA_SOURCE_OTHER=jdbc连接参数,格式为:{"key1":"value1",...} DATA_SOURCE_OTHER=jdbc连接参数,格式为:{"key1":"value1",...}

2
dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/TenantControllerTest.java

@ -131,7 +131,7 @@ public class TenantControllerTest extends AbstractControllerTest{
.andReturn(); .andReturn();
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class); Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
Assert.assertEquals(Status.TENANT_CODE_EXIST.getCode(), result.getCode().intValue()); Assert.assertEquals(Status.OS_TENANT_CODE_EXIST.getCode(), result.getCode().intValue());
logger.info(mvcResult.getResponse().getContentAsString()); logger.info(mvcResult.getResponse().getContentAsString());
} }

4
dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TenantServiceTest.java

@ -83,7 +83,7 @@ public class TenantServiceTest {
Map<String, Object> result = Map<String, Object> result =
tenantService.createTenant(getLoginUser(), "%!1111", 1, "TenantServiceTest"); tenantService.createTenant(getLoginUser(), "%!1111", 1, "TenantServiceTest");
logger.info(result.toString()); logger.info(result.toString());
Assert.assertEquals(Status.VERIFY_TENANT_CODE_ERROR, result.get(Constants.STATUS)); Assert.assertEquals(Status.VERIFY_OS_TENANT_CODE_ERROR, result.get(Constants.STATUS));
//check exist //check exist
result = tenantService.createTenant(loginUser, tenantCode, 1, "TenantServiceTest"); result = tenantService.createTenant(loginUser, tenantCode, 1, "TenantServiceTest");
@ -193,7 +193,7 @@ public class TenantServiceTest {
result = tenantService.verifyTenantCode(getTenant().getTenantCode()); result = tenantService.verifyTenantCode(getTenant().getTenantCode());
String resultString; String resultString;
if (Locale.SIMPLIFIED_CHINESE.getLanguage().equals(LocaleContextHolder.getLocale().getLanguage())) { if (Locale.SIMPLIFIED_CHINESE.getLanguage().equals(LocaleContextHolder.getLocale().getLanguage())) {
resultString = "租户编码[TenantServiceTest]已存在"; resultString = "操作系统租户[TenantServiceTest]已存在";
} else { } else {
resultString = "tenant code TenantServiceTest already exists"; resultString = "tenant code TenantServiceTest already exists";
} }

8
dolphinscheduler-ui/src/js/conf/home/pages/security/pages/tenement/_source/createTenement.vue

@ -24,7 +24,7 @@
<template slot="content"> <template slot="content">
<div class="create-tenement-model"> <div class="create-tenement-model">
<m-list-box-f> <m-list-box-f>
<template slot="name"><strong>*</strong>{{$t('Tenant Code')}}</template> <template slot="name"><strong>*</strong>{{$t('OS Tenant Code')}}</template>
<template slot="content"> <template slot="content">
<el-input <el-input
type="input" type="input"
@ -32,7 +32,7 @@
v-model="tenantCode" v-model="tenantCode"
maxlength="60" maxlength="60"
size="small" size="small"
:placeholder="$t('Please enter tenant code')"> :placeholder="$t('Please enter os tenant code')">
</el-input> </el-input>
</template> </template>
</m-list-box-f> </m-list-box-f>
@ -122,11 +122,11 @@
_verification () { _verification () {
let isEn = /^[0-9a-zA-Z_.-]{1,}$/ let isEn = /^[0-9a-zA-Z_.-]{1,}$/
if (!this.tenantCode.replace(/\s*/g, '')) { if (!this.tenantCode.replace(/\s*/g, '')) {
this.$message.warning(`${i18n.$t('Please enter the tenant code in English')}`) this.$message.warning(`${i18n.$t('Please enter the os tenant code in English')}`)
return false return false
} }
if (!isEn.test(this.tenantCode) || _.startsWith(this.tenantCode, '_', 0) || _.startsWith(this.tenantCode, '.', 0)) { if (!isEn.test(this.tenantCode) || _.startsWith(this.tenantCode, '_', 0) || _.startsWith(this.tenantCode, '.', 0)) {
this.$message.warning(`${i18n.$t('Please enter tenant code in English')}`) this.$message.warning(`${i18n.$t('Please enter os tenant code in English')}`)
return false return false
} }
return true return true

2
dolphinscheduler-ui/src/js/conf/home/pages/security/pages/tenement/_source/list.vue

@ -19,7 +19,7 @@
<div class="table-box"> <div class="table-box">
<el-table :data="list" size="mini" style="width: 100%"> <el-table :data="list" size="mini" style="width: 100%">
<el-table-column type="index" :label="$t('#')" width="50"></el-table-column> <el-table-column type="index" :label="$t('#')" width="50"></el-table-column>
<el-table-column prop="tenantCode" :label="$t('Tenant Code')" min-width="100"></el-table-column> <el-table-column prop="tenantCode" :label="$t('OS Tenant Code')" min-width="100"></el-table-column>
<el-table-column :label="$t('Description')" min-width="100"> <el-table-column :label="$t('Description')" min-width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{scope.row.description | filterNull}}</span> <span>{{scope.row.description | filterNull}}</span>

11
dolphinscheduler-ui/src/js/module/i18n/locale/en_US.js

@ -182,15 +182,16 @@ export default {
memoryUsage: 'memoryUsage', memoryUsage: 'memoryUsage',
'Last heartbeat time': 'Last heartbeat time', 'Last heartbeat time': 'Last heartbeat time',
'Edit Tenant': 'Edit Tenant', 'Edit Tenant': 'Edit Tenant',
'Tenant Code': 'Tenant Code', 'OS Tenant Code': 'OS Tenant Code',
Queue: 'Yarn Queue', Queue: 'Yarn Queue',
'Tenant Name': 'Tenant Name', 'Tenant Name': 'Tenant Name',
'Please select a queue': 'default is tenant association queue', 'Please select a queue': 'default is tenant association queue',
'Please enter the tenant code in English': 'Please enter the tenant code in English', 'Please enter the os tenant code in English': 'Please enter the os tenant code in English',
'Please enter tenant code in English': 'Please enter tenant code in English', 'Please enter os tenant code in English': 'Please enter os tenant code in English',
'Please enter tenant code': 'Please enter tenant code', 'Please enter os tenant code': 'Please enter os tenant code',
'Please enter tenant Name': 'Please enter tenant Name', 'Please enter tenant Name': 'Please enter tenant Name',
'The tenant code. Only letters or a combination of letters and numbers are allowed': 'The tenant code. Only letters or a combination of letters and numbers are allowed', 'The os tenant code. Only letters or a combination of letters and numbers are allowed': 'The os tenant code. Only letters or a combination of letters and numbers are allowed',
'The os tenant code cannot be all numbers': 'The os tenant code cannot be all numbers',
'Edit User': 'Edit User', 'Edit User': 'Edit User',
Tenant: 'Tenant', Tenant: 'Tenant',
Email: 'Email', Email: 'Email',

10
dolphinscheduler-ui/src/js/module/i18n/locale/zh_CN.js

@ -182,15 +182,15 @@ export default {
memoryUsage: 'memoryUsage', memoryUsage: 'memoryUsage',
'Last heartbeat time': '最后心跳时间', 'Last heartbeat time': '最后心跳时间',
'Edit Tenant': '编辑租户', 'Edit Tenant': '编辑租户',
'Tenant Code': '租户编码', 'OS Tenant Code': '操作系统租户',
'Tenant Name': '租户名称', 'Tenant Name': '租户名称',
Queue: '队列', Queue: '队列',
'Please select a queue': '默认为租户关联队列', 'Please select a queue': '默认为租户关联队列',
'Please enter the tenant code in English': '请输入租户编码只允许英文', 'Please enter the os tenant code in English': '请输入操作系统租户只允许英文',
'Please enter tenant code in English': '请输入英文租户编码', 'Please enter os tenant code in English': '请输入英文操作系统租户',
'Please enter tenant code': '请输入租户编码', 'Please enter os tenant code': '请输入操作系统租户',
'Please enter tenant Name': '请输入租户名称', 'Please enter tenant Name': '请输入租户名称',
'The tenant code. Only letters or a combination of letters and numbers are allowed': '租户编码只允许字母或字母与数字组合', 'The os tenant code. Only letters or a combination of letters and numbers are allowed': '操作系统租户只允许字母或字母与数字组合',
'Edit User': '编辑用户', 'Edit User': '编辑用户',
Tenant: '租户', Tenant: '租户',
Email: '邮件', Email: '邮件',

Loading…
Cancel
Save