This is an automated email from the ASF dual-hosted git repository.

kerwin pushed a commit to branch 3.1.7-prepare
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git


The following commit(s) were added to refs/heads/3.1.7-prepare by this push:
     new 2c87e31274 cherry-pick fix: Save task seatunnel error #14129
2c87e31274 is described below

commit 2c87e312740c5ce627c062fefcb5e498c25b361e
Author: Jay Chung <[email protected]>
AuthorDate: Fri May 19 10:47:16 2023 +0800

    cherry-pick fix: Save task seatunnel error #14129
---
 docs/docs/en/guide/task/seatunnel.md               |  2 +-
 docs/docs/zh/guide/task/seatunnel.md               |  2 +-
 .../plugin/task/seatunnel/Constants.java           |  4 +-
 .../plugin/task/seatunnel/DeployModeEnum.java      | 11 +--
 .../plugin/task/seatunnel/EngineEnum.java          | 40 -----------
 .../plugin/task/seatunnel/SeatunnelParameters.java | 51 +++-----------
 .../plugin/task/seatunnel/SeatunnelTask.java       |  4 +-
 .../task/seatunnel/SeatunnelTaskChannel.java       | 25 ++++---
 .../seatunnel/flink/SeatunnelFlinkParameters.java  | 33 +++------
 .../seatunnel/self/SeatunnelEngineParameters.java  | 25 +++----
 .../seatunnel/spark/SeatunnelSparkParameters.java  | 41 +++---------
 dolphinscheduler-ui/src/locales/en_US/project.ts   |  2 +
 dolphinscheduler-ui/src/locales/zh_CN/project.ts   |  2 +
 .../task/components/node/fields/use-sea-tunnel.ts  | 78 ++++++++++++++--------
 .../projects/task/components/node/format-data.ts   | 26 ++++----
 .../task/components/node/tasks/use-sea-tunnel.ts   | 44 ++++++------
 .../views/projects/task/components/node/types.ts   |  1 +
 17 files changed, 162 insertions(+), 229 deletions(-)

diff --git a/docs/docs/en/guide/task/seatunnel.md 
b/docs/docs/en/guide/task/seatunnel.md
index 4a3f1a6a4d..8d8e02240d 100644
--- a/docs/docs/en/guide/task/seatunnel.md
+++ b/docs/docs/en/guide/task/seatunnel.md
@@ -16,7 +16,7 @@ Click [here](https://seatunnel.apache.org/) for more 
information about `Apache S
 [//]: # (- Please refer to [DolphinScheduler Task Parameters 
Appendix]&#40;appendix.md#default-task-parameters&#41; `Default Task 
Parameters` section for default parameters.)
 
 - Please refer to [DolphinScheduler Task Parameters Appendix](appendix.md) 
`Default Task Parameters` section for default parameters.
-- Engine: Supports FLINK, SPARK AND SEATUNNEL_ENGINE
+- Startup script: Select script name to start the task, including 
`seatunnel.sh`, `start-seatunnel-flink-13-connector-v2.sh`, 
`start-seatunnel-flink-15-connector-v2.sh`, 
`start-seatunnel-flink-connector-v2.sh`, `start-seatunnel-flink.sh`, 
`start-seatunnel-spark-2-connector-v2.sh`, 
`start-seatunnel-spark-3-connector-v2.sh`, 
`start-seatunnel-spark-connector-v2.sh`, `start-seatunnel-spark.sh`
 - FLINK
 - Run model: supports `run` and `run-application` modes
 - Option parameters: used to add the parameters of the Flink engine, such as 
`-m yarn-cluster -ynm seatunnel`
diff --git a/docs/docs/zh/guide/task/seatunnel.md 
b/docs/docs/zh/guide/task/seatunnel.md
index c041e4b166..872279ddbc 100644
--- a/docs/docs/zh/guide/task/seatunnel.md
+++ b/docs/docs/zh/guide/task/seatunnel.md
@@ -16,7 +16,7 @@
 [//]: # (- 
默认参数说明请参考[DolphinScheduler任务参数附录]&#40;appendix.md#默认任务参数&#41;`默认任务参数`一栏。)
 
 - 默认参数说明请参考[DolphinScheduler任务参数附录](appendix.md)`默认任务参数`一栏。
-- 引擎:支持 FLINK 、 SPARK 和 SEATUNNEL_ENGINE
+- 启动脚本:选择你想要运行任务的启动脚本,包括 `seatunnel.sh`, 
`start-seatunnel-flink-13-connector-v2.sh`, 
`start-seatunnel-flink-15-connector-v2.sh`, 
`start-seatunnel-flink-connector-v2.sh`, `start-seatunnel-flink.sh`, 
`start-seatunnel-spark-2-connector-v2.sh`, 
`start-seatunnel-spark-3-connector-v2.sh`, 
`start-seatunnel-spark-connector-v2.sh`, `start-seatunnel-spark.sh`
 - FLINK
 - 运行模型:支持 `run` 和 `run-application` 两种模式
 - 选项参数:用于添加 Flink 引擎本身参数,例如 `-m yarn-cluster -ynm seatunnel`
diff --git 
a/dolphinscheduler-task-plugin/dolphinscheduler-task-seatunnel/src/main/java/org/apache/dolphinscheduler/plugin/task/seatunnel/Constants.java
 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-seatunnel/src/main/java/org/apache/dolphinscheduler/plugin/task/seatunnel/Constants.java
index 1ad25cc2cf..fb1c52ee18 100644
--- 
a/dolphinscheduler-task-plugin/dolphinscheduler-task-seatunnel/src/main/java/org/apache/dolphinscheduler/plugin/task/seatunnel/Constants.java
+++ 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-seatunnel/src/main/java/org/apache/dolphinscheduler/plugin/task/seatunnel/Constants.java
@@ -26,6 +26,8 @@ public class Constants {
     public static final String CONFIG_OPTIONS = "--config";
     public static final String DEPLOY_MODE_OPTIONS = "--deploy-mode";
     public static final String MASTER_OPTIONS = "--master";
-    public static final String QUEUE_OPTIONS = "--queue";
+    public static final String STARTUP_SCRIPT_SPARK = "spark";
+    public static final String STARTUP_SCRIPT_FLINK = "flink";
+    public static final String STARTUP_SCRIPT_SEATUNNEL = "seatunnel";
 
 }
diff --git 
a/dolphinscheduler-task-plugin/dolphinscheduler-task-seatunnel/src/main/java/org/apache/dolphinscheduler/plugin/task/seatunnel/DeployModeEnum.java
 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-seatunnel/src/main/java/org/apache/dolphinscheduler/plugin/task/seatunnel/DeployModeEnum.java
index a94fd7e480..65f7b0cd3f 100644
--- 
a/dolphinscheduler-task-plugin/dolphinscheduler-task-seatunnel/src/main/java/org/apache/dolphinscheduler/plugin/task/seatunnel/DeployModeEnum.java
+++ 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-seatunnel/src/main/java/org/apache/dolphinscheduler/plugin/task/seatunnel/DeployModeEnum.java
@@ -17,18 +17,19 @@
 
 package org.apache.dolphinscheduler.plugin.task.seatunnel;
 
+import lombok.Getter;
+
+@Getter
 public enum DeployModeEnum {
+
+    // TODO: use upper case, have to change both frontend and backend code, 
currently frontend use lower case
     cluster("cluster"),
     client("client"),
     local("local");
 
-    private String command;
+    private final String command;
 
     DeployModeEnum(String command) {
         this.command = command;
     }
-
-    public String getCommand() {
-        return command;
-    }
 }
diff --git 
a/dolphinscheduler-task-plugin/dolphinscheduler-task-seatunnel/src/main/java/org/apache/dolphinscheduler/plugin/task/seatunnel/EngineEnum.java
 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-seatunnel/src/main/java/org/apache/dolphinscheduler/plugin/task/seatunnel/EngineEnum.java
deleted file mode 100644
index 3634436191..0000000000
--- 
a/dolphinscheduler-task-plugin/dolphinscheduler-task-seatunnel/src/main/java/org/apache/dolphinscheduler/plugin/task/seatunnel/EngineEnum.java
+++ /dev/null
@@ -1,40 +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.plugin.task.seatunnel;
-
-public enum EngineEnum {
-
-    FLINK("${SEATUNNEL_HOME}/bin/start-seatunnel-flink.sh"),
-    SPARK("${SEATUNNEL_HOME}/bin/start-seatunnel-spark.sh"),
-
-    FLINK_V2("${SEATUNNEL_HOME}/bin/start-seatunnel-flink-connector-v2.sh"),
-
-    SPARK_V2("${SEATUNNEL_HOME}/bin/start-seatunnel-spark-connector-v2.sh"),
-
-    SEATUNNEL_ENGINE("${SEATUNNEL_HOME}/bin/seatunnel.sh");
-
-    private String command;
-
-    EngineEnum(String command) {
-        this.command = command;
-    }
-
-    public String getCommand() {
-        return command;
-    }
-}
diff --git 
a/dolphinscheduler-task-plugin/dolphinscheduler-task-seatunnel/src/main/java/org/apache/dolphinscheduler/plugin/task/seatunnel/SeatunnelParameters.java
 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-seatunnel/src/main/java/org/apache/dolphinscheduler/plugin/task/seatunnel/SeatunnelParameters.java
index 38591ba8a4..9d2a43dfe8 100644
--- 
a/dolphinscheduler-task-plugin/dolphinscheduler-task-seatunnel/src/main/java/org/apache/dolphinscheduler/plugin/task/seatunnel/SeatunnelParameters.java
+++ 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-seatunnel/src/main/java/org/apache/dolphinscheduler/plugin/task/seatunnel/SeatunnelParameters.java
@@ -19,8 +19,6 @@ package org.apache.dolphinscheduler.plugin.task.seatunnel;
 
 import org.apache.dolphinscheduler.plugin.task.api.model.ResourceInfo;
 import 
org.apache.dolphinscheduler.plugin.task.api.parameters.AbstractParameters;
-import 
org.apache.dolphinscheduler.plugin.task.seatunnel.flink.SeatunnelFlinkParameters;
-import 
org.apache.dolphinscheduler.plugin.task.seatunnel.spark.SeatunnelSparkParameters;
 
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.BooleanUtils;
@@ -29,17 +27,16 @@ import org.apache.commons.lang3.StringUtils;
 import java.util.List;
 import java.util.Objects;
 
-import com.fasterxml.jackson.annotation.JsonSubTypes;
-import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
 
-@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, visible = true, property = "engine")
-@JsonSubTypes({
-    @JsonSubTypes.Type(value = SeatunnelFlinkParameters.class, name = "FLINK"),
-    @JsonSubTypes.Type(value = SeatunnelSparkParameters.class, name = "SPARK")
-})
+@Getter
+@Setter
+@NoArgsConstructor
 public class SeatunnelParameters extends AbstractParameters {
 
-    private EngineEnum engine;
+    private String startupScript;
 
     private Boolean useCustom;
 
@@ -50,41 +47,9 @@ public class SeatunnelParameters extends AbstractParameters {
      */
     private List<ResourceInfo> resourceList;
 
-    public EngineEnum getEngine() {
-        return engine;
-    }
-
-    public void setEngine(EngineEnum engine) {
-        this.engine = engine;
-    }
-
-    public Boolean getUseCustom() {
-        return useCustom;
-    }
-
-    public void setUseCustom(Boolean useCustom) {
-        this.useCustom = useCustom;
-    }
-
-    public String getRawScript() {
-        return rawScript;
-    }
-
-    public void setRawScript(String rawScript) {
-        this.rawScript = rawScript;
-    }
-
-    public List<ResourceInfo> getResourceList() {
-        return resourceList;
-    }
-
-    public void setResourceList(List<ResourceInfo> resourceList) {
-        this.resourceList = resourceList;
-    }
-
     @Override
     public boolean checkParameters() {
-        return Objects.nonNull(engine)
+        return Objects.nonNull(startupScript)
                 && ((BooleanUtils.isTrue(useCustom) && 
StringUtils.isNotBlank(rawScript))
                 || (BooleanUtils.isFalse(useCustom) && 
CollectionUtils.isNotEmpty(resourceList) && resourceList.size() == 1));
     }
diff --git 
a/dolphinscheduler-task-plugin/dolphinscheduler-task-seatunnel/src/main/java/org/apache/dolphinscheduler/plugin/task/seatunnel/SeatunnelTask.java
 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-seatunnel/src/main/java/org/apache/dolphinscheduler/plugin/task/seatunnel/SeatunnelTask.java
index 3d896adc58..c22ec7e0a9 100644
--- 
a/dolphinscheduler-task-plugin/dolphinscheduler-task-seatunnel/src/main/java/org/apache/dolphinscheduler/plugin/task/seatunnel/SeatunnelTask.java
+++ 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-seatunnel/src/main/java/org/apache/dolphinscheduler/plugin/task/seatunnel/SeatunnelTask.java
@@ -50,6 +50,8 @@ import java.util.Map;
  */
 public class SeatunnelTask extends AbstractRemoteTask {
 
+    private static final String SEATUNNEL_BIN_DIR = "${SEATUNNEL_HOME}/bin/";
+
     /**
      * seatunnel parameters
      */
@@ -138,7 +140,7 @@ public class SeatunnelTask extends AbstractRemoteTask {
     private String buildCommand() throws Exception {
 
         List<String> args = new ArrayList<>();
-        args.add(seatunnelParameters.getEngine().getCommand());
+        args.add(SEATUNNEL_BIN_DIR + seatunnelParameters.getStartupScript());
         args.addAll(buildOptions());
 
         String command = String.join(" ", args);
diff --git 
a/dolphinscheduler-task-plugin/dolphinscheduler-task-seatunnel/src/main/java/org/apache/dolphinscheduler/plugin/task/seatunnel/SeatunnelTaskChannel.java
 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-seatunnel/src/main/java/org/apache/dolphinscheduler/plugin/task/seatunnel/SeatunnelTaskChannel.java
index c1a6f9a86a..ae01d8edd8 100644
--- 
a/dolphinscheduler-task-plugin/dolphinscheduler-task-seatunnel/src/main/java/org/apache/dolphinscheduler/plugin/task/seatunnel/SeatunnelTaskChannel.java
+++ 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-seatunnel/src/main/java/org/apache/dolphinscheduler/plugin/task/seatunnel/SeatunnelTaskChannel.java
@@ -17,6 +17,10 @@
 
 package org.apache.dolphinscheduler.plugin.task.seatunnel;
 
+import static 
org.apache.dolphinscheduler.plugin.task.seatunnel.Constants.STARTUP_SCRIPT_FLINK;
+import static 
org.apache.dolphinscheduler.plugin.task.seatunnel.Constants.STARTUP_SCRIPT_SEATUNNEL;
+import static 
org.apache.dolphinscheduler.plugin.task.seatunnel.Constants.STARTUP_SCRIPT_SPARK;
+
 import org.apache.dolphinscheduler.common.utils.JSONUtils;
 import org.apache.dolphinscheduler.plugin.task.api.TaskChannel;
 import org.apache.dolphinscheduler.plugin.task.api.TaskExecutionContext;
@@ -38,17 +42,18 @@ public class SeatunnelTaskChannel implements TaskChannel {
     public SeatunnelTask createTask(TaskExecutionContext taskRequest) {
         SeatunnelParameters seatunnelParameters =
                 JSONUtils.parseObject(taskRequest.getTaskParams(), 
SeatunnelParameters.class);
-        switch (seatunnelParameters.getEngine()) {
-            case FLINK:
-            case FLINK_V2:
-                return new SeatunnelFlinkTask(taskRequest);
-            case SPARK:
-            case SPARK_V2:
-                return new SeatunnelSparkTask(taskRequest);
-            case SEATUNNEL_ENGINE:
-                return new SeatunnelEngineTask(taskRequest);
+        assert seatunnelParameters != null;
+        String startupScript = seatunnelParameters.getStartupScript();
+        if (startupScript.contains(STARTUP_SCRIPT_SPARK)) {
+            return new SeatunnelSparkTask(taskRequest);
+        }
+        if (startupScript.contains(STARTUP_SCRIPT_FLINK)) {
+            return new SeatunnelFlinkTask(taskRequest);
+        }
+        if (startupScript.contains(STARTUP_SCRIPT_SEATUNNEL)) {
+            return new SeatunnelEngineTask(taskRequest);
         }
-        throw new IllegalArgumentException("Unsupported engine type:" + 
seatunnelParameters.getEngine());
+        throw new IllegalArgumentException("Unsupported startup script name:" 
+ seatunnelParameters.getStartupScript());
     }
 
     @Override
diff --git 
a/dolphinscheduler-task-plugin/dolphinscheduler-task-seatunnel/src/main/java/org/apache/dolphinscheduler/plugin/task/seatunnel/flink/SeatunnelFlinkParameters.java
 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-seatunnel/src/main/java/org/apache/dolphinscheduler/plugin/task/seatunnel/flink/SeatunnelFlinkParameters.java
index 3f0b0eee40..1d85ea0267 100644
--- 
a/dolphinscheduler-task-plugin/dolphinscheduler-task-seatunnel/src/main/java/org/apache/dolphinscheduler/plugin/task/seatunnel/flink/SeatunnelFlinkParameters.java
+++ 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-seatunnel/src/main/java/org/apache/dolphinscheduler/plugin/task/seatunnel/flink/SeatunnelFlinkParameters.java
@@ -19,40 +19,29 @@ package 
org.apache.dolphinscheduler.plugin.task.seatunnel.flink;
 
 import org.apache.dolphinscheduler.plugin.task.seatunnel.SeatunnelParameters;
 
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@Getter
+@Setter
+@NoArgsConstructor
 public class SeatunnelFlinkParameters extends SeatunnelParameters {
 
     private RunModeEnum runMode;
 
     private String others;
 
-    public static enum RunModeEnum {
+    @Getter
+    public enum RunModeEnum {
+
         RUN("--run-mode run"),
         RUN_APPLICATION("--run-mode run-application");
 
-        private String command;
+        private final String command;
 
         RunModeEnum(String command) {
             this.command = command;
         }
-
-        public String getCommand() {
-            return command;
-        }
-    }
-
-    public RunModeEnum getRunMode() {
-        return runMode;
-    }
-
-    public void setRunMode(RunModeEnum runMode) {
-        this.runMode = runMode;
-    }
-
-    public String getOthers() {
-        return others;
-    }
-
-    public void setOthers(String others) {
-        this.others = others;
     }
 }
diff --git 
a/dolphinscheduler-task-plugin/dolphinscheduler-task-seatunnel/src/main/java/org/apache/dolphinscheduler/plugin/task/seatunnel/self/SeatunnelEngineParameters.java
 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-seatunnel/src/main/java/org/apache/dolphinscheduler/plugin/task/seatunnel/self/SeatunnelEngineParameters.java
index 0a43dc6f7e..c93743a266 100644
--- 
a/dolphinscheduler-task-plugin/dolphinscheduler-task-seatunnel/src/main/java/org/apache/dolphinscheduler/plugin/task/seatunnel/self/SeatunnelEngineParameters.java
+++ 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-seatunnel/src/main/java/org/apache/dolphinscheduler/plugin/task/seatunnel/self/SeatunnelEngineParameters.java
@@ -20,25 +20,18 @@ package 
org.apache.dolphinscheduler.plugin.task.seatunnel.self;
 import org.apache.dolphinscheduler.plugin.task.seatunnel.DeployModeEnum;
 import org.apache.dolphinscheduler.plugin.task.seatunnel.SeatunnelParameters;
 
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
 public class SeatunnelEngineParameters extends SeatunnelParameters {
 
     private DeployModeEnum deployMode;
 
     private String others;
-
-    public DeployModeEnum getDeployMode() {
-        return deployMode;
-    }
-
-    public void setDeployMode(DeployModeEnum deployMode) {
-        this.deployMode = deployMode;
-    }
-
-    public String getOthers() {
-        return others;
-    }
-
-    public void setOthers(String others) {
-        this.others = others;
-    }
 }
diff --git 
a/dolphinscheduler-task-plugin/dolphinscheduler-task-seatunnel/src/main/java/org/apache/dolphinscheduler/plugin/task/seatunnel/spark/SeatunnelSparkParameters.java
 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-seatunnel/src/main/java/org/apache/dolphinscheduler/plugin/task/seatunnel/spark/SeatunnelSparkParameters.java
index e17675a845..1567fe6a09 100644
--- 
a/dolphinscheduler-task-plugin/dolphinscheduler-task-seatunnel/src/main/java/org/apache/dolphinscheduler/plugin/task/seatunnel/spark/SeatunnelSparkParameters.java
+++ 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-seatunnel/src/main/java/org/apache/dolphinscheduler/plugin/task/seatunnel/spark/SeatunnelSparkParameters.java
@@ -24,6 +24,13 @@ import org.apache.commons.lang3.StringUtils;
 
 import java.util.Objects;
 
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@Getter
+@Setter
+@NoArgsConstructor
 public class SeatunnelSparkParameters extends SeatunnelParameters {
 
     private DeployModeEnum deployMode;
@@ -42,44 +49,18 @@ public class SeatunnelSparkParameters extends 
SeatunnelParameters {
         return result;
     }
 
-    public static enum MasterTypeEnum {
+    @Getter
+    public enum MasterTypeEnum {
+
         YARN("yarn"),
         LOCAL("local"),
         SPARK("spark://"),
         MESOS("mesos://");
 
-        private String command;
+        private final String command;
 
         MasterTypeEnum(String command) {
             this.command = command;
         }
-
-        public String getCommand() {
-            return command;
-        }
-    }
-
-    public DeployModeEnum getDeployMode() {
-        return deployMode;
-    }
-
-    public void setDeployMode(DeployModeEnum deployMode) {
-        this.deployMode = deployMode;
-    }
-
-    public MasterTypeEnum getMaster() {
-        return master;
-    }
-
-    public void setMaster(MasterTypeEnum master) {
-        this.master = master;
-    }
-
-    public String getMasterUrl() {
-        return masterUrl;
-    }
-
-    public void setMasterUrl(String masterUrl) {
-        this.masterUrl = masterUrl;
     }
 }
diff --git a/dolphinscheduler-ui/src/locales/en_US/project.ts 
b/dolphinscheduler-ui/src/locales/en_US/project.ts
index 07966228bb..9959224f3e 100644
--- a/dolphinscheduler-ui/src/locales/en_US/project.ts
+++ b/dolphinscheduler-ui/src/locales/en_US/project.ts
@@ -759,6 +759,8 @@ export default {
     custom_config: 'Custom Config',
     engine: 'engine',
     engine_tips: 'Please select engine',
+    startup_script: 'Startup script',
+    startup_script_tips: 'Please select startup script',
     run_mode: 'Run Mode',
     dinky_address: 'Dinky address',
     dinky_address_tips: 'Please enter the url of your dinky',
diff --git a/dolphinscheduler-ui/src/locales/zh_CN/project.ts 
b/dolphinscheduler-ui/src/locales/zh_CN/project.ts
index b9f935f965..415fdc3edc 100644
--- a/dolphinscheduler-ui/src/locales/zh_CN/project.ts
+++ b/dolphinscheduler-ui/src/locales/zh_CN/project.ts
@@ -740,6 +740,8 @@ export default {
     custom_config: '自定义配置',
     engine: '引擎',
     engine_tips: '请选择引擎',
+    startup_script: '启动脚本',
+    startup_script_tips: '请选择启动脚本',
     run_mode: '运行模式',
     dinky_address: 'dinky 地址',
     dinky_address_tips: '请输入 Dinky 地址',
diff --git 
a/dolphinscheduler-ui/src/views/projects/task/components/node/fields/use-sea-tunnel.ts
 
b/dolphinscheduler-ui/src/views/projects/task/components/node/fields/use-sea-tunnel.ts
index 4485d97aad..3f31422596 100644
--- 
a/dolphinscheduler-ui/src/views/projects/task/components/node/fields/use-sea-tunnel.ts
+++ 
b/dolphinscheduler-ui/src/views/projects/task/components/node/fields/use-sea-tunnel.ts
@@ -24,34 +24,44 @@ export function useSeaTunnel(model: { [field: string]: any 
}): IJsonItem[] {
 
   const configEditorSpan = computed(() => (model.useCustom ? 24 : 0))
   const resourceEditorSpan = computed(() => (model.useCustom ? 0 : 24))
-  const flinkSpan = computed(() => (model.engine === 'FLINK' || model.engine 
=== 'FLINK_V2' ? 24 : 0))
-  const deployModeSpan = computed(() => (model.engine === 'SPARK' || 
model.engine === 'SPARK_V2' || model.engine === "SEATUNNEL_ENGINE" ? 24 : 0))
-  const masterSpan = computed(() =>
-      (model.engine === 'SPARK' || model.engine === 'SPARK_V2') && 
model.deployMode !== 'local' ? 12 : 0
-  )
+  const flinkSpan = computed(() => (model.startupScript.includes("flink") ? 24 
: 0))
+  const deployModeSpan = computed(() => (model.startupScript.includes("spark") 
|| model.startupScript === "seatunnel.sh" ? 24 : 0))
+  const masterSpan = computed(() => (model.startupScript.includes("spark")) && 
model.deployMode !== 'local' ? 12 : 0)
   const masterUrlSpan = computed(() =>
-    (model.engine === 'SPARK' || model.engine === 'SPARK_V2') &&
+    (model.startupScript.includes("spark")) &&
     model.deployMode !== 'local' &&
     (model.master === 'SPARK' || model.master === 'MESOS')
       ? 12
       : 0
   )
-  const showClient = computed(() => model.engine === 'SPARK' || model.engine 
=== 'SPARK_V2')
-  const showLocal = computed(() => model.engine === 'SEATUNNEL_ENGINE')
-  const othersSpan = computed(() => (model.engine === 'FLINK' || model.engine 
=== 'FLINK_V2' || model.engine === 'SEATUNNEL_ENGINE' ? 24 : 0))
+  const showClient = computed(() => model.startupScript.includes("spark"))
+  const showLocal = computed(() => model.startupScript === 'seatunnel.sh')
+  const othersSpan = computed(() => (model.startupScript.includes("flink") || 
model.startupScript === 'seatunnel.sh' ? 24 : 0))
 
   return [
     {
       type: 'select',
-      field: 'engine',
-      span: 12,
-      name: t('project.node.engine'),
-      options: ENGINE,
+      field: 'startupScript',
+      span: 15,
+      name: t('project.node.startup_script'),
+      options: STARTUP_SCRIPT,
       validate: {
         trigger: ['input', 'blur'],
         required: true,
-        message: t('project.node.engine_tips')
-      }
+        message: t('project.node.startup_script_tips')
+      },
+      props: {
+        'on-update:value': (value: boolean) => {
+          if (value) {
+            if (model.startupScript === 'seatunnel.sh') {
+              model.deployMode = 'local'
+            }
+            if (model.startupScript.includes("spark")) {
+              model.deployMode = 'client'
+            }
+          }
+        }
+      },
     },
 
     // SeaTunnel flink parameter
@@ -130,26 +140,42 @@ export function useSeaTunnel(model: { [field: string]: 
any }): IJsonItem[] {
   ]
 }
 
-export const ENGINE = [
+export const STARTUP_SCRIPT = [
   {
-    label: 'SPARK',
-    value: 'SPARK'
+    label: 'seatunnel.sh',
+    value: 'seatunnel.sh'
+  },
+  {
+    label: 'start-seatunnel-flink-13-connector-v2.sh',
+    value: 'start-seatunnel-flink-13-connector-v2.sh'
+  },
+  {
+    label: 'start-seatunnel-flink-15-connector-v2.sh',
+    value: 'start-seatunnel-flink-15-connector-v2.sh'
+  },
+  {
+    label: 'start-seatunnel-flink-connector-v2.sh',
+    value: 'start-seatunnel-flink-connector-v2.sh'
+  },
+  {
+    label: 'start-seatunnel-flink.sh',
+    value: 'start-seatunnel-flink.sh'
   },
   {
-    label: 'FLINK',
-    value: 'FLINK'
+    label: 'start-seatunnel-spark-2-connector-v2.sh',
+    value: 'start-seatunnel-spark-2-connector-v2.sh'
   },
   {
-    label: 'SPARK_V2',
-    value: 'SPARK_V2'
+    label: 'start-seatunnel-spark-3-connector-v2.sh',
+    value: 'start-seatunnel-spark-3-connector-v2.sh'
   },
   {
-    label: 'FLINK_V2',
-    value: 'FLINK_V2'
+    label: 'start-seatunnel-spark-connector-v2.sh',
+    value: 'start-seatunnel-spark-connector-v2.sh'
   },
   {
-    label: 'SEATUNNEL_ENGINE',
-    value: 'SEATUNNEL_ENGINE'
+    label: 'start-seatunnel-spark.sh',
+    value: 'start-seatunnel-spark.sh'
   }
 ]
 
diff --git 
a/dolphinscheduler-ui/src/views/projects/task/components/node/format-data.ts 
b/dolphinscheduler-ui/src/views/projects/task/components/node/format-data.ts
index 862ffa4624..74c74b188b 100644
--- a/dolphinscheduler-ui/src/views/projects/task/components/node/format-data.ts
+++ b/dolphinscheduler-ui/src/views/projects/task/components/node/format-data.ts
@@ -200,21 +200,21 @@ export function formatParams(data: INodeData): {
   }
 
   if (data.taskType === 'SEATUNNEL') {
-    taskParams.engine = data.engine
+    taskParams.startupScript = data.startupScript
     taskParams.useCustom = data.useCustom
     taskParams.rawScript = data.rawScript
-    switch (data.engine) {
-      case 'FLINK':
-        taskParams.runMode = data.runMode
-        taskParams.others = data.others
-        break
-      case 'SPARK':
-        taskParams.deployMode = data.deployMode
-        taskParams.master = data.master
-        taskParams.masterUrl = data.masterUrl
-        break
-      default:
-        break
+    if (data.startupScript?.includes("flink")) {
+      taskParams.runMode = data.runMode
+      taskParams.others = data.others
+    }
+    if (data.startupScript?.includes("spark")) {
+      taskParams.deployMode = data.deployMode
+      taskParams.master = data.master
+      taskParams.masterUrl = data.masterUrl
+    }
+    if (data.startupScript === "seatunnel.sh") {
+      taskParams.deployMode = data.deployMode
+      taskParams.others = data.others
     }
   }
 
diff --git 
a/dolphinscheduler-ui/src/views/projects/task/components/node/tasks/use-sea-tunnel.ts
 
b/dolphinscheduler-ui/src/views/projects/task/components/node/tasks/use-sea-tunnel.ts
index c570bac15b..1926bf665c 100644
--- 
a/dolphinscheduler-ui/src/views/projects/task/components/node/tasks/use-sea-tunnel.ts
+++ 
b/dolphinscheduler-ui/src/views/projects/task/components/node/tasks/use-sea-tunnel.ts
@@ -46,7 +46,7 @@ export function useSeaTunnel({
     memoryMax: -1,
     delayTime: 0,
     timeout: 30,
-    engine: 'FLINK',
+    startupScript: 'seatunnel.sh',
     runMode: 'RUN',
     useCustom: true,
     deployMode: 'client',
@@ -56,25 +56,29 @@ export function useSeaTunnel({
     timeoutNotifyStrategy: ['WARN'],
     rawScript:
       'env {\n' +
-      '    execution.parallelism = 1\n' +
-      '}\n' +
-      '\n' +
-      'source {\n' +
-      '    FakeSourceStream {\n' +
-      '        result_table_name = "fake"\n' +
-      '        field_name = "name,age"\n' +
-      '    }\n' +
-      '}\n' +
-      '\n' +
-      'transform {\n' +
-      '    sql {\n' +
-      '        sql = "select name,age from fake"\n' +
-      '    }\n' +
-      '}\n' +
-      '\n' +
-      'sink {\n' +
-      '    ConsoleSink {}\n' +
-      '}'
+        '  execution.parallelism = 2\n' +
+        '  job.mode = "BATCH"\n' +
+        '  checkpoint.interval = 10000\n' +
+        '}\n' +
+        '\n' +
+        'source {\n' +
+        '  FakeSource {\n' +
+        '    parallelism = 2\n' +
+        '    result_table_name = "fake"\n' +
+        '    row.num = 16\n' +
+        '    schema = {\n' +
+        '      fields {\n' +
+        '        name = "string"\n' +
+        '        age = "int"\n' +
+        '      }\n' +
+        '    }\n' +
+        '  }\n' +
+        '}\n' +
+        '\n' +
+        'sink {\n' +
+        '  Console {\n' +
+        '  }\n' +
+        '}'
   } as INodeData)
 
   return {
diff --git 
a/dolphinscheduler-ui/src/views/projects/task/components/node/types.ts 
b/dolphinscheduler-ui/src/views/projects/task/components/node/types.ts
index df9c14955b..dc1ffed032 100644
--- a/dolphinscheduler-ui/src/views/projects/task/components/node/types.ts
+++ b/dolphinscheduler-ui/src/views/projects/task/components/node/types.ts
@@ -329,6 +329,7 @@ interface ITaskParams {
   parameters?: string
   kernel?: string
   engine?: string
+  startupScript?: string
   executionTimeout?: string
   startTimeout?: string
   processDefinitionCode?: number

Reply via email to