apache / apache/dolphinscheduler

[Feature][Python] Migrate all exists method call in PythonGateway to corresponding service

Open
#10,989 1 comment 0 reactions 0 assignees View on GitHub
feature help wanted Pyscheduler
Dominant language
Java
Stars
14.5k
Forks
5.1k
Avg merge
1d 21h
Merged PRs (30d)
29

Description

### Search before asking

- [X] I had searched in the [issues](https://github.com/apache/dolphinscheduler/issues?q=is%3Aissue) and found no similar feature requirement.

### Description

In https://github.com/apache/dolphinscheduler/blob/1fcbbb653440106fc5ca94a6a9e2d218dc3be97f/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/python/PythonGateway.java, we will export function to make them available to in python API, but we have to handle many Java `map` or `result` object situation. I think we should migrate them into corresponding service instead of PythonGateway, and keep PythonGateway in simple call like what I do in https://github.com/apache/dolphinscheduler/blob/7196b125d9a6612f2f175c2190d7758a09d7e0b9/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TenantServiceImpl.java#L363-L375

And after that, we only need to one line call in PythonGateway, such as
https://github.com/apache/dolphinscheduler/blob/7196b125d9a6612f2f175c2190d7758a09d7e0b9/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/python/PythonGateway.java#L394-L396

It makes our code clean, besides, we should do some refactoring in corresponding service when you migrate python gateway service. such as #10792 we will refactor the [QueueServiceImpl.java](https://github.com/apache/dolphinscheduler/pull/10792/files#diff-7fc1235289b798d8550b510e2a5f907a3a923af7bf70a0826afba5332be3a7f0) and [TenantService.java](https://github.com/apache/dolphinscheduler/pull/10792/files#diff-5816501c163b32a42100d48874ac38e34630683de8422b112035fdddbd81af3a) code

### Use case

_No response_

### Related issues

_No response_

### Are you willing to submit a PR?

- [ ] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct)

Contributor guide

Open the contributing guide

Research direction

Start in dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/python/PythonGateway.java and review each exists method call and its corresponding service. Compare the TenantServiceImpl example and the QueueServiceImpl.java and TenantService.java refactoring referenced in #10792. Done means the mapping or result handling is moved into the appropriate services and PythonGateway keeps simple delegated calls.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, python
Domain
api, backend, backend-api-design
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.