Skip to content

[Improvement-18224][API] Migrate WorkerGroupService Map<String,Object> returns to typed returns#18228

Open
ruanwenjun wants to merge 1 commit intoapache:devfrom
ruanwenjun:chore/api-worker-group-service-typed-returns
Open

[Improvement-18224][API] Migrate WorkerGroupService Map<String,Object> returns to typed returns#18228
ruanwenjun wants to merge 1 commit intoapache:devfrom
ruanwenjun:chore/api-worker-group-service-typed-returns

Conversation

@ruanwenjun
Copy link
Copy Markdown
Member

Was this PR generated or assisted by AI?

YES, ops 4.7

Purpose of the pull request

Brief change log

Refactor 3 WorkerGroupService methods from Map<String, Object> to typed return / void + ServiceException, with cascading updates to the controller and unit test:

  • queryAllGroup(User): List
  • deleteWorkerGroupById(User, Integer): void
  • getWorkerAddressList(): Set

The private checkWorkerGroupDependencies(WorkerGroup, Map) helper now throws ServiceException with WORKER_GROUP_DEPENDENT_TASK/SCHEDULER/ ENVIRONMENT_EXISTS instead of mutating a result map and returning a boolean. The orphaned no-op invocation in saveWorkerGroup (which mutated a local map that was never read) is removed to preserve byte-for-byte behavior — its rename-with-dependencies guard was already inert.

HTTP wire format is preserved: ApiExceptionHandler converts ServiceException to the same Result(code, msg) shape that BaseController.returnDataList(map) produced; success paths use Result.success(data) matching the prior JSON body byte-for-byte.

No Py4J impact: WorkerGroupService is not exposed via PythonGateway.

Part of the migration series tracked by #18224.

Verify this pull request

This pull request is code cleanup without any test coverage.

(or)

This pull request is already covered by existing tests, such as (please describe tests).

(or)

This change added tests and can be verified as follows:

(or)

Pull Request Notice

Pull Request Notice

If your pull request contains incompatible change, you should also add it to docs/docs/en/guide/upgrade/incompatible.md

…> returns to typed returns

Refactor 3 WorkerGroupService methods from Map<String, Object> to typed
return / void + ServiceException, with cascading updates to the controller
and unit test:

- queryAllGroup(User): List<String>
- deleteWorkerGroupById(User, Integer): void
- getWorkerAddressList(): Set<String>

The private checkWorkerGroupDependencies(WorkerGroup, Map) helper now
throws ServiceException with WORKER_GROUP_DEPENDENT_TASK/SCHEDULER/
ENVIRONMENT_EXISTS instead of mutating a result map and returning a
boolean. The orphaned no-op invocation in saveWorkerGroup (which mutated
a local map that was never read) is removed to preserve byte-for-byte
behavior — its rename-with-dependencies guard was already inert.

HTTP wire format is preserved: ApiExceptionHandler converts ServiceException
to the same Result(code, msg) shape that BaseController.returnDataList(map)
produced; success paths use Result.success(data) matching the prior JSON
body byte-for-byte.

No Py4J impact: WorkerGroupService is not exposed via PythonGateway.

Part of the migration series tracked by apache#18224.
public Result queryWorkerAddressList(@Parameter(hidden = true) @RequestAttribute(value = Constants.SESSION_USER) User loginUser) {
Map<String, Object> result = workerGroupService.getWorkerAddressList();
return returnDataList(result);
public Result<Set<String>> queryWorkerAddressList(@Parameter(hidden = true) @RequestAttribute(value = Constants.SESSION_USER) User loginUser) {
@ruanwenjun ruanwenjun added improvement make more easy to user or prompt friendly refactor labels May 8, 2026
@ruanwenjun ruanwenjun added this to the 3.4.2 milestone May 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backend improvement make more easy to user or prompt friendly refactor test

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants