apache / apache/dolphinscheduler
[Feature][Python] Migrate all exists method call in PythonGateway to corresponding service
- 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
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