[Subtask] Support output log retrieval for job handler
- Dominant language
- Java
- Stars
- 3.2k
- Forks
- 935
- Avg merge
- 1d 16h
- Merged PRs (30d)
- 298
Description
### Describe the subtask
`JobExecutor` (`core/src/main/java/org/apache/gravitino/connector/job/JobExecutor.java`) exposes only `submitJob`/`getJobStatus`/`cancelJob` — there is no way to retrieve a job's stdout/stderr. Callers (and the REST API) have no way to see job output for debugging failed or running jobs.
**Proposed change:**
- Add output-log retrieval to `JobExecutor` (default method throwing `UnsupportedOperationException`, so existing implementers aren't broken), following the same backward-compatible default-method pattern used for `queuedAt`/`startedAt`/`finishedAt`.
- Implement it for the built-in executors that can support it (e.g. the local runner) by surfacing captured stdout/stderr.
- Expose it through `JobHandle` (Java + Python), the REST `Job` payload (`docs/open-api/jobs.yaml`), and the Java/Python client APIs.
- Follows the same cross-cutting pattern as commit `62c5a2f2b` ("Expose job queuedAt and startedAt across the public surface"), which touched the identical set of layers for a different new field.
### Parent issue
#12667
Contributor guide
Research direction
Start with core/src/main/java/org/apache/gravitino/connector/job/JobExecutor.java and compare the queuedAt/startedAt/finishedAt default-method pattern, then use commit 62c5a2f2b as the cross-layer guide. Trace JobHandle, the local runner, the Java and Python client APIs, and docs/open-api/jobs.yaml. Done means supported executors surface captured stdout/stderr and the Java, Python, REST, and client interfaces expose the retrieval consistently.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, openapi, python
- Domain
- api, backend-api-design
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100