71 lines
2.7 KiB
Python
71 lines
2.7 KiB
Python
# [DEF:debug_db_api:Module]
|
|
#
|
|
# @SEMANTICS: debug, api, database, script
|
|
# @PURPOSE: Скрипт для отладки структуры ответа API баз данных.
|
|
# @LAYER: App
|
|
# @RELATION: DEPENDS_ON -> superset_tool.client
|
|
# @RELATION: DEPENDS_ON -> superset_tool.utils
|
|
# @PUBLIC_API: debug_database_api
|
|
|
|
# [SECTION: IMPORTS]
|
|
import json
|
|
import logging
|
|
from superset_tool.client import SupersetClient
|
|
from superset_tool.utils.init_clients import setup_clients
|
|
from superset_tool.utils.logger import SupersetLogger
|
|
# [/SECTION]
|
|
|
|
# [DEF:debug_database_api:Function]
|
|
# @PURPOSE: Отладка структуры ответа API баз данных.
|
|
# @RELATION: CALLS -> setup_clients
|
|
# @RELATION: CALLS -> client.get_databases
|
|
def debug_database_api():
|
|
logger = SupersetLogger(name="debug_db_api", level=logging.DEBUG)
|
|
|
|
# Инициализируем клиенты
|
|
clients = setup_clients(logger)
|
|
|
|
# Проверяем доступные окружения
|
|
print("Доступные окружения:")
|
|
for env_name, client in clients.items():
|
|
print(f" {env_name}: {client.config.base_url}")
|
|
|
|
# Выбираем два окружения для тестирования
|
|
if len(clients) < 2:
|
|
print("Недостаточно окружений для тестирования")
|
|
return
|
|
|
|
env_names = list(clients.keys())[:2]
|
|
from_env, to_env = env_names[0], env_names[1]
|
|
|
|
from_client = clients[from_env]
|
|
to_client = clients[to_env]
|
|
|
|
print(f"\nТестируем API для окружений: {from_env} -> {to_env}")
|
|
|
|
try:
|
|
# Получаем список баз данных из первого окружения
|
|
print(f"\nПолучаем список БД из {from_env}:")
|
|
count, dbs = from_client.get_databases()
|
|
print(f"Найдено {count} баз данных")
|
|
print("Полный ответ API:")
|
|
print(json.dumps({"count": count, "result": dbs}, indent=2, ensure_ascii=False))
|
|
|
|
# Получаем список баз данных из второго окружения
|
|
print(f"\nПолучаем список БД из {to_env}:")
|
|
count, dbs = to_client.get_databases()
|
|
print(f"Найдено {count} баз данных")
|
|
print("Полный ответ API:")
|
|
print(json.dumps({"count": count, "result": dbs}, indent=2, ensure_ascii=False))
|
|
|
|
except Exception as e:
|
|
print(f"Ошибка при тестировании API: {e}")
|
|
import traceback
|
|
traceback.print_exc()
|
|
# [/DEF:debug_database_api]
|
|
|
|
if __name__ == "__main__":
|
|
debug_database_api()
|
|
|
|
# [/DEF:debug_db_api]
|