wen-hemin commented on code in PR #11670: URL: https://github.com/apache/dolphinscheduler/pull/11670#discussion_r966669954
########## dolphinscheduler-api/src/main/resources/i18n/messages.properties: ########## @@ -21,7 +21,7 @@ PROCESS_INSTANCE_EXECUTOR_TAG=process instance executor related operation RUN_PROCESS_INSTANCE_NOTES=run process instance BATCH_RUN_PROCESS_INSTANCE_NOTES=batch run process instance BATCH_EXECUTE_ACTION_TO_PROCESS_INSTANCE_NOTES=batch change execute state for process instance -START_NODE_LIST=start node list(node name) +START_NODE_LIST=start node list (node name) Review Comment: There should be no changes here ########## dolphinscheduler-api/src/main/resources/i18n/messages_en_US.properties: ########## @@ -20,7 +20,7 @@ PROCESS_INSTANCE_EXECUTOR_TAG=process instance executor related operation RUN_PROCESS_INSTANCE_NOTES=run process instance BATCH_RUN_PROCESS_INSTANCE_NOTES=batch run process instance(If any processDefinitionCode cannot be found, the failure information is returned and the status is set to failed. The successful task will run normally and will not stop) BATCH_EXECUTE_ACTION_TO_PROCESS_INSTANCE_NOTES=batch change state for muliple process instances(Will raise error with specific id when any it cannot be found, and will only show detail error message when some instances change state not as expected) -START_NODE_LIST=start node list(node name) +START_NODE_LIST=start node list (node name) Review Comment: There should be no changes here ########## dolphinscheduler-dao/src/main/resources/sql/upgrade/3.2.0_schema/mysql/dolphinscheduler_ddl.sql: ########## @@ -0,0 +1,118 @@ +/* + * 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. +*/ +SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY','')); + +-- uc_dolphin_T_t_ds_command_R_test_flag +drop PROCEDURE if EXISTS uc_dolphin_T_t_ds_command_R_test_flag; +delimiter d// +CREATE PROCEDURE uc_dolphin_T_t_ds_command_R_test_flag() +BEGIN + IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS + WHERE TABLE_NAME='t_ds_command' + AND TABLE_SCHEMA=(SELECT DATABASE()) + AND COLUMN_NAME ='modify_by') + THEN +ALTER TABLE t_ds_command ADD `test_flag` tinyint(4) DEFAULT null COMMENT 'test flag:0 normal, 1 test run'; +END IF; +END; + +d// + +delimiter ; +CALL uc_dolphin_T_t_ds_command_R_test_flag; +DROP PROCEDURE uc_dolphin_T_t_ds_command_R_test_flag; + +-- uc_dolphin_T_t_ds_error_command_R_test_flag +drop PROCEDURE if EXISTS uc_dolphin_T_t_ds_error_command_R_test_flag; +delimiter d// +CREATE PROCEDURE uc_dolphin_T_t_ds_error_command_R_test_flag() +BEGIN + IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS + WHERE TABLE_NAME='t_ds_error_command' + AND TABLE_SCHEMA=(SELECT DATABASE()) + AND COLUMN_NAME ='modify_by') + THEN +ALTER TABLE t_ds_error_command ADD `test_flag` tinyint(4) DEFAULT null COMMENT 'test flag:0 normal, 1 test run'; +END IF; +END; + +d// + +delimiter ; +CALL uc_dolphin_T_t_ds_error_command_R_test_flag; +DROP PROCEDURE uc_dolphin_T_t_ds_error_command_R_test_flag; + +-- uc_dolphin_T_t_ds_datasource_R_test_flag_bind_test_id +drop PROCEDURE if EXISTS uc_dolphin_T_t_ds_datasource_R_test_flag_bind_test_id; +delimiter d// +CREATE PROCEDURE uc_dolphin_T_t_ds_datasource_R_test_flag_bind_test_id() +BEGIN + IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS + WHERE TABLE_NAME='t_ds_datasource' + AND TABLE_SCHEMA=(SELECT DATABASE()) + AND COLUMN_NAME ='modify_by') + THEN +ALTER TABLE t_ds_datasource ADD `test_flag` tinyint(4) DEFAULT null COMMENT 'test flag:0 normal, 1 testDataSource', +ALTER TABLE t_ds_datasource ADD `bind_test_id` int(11) DEFAULT null COMMENT 'bind testDataSource id'; +END IF; +END; + +d// + +delimiter ; +CALL uc_dolphin_T_t_ds_datasource_R_test_flag_bind_test_id; +DROP PROCEDURE uc_dolphin_T_t_ds_datasource_R_test_flag_bind_test_id; + +-- uc_dolphin_T_t_ds_process_instance_R_test_flag +drop PROCEDURE if EXISTS uc_dolphin_T_t_ds_process_instance_R_test_flag; +delimiter d// +CREATE PROCEDURE uc_dolphin_T_t_ds_process_instance_R_test_flag() +BEGIN + IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS + WHERE TABLE_NAME='t_ds_process_instance' + AND TABLE_SCHEMA=(SELECT DATABASE()) + AND COLUMN_NAME ='modify_by') + THEN +ALTER TABLE t_ds_process_instance ADD `test_flag` tinyint(4) DEFAULT null COMMENT 'test flag:0 normal, 1 test run'; +END IF; +END; + +d// + +delimiter ; +CALL uc_dolphin_T_t_ds_process_instance_R_test_flag; +DROP PROCEDURE uc_dolphin_T_t_ds_process_instance_R_test_flag; + +-- uc_dolphin_T_t_ds_task_instance_R_test_flag +drop PROCEDURE if EXISTS uc_dolphin_T_t_ds_task_instance_R_test_flag; +delimiter d// +CREATE PROCEDURE uc_dolphin_T_t_ds_task_instance_R_test_flag() +BEGIN + IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS + WHERE TABLE_NAME='t_ds_task_instance' + AND TABLE_SCHEMA=(SELECT DATABASE()) + AND COLUMN_NAME ='modify_by') Review Comment: COLUMN_NAME is wrong ########## dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/runner/task/CommonTaskProcessor.java: ########## @@ -171,4 +177,27 @@ private void killRemoteTask() throws ExecuteException { nettyExecutorManager.executeDirectly(executionContext); } + + /** + * Check whether the test data source needs to be replaced + */ + public void checkAndReplaceTestDataSource(){ + if (taskInstance.getTestFlag() == Constants.TEST_FLAG_YES) { + try { + Map<String, Object> instanceParams = JSONUtils.parseObject(taskInstance.getTaskParams(), new TypeReference<Map<String, Object>>() { + }); + Integer onlineDataSourceId = (Integer) instanceParams.get("datasource"); + Integer testDataSourceId = processService.queryTestDataSourceId(onlineDataSourceId); + instanceParams.put("datasource", testDataSourceId); + taskInstance.setTaskParams(JSONUtils.toJsonString(instanceParams)); + if (null == testDataSourceId) { + logger.warn("task name :{}, test data source replacement failed", taskInstance.getName()); + } else { + logger.info("task name :{}, test data source replacement succeeded", taskInstance.getName()); + } + } catch (Exception e) { + logger.error(e.getMessage()); Review Comment: Does the exception need to be handled? ########## dolphinscheduler-dao/src/main/resources/sql/upgrade/3.2.0_schema/mysql/dolphinscheduler_ddl.sql: ########## @@ -0,0 +1,118 @@ +/* + * 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. +*/ +SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY','')); + +-- uc_dolphin_T_t_ds_command_R_test_flag +drop PROCEDURE if EXISTS uc_dolphin_T_t_ds_command_R_test_flag; +delimiter d// +CREATE PROCEDURE uc_dolphin_T_t_ds_command_R_test_flag() +BEGIN + IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS + WHERE TABLE_NAME='t_ds_command' + AND TABLE_SCHEMA=(SELECT DATABASE()) + AND COLUMN_NAME ='modify_by') + THEN +ALTER TABLE t_ds_command ADD `test_flag` tinyint(4) DEFAULT null COMMENT 'test flag:0 normal, 1 test run'; +END IF; +END; + +d// + +delimiter ; +CALL uc_dolphin_T_t_ds_command_R_test_flag; +DROP PROCEDURE uc_dolphin_T_t_ds_command_R_test_flag; + +-- uc_dolphin_T_t_ds_error_command_R_test_flag +drop PROCEDURE if EXISTS uc_dolphin_T_t_ds_error_command_R_test_flag; +delimiter d// +CREATE PROCEDURE uc_dolphin_T_t_ds_error_command_R_test_flag() +BEGIN + IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS + WHERE TABLE_NAME='t_ds_error_command' + AND TABLE_SCHEMA=(SELECT DATABASE()) + AND COLUMN_NAME ='modify_by') + THEN +ALTER TABLE t_ds_error_command ADD `test_flag` tinyint(4) DEFAULT null COMMENT 'test flag:0 normal, 1 test run'; +END IF; +END; + +d// + +delimiter ; +CALL uc_dolphin_T_t_ds_error_command_R_test_flag; +DROP PROCEDURE uc_dolphin_T_t_ds_error_command_R_test_flag; + +-- uc_dolphin_T_t_ds_datasource_R_test_flag_bind_test_id +drop PROCEDURE if EXISTS uc_dolphin_T_t_ds_datasource_R_test_flag_bind_test_id; +delimiter d// +CREATE PROCEDURE uc_dolphin_T_t_ds_datasource_R_test_flag_bind_test_id() +BEGIN + IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS + WHERE TABLE_NAME='t_ds_datasource' + AND TABLE_SCHEMA=(SELECT DATABASE()) + AND COLUMN_NAME ='modify_by') + THEN +ALTER TABLE t_ds_datasource ADD `test_flag` tinyint(4) DEFAULT null COMMENT 'test flag:0 normal, 1 testDataSource', +ALTER TABLE t_ds_datasource ADD `bind_test_id` int(11) DEFAULT null COMMENT 'bind testDataSource id'; +END IF; +END; + +d// + +delimiter ; +CALL uc_dolphin_T_t_ds_datasource_R_test_flag_bind_test_id; +DROP PROCEDURE uc_dolphin_T_t_ds_datasource_R_test_flag_bind_test_id; + +-- uc_dolphin_T_t_ds_process_instance_R_test_flag +drop PROCEDURE if EXISTS uc_dolphin_T_t_ds_process_instance_R_test_flag; +delimiter d// +CREATE PROCEDURE uc_dolphin_T_t_ds_process_instance_R_test_flag() +BEGIN + IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS + WHERE TABLE_NAME='t_ds_process_instance' + AND TABLE_SCHEMA=(SELECT DATABASE()) + AND COLUMN_NAME ='modify_by') Review Comment: COLUMN_NAME is wrong ########## dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-api/src/main/java/org/apache/dolphinscheduler/plugin/datasource/api/datasource/BaseDataSourceParamDTO.java: ########## @@ -117,6 +121,20 @@ public void setOther(Map<String, String> other) { this.other = other; } + public int getTestFlag() { + return testFlag; + } + + public void setTestFlag(int testFlag) { + this.testFlag = testFlag; + } + public Integer getBindTestId() { Review Comment: add blank line -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
