|
|
@@ -28,6 +28,13 @@ def _is_in_release_dir(base_dir: str, release_root_dir: str, project_name: str)
|
|
|
return os.path.abspath(base_dir).startswith(expected)
|
|
|
|
|
|
|
|
|
+def _resolve_relative_to_base(path: str, base_dir: str) -> str:
|
|
|
+ """ini / inis 相对路径按 base_dir 解析(不依赖 Python 进程 cwd)。绝对路径原样返回。"""
|
|
|
+ if os.path.isabs(path):
|
|
|
+ return path
|
|
|
+ return os.path.join(base_dir, path)
|
|
|
+
|
|
|
+
|
|
|
class _BaseDatax:
|
|
|
"""共享基类:加载 workers pool、解析环境、构造 run_one 闭包。"""
|
|
|
|
|
|
@@ -115,7 +122,9 @@ class DataxImport(_BaseDatax):
|
|
|
"""
|
|
|
Returns: 失败任务数(0 = 全部成功)
|
|
|
"""
|
|
|
- ini_list = batch.expand_ini_inputs(inis, inis_dirs)
|
|
|
+ resolved_inis = [_resolve_relative_to_base(p, self.base_dir) for p in inis]
|
|
|
+ resolved_dirs = [_resolve_relative_to_base(p, self.base_dir) for p in inis_dirs]
|
|
|
+ ini_list = batch.expand_ini_inputs(resolved_inis, resolved_dirs)
|
|
|
if not ini_list:
|
|
|
return 0
|
|
|
|
|
|
@@ -155,7 +164,9 @@ class DataxExport(_BaseDatax):
|
|
|
"""
|
|
|
Returns: 失败任务数(0 = 全部成功)
|
|
|
"""
|
|
|
- ini_list = batch.expand_ini_inputs(inis, inis_dirs)
|
|
|
+ resolved_inis = [_resolve_relative_to_base(p, self.base_dir) for p in inis]
|
|
|
+ resolved_dirs = [_resolve_relative_to_base(p, self.base_dir) for p in inis_dirs]
|
|
|
+ ini_list = batch.expand_ini_inputs(resolved_inis, resolved_dirs)
|
|
|
if not ini_list:
|
|
|
return 0
|
|
|
run_one = self._make_run_one(start_date, stop_date, host, use_random, parallel, skip_datax)
|