diff --git a/backend/src/api/routes/translate/_job_routes.py b/backend/src/api/routes/translate/_job_routes.py index 0210b37e..98cdf9fb 100644 --- a/backend/src/api/routes/translate/_job_routes.py +++ b/backend/src/api/routes/translate/_job_routes.py @@ -211,7 +211,7 @@ async def list_datasources( with belief_scope("list_datasources"): try: service = TranslateJobService(db, config_manager) - datasets = service.fetch_available_datasources(env_id, search) + datasets = await service.fetch_available_datasources(env_id, search) return datasets except Exception as e: logger.explore("list_datasources failed", extra={"src": "translate_routes", "error": str(e)}) @@ -231,7 +231,7 @@ async def get_datasource_columns( extra={"src": "translate_routes"} ) try: - result = fetch_datasource_columns_service( + result = await fetch_datasource_columns_service( datasource_id=datasource_id, env_id=env_id, config_manager=config_manager, diff --git a/backend/src/plugins/translate/service.py b/backend/src/plugins/translate/service.py index 91d40e09..ce3f8bf7 100644 --- a/backend/src/plugins/translate/service.py +++ b/backend/src/plugins/translate/service.py @@ -234,13 +234,13 @@ class TranslateJobService: # region fetch_available_datasources [TYPE Function] # @PURPOSE: List available Superset datasets for translation job creation. - def fetch_available_datasources(self, env_id: str, search: str | None = None) -> list: + async def fetch_available_datasources(self, env_id: str, search: str | None = None) -> list: from ...core.superset_client import SupersetClient env = self.config_manager.get_environment(env_id) if not env: raise ValueError(f"Environment '{env_id}' not found") client = SupersetClient(env) - _, datasets = client.get_datasets() + _, datasets = await client.get_datasets() result = [] for ds in datasets: name = ds.get("table_name", "") diff --git a/backend/src/plugins/translate/service_datasource.py b/backend/src/plugins/translate/service_datasource.py index cbd04e78..66114038 100644 --- a/backend/src/plugins/translate/service_datasource.py +++ b/backend/src/plugins/translate/service_datasource.py @@ -114,7 +114,7 @@ def detect_virtual_columns(columns: list[dict[str, Any]]) -> list[str]: # #region get_datasource_columns [C:3] [TYPE Function] # @BRIEF Fetch datasource column metadata from Superset and return structured response. -def get_datasource_columns( +async def get_datasource_columns( datasource_id: int, env_id: str, config_manager: ConfigManager, @@ -128,7 +128,7 @@ def get_datasource_columns( raise ValueError(f"Superset environment '{env_id}' not found") client = SupersetClient(env_config) - dataset_detail = client.get_dataset_detail(datasource_id) + dataset_detail = await client.get_dataset_detail(datasource_id) database_info = dataset_detail.get("database", {}) dialect = None @@ -140,7 +140,7 @@ def get_datasource_columns( if dialect is None: database_id = dataset_detail.get("database_id") if database_id: - db_record = client.get_database(int(database_id)) + db_record = await client.get_database(int(database_id)) db_result = db_record.get("result", db_record) if isinstance(db_record, dict) else db_record dialect = get_dialect_from_database(db_result) else: