Repository navigation
[Fix-18672][UI] Allow SeaTunnel workflow tasks to select stream execution - #18673
sunlishuo25 wants to merge 17 commits into
Conversation
|
Thanks for opening this pull request! Please check out our contributing guidelines. (https://github.com/apache/dolphinscheduler/blob/dev/docs/docs/en/contribute/join/pull-request.md) |
Discard the previous task's stored execution mode only when its task type changes, so the new type uses the existing defaults. Preserve SeaTunnel's explicit mode when the type is unchanged and when a definition is reopened. Add focused source checks for task type transitions, mode preservation, custom/resource configuration round trips, and legacy defaults.
SbloodyS
left a comment
There was a problem hiding this comment.
The new E2E covers execution-type selection and save/reload, but leaves several changed paths untested.
Please add regression coverage for copying a STREAM SeaTunnel task, updating connected-edge styling when switching between BATCH and STREAM, and disabling SeaTunnel savepoint while keeping Flink savepoint enabled.
The test also never executes the workflow or checks the Stream Task instance list, so it does not verify the instance-classification outcome described in the PR.
|
Thanks for the review, @SbloodyS. Commit f1acc46 now includes regression coverage for STREAM task copying and persistence, connected-edge styling when switching BATCH/STREAM, disabled SeaTunnel savepoint with Flink savepoint preserved, and actual workflow execution followed by Stream/Batch instance-list checks. Local validation passed all 43 browser checks and the complete WorkflowSeaTunnelE2ETest class. The workflow was actually started, but the SeaTunnel tasks failed because /bin/seatunnel.sh was missing (exit 127). The STREAM classification assertions passed; this does not demonstrate successful SeaTunnel engine execution. Local validation used ARM64 with reduced JVM heap settings. The tests are in WorkflowSeaTunnelE2ETest.java and dolphinscheduler-ui/tests/task-execution-graph.cjs. The latter is included in the Frontend workflow. All nine upstream pull_request workflows for this head are still awaiting approval with zero jobs executed. |
Was this PR generated or assisted by AI?
YES. Code investigation, implementation, regression tests, documentation, and this description were assisted by OpenAI Codex. Local checks and their limitations are reported below.
Purpose of the pull request
Fixes #18672.
A SeaTunnel workflow node always defaults to
taskExecuteType=BATCH, even when its SeaTunnel configuration runs a streaming job, and the form has no way to select Stream Task. Add an explicit Batch/Stream choice using the existing execution-type field so an opted-in workflow task can appear in the Stream Task instance list. Batch remains the default, including for existing definitions without an execution type.The choice is independent of the SeaTunnel configuration, supporting both custom scripts and resource files without trying to parse HOCON in the browser. Users must also select the matching SeaTunnel job mode and use attached submission.
Brief change log
Verify this pull request
vue-tsc --noEmit, andpnpm run build:produsing the checked-in lockfile../mvnw spotless:apply spotless:checkwith JDK 11../mvnw -f dolphinscheduler-e2e/pom.xml -pl dolphinscheduler-e2e-case -am test-compile.SEATUNNELtask markedSTREAM, run it through the workflow, observeRUNNING_EXECUTION, confirm inclusion in STREAM pagination and exclusion from BATCH pagination, and independently query H2 after shutdown to confirm STREAM persisted on both the definition and instance. A fake attached CLI was used to isolate scheduler behavior; this does not test a real SeaTunnel engine or a backend built from this commit. Stop verification was inconclusive because the Mac lackspstree(the API accepted the request but the process remained running)../mvnw -f dolphinscheduler-e2e/pom.xml -pl dolphinscheduler-e2e-case -am -Dtest=WorkflowSeaTunnelE2ETest -Dsurefire.failIfNoSpecifiedTests=false -Dm1_chip=true test. The initial local Testcontainers run failed during setup because no valid Docker environment was available, before test assertions ran.Upstream E2E attempt 2 passed Batch save/reopen, then the modal footer intercepted the first Stream radio click. The follow-up scrolls the radio label into view, keeps the native Selenium click, and waits for the input to be selected. Focused local Selenium checks using the real modal and radio components passed on Chrome 125 and 149. The isolated Mac fixture did not reproduce the Linux click exception, even at the observed footer overlap; the full upstream E2E rerun remains outstanding. Full upstream CI has not passed.
This change is limited to classification of workflow-managed tasks. It does not restore standalone streaming execution, add detached-job tracking/savepoint/recovery, or fix existing engine-cancellation and cross-workflow streaming-dependency behavior. A live SeaTunnel engine end-to-end run has not been performed.
Pull Request Notice
Pull Request Notice