mirror of
https://gitee.com/dolphinscheduler/DolphinScheduler.git
synced 2024-12-02 12:17:43 +08:00
[python] Fix database error handler about no datasource name (#7631)
* [python] Fix database error handler about no datasource name The original code show too many unrelated log when database name do not exists. BTW, it would continue the code when error miss. This patch is try to fix it. close: #7616 * Use java exception instead of self define * Enhance
This commit is contained in:
parent
0b38d0e826
commit
65322155a3
@ -19,6 +19,9 @@
|
||||
|
||||
from typing import Dict
|
||||
|
||||
from py4j.protocol import Py4JJavaError
|
||||
|
||||
from pydolphinscheduler.exceptions import PyDSParamException
|
||||
from pydolphinscheduler.java_gateway import launch_gateway
|
||||
|
||||
|
||||
@ -52,5 +55,9 @@ class Database(dict):
|
||||
return self._database
|
||||
else:
|
||||
gateway = launch_gateway()
|
||||
self._database = gateway.entry_point.getDatasourceInfo(name)
|
||||
try:
|
||||
self._database = gateway.entry_point.getDatasourceInfo(name)
|
||||
# Handler database source do not exists error, for now we just terminate the process.
|
||||
except Py4JJavaError as ex:
|
||||
raise PyDSParamException(str(ex.java_exception))
|
||||
return self._database
|
||||
|
@ -392,12 +392,12 @@ public class PythonGatewayServer extends SpringBootServletInitializer {
|
||||
public Map<String, Object> getDatasourceInfo(String datasourceName) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
List<DataSource> dataSourceList = dataSourceMapper.queryDataSourceByName(datasourceName);
|
||||
if (dataSourceList.size() > 1) {
|
||||
String msg = String.format("Get more than one datasource by name %s", datasourceName);
|
||||
if (dataSourceList == null || dataSourceList.isEmpty()) {
|
||||
String msg = String.format("Can not find any datasource by name %s", datasourceName);
|
||||
logger.error(msg);
|
||||
throw new IllegalArgumentException(msg);
|
||||
} else if (dataSourceList.size() == 0) {
|
||||
String msg = String.format("Can not find any datasource by name %s", datasourceName);
|
||||
} else if (dataSourceList.size() > 1) {
|
||||
String msg = String.format("Get more than one datasource by name %s", datasourceName);
|
||||
logger.error(msg);
|
||||
throw new IllegalArgumentException(msg);
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user