Skip to content

feat: optional centralized Luigi scheduler + dispatch_id for hermes w…#934

Merged
lior-antonov merged 4 commits into
masterfrom
issue918
Jun 16, 2026
Merged

feat: optional centralized Luigi scheduler + dispatch_id for hermes w…#934
lior-antonov merged 4 commits into
masterfrom
issue918

Conversation

@ilayfalach

Copy link
Copy Markdown
Collaborator

…orkflows (#918)

Move hermes workflow execution off the hardcoded --local-scheduler to an optional centralized scheduler, and propagate a unique dispatch_id to every Luigi node so the central scheduler (which keys on task family + parameters) can tell distinct runs apart.

  • buildLuigiExecutionCommand helper builds local/central invocations and the --dispatch-id flag, shared by both execution call sites.
  • executeWorkflowFromDB / LSM addWorkflowToGroup / OF runOFSimulation accept scheduler, schedulerHost, schedulerPort, dispatch_id (auto uuid4, logged).
  • hera-workflows buildExecute CLI gains --scheduler/--scheduler-host/ --scheduler-port/--dispatch-id, forwarded through workflow_buildExecute.
  • Add test_workflow_execution.py covering the command builder and template.

Requires the matching hermes change (dispatch_id luigi.Parameter on nodes).

Ilay Falach and others added 4 commits June 15, 2026 16:45
…orkflows (#918)

Move hermes workflow execution off the hardcoded --local-scheduler to an
optional centralized scheduler, and propagate a unique dispatch_id to every
Luigi node so the central scheduler (which keys on task family + parameters)
can tell distinct runs apart.

- buildLuigiExecutionCommand helper builds local/central invocations and the
  --dispatch-id flag, shared by both execution call sites.
- executeWorkflowFromDB / LSM addWorkflowToGroup / OF runOFSimulation accept
  scheduler, schedulerHost, schedulerPort, dispatch_id (auto uuid4, logged).
- hera-workflows buildExecute CLI gains --scheduler/--scheduler-host/
  --scheduler-port/--dispatch-id, forwarded through workflow_buildExecute.
- Add test_workflow_execution.py covering the command builder and template.

Requires the matching hermes change (dispatch_id luigi.Parameter on nodes).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…paths (#918)

The OpenFOAM CLI executes workflows via hermes handler_buildExecute, a path
separate from executeWorkflowFromDB. Add the scheduler-selection and dispatch_id
flags to its executeWorkflow/buildExecute subparsers so the centralized scheduler
option reaches those runs too.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The template lives in hermes; hera CI vendors hermes' default branch, which does
not carry the dispatch_id change until the hermes PR merges, so a hera-side
assertion on the template fails in CI. Keep only the hera command-builder tests
here; the template is tested in the hermes repo.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…918)

Builds and executes the Tutorial workflow through hera's buildLuigiExecutionCommand
and asserts the run completes with per-dispatch output isolation. Guarded to skip
when hermes/luigi are unavailable or the vendored hermes predates the dispatch_id
node template change, so it stays green until the hermes PR merges and activates
automatically afterwards.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@lior-antonov lior-antonov merged commit 6778ef4 into master Jun 16, 2026
1 check passed
@lior-antonov lior-antonov deleted the issue918 branch June 16, 2026 08:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants