migration all

This commit is contained in:
Volobuev Andrey
2025-07-29 17:55:57 +03:00
parent 767b8c1862
commit ca2357e2e2
2 changed files with 2 additions and 147 deletions

View File

@@ -14,6 +14,7 @@ import logging
from superset_tool.client import SupersetClient
from superset_tool.models import SupersetConfig
from superset_tool.utils.logger import SupersetLogger
from superset_tool.utils.init_clients import setup_clients
# [IMPORTS] Сторонние библиотеки
import keyring
@@ -22,77 +23,6 @@ import keyring
SearchResult = Dict[str, List[Dict[str, str]]]
SearchPattern = str
def setup_clients(logger: SupersetLogger):
# [FUNCTION] setup_clients
# [CONTRACT]
"""
Инициализация клиентов SupersetClient для разных окружений (dev, sbx, prod).
@pre:
- `logger` является инициализированным экземпляром SupersetLogger.
- Учетные данные для каждого окружения доступны через `keyring`.
@post:
- Возвращает словарь с инициализированными экземплярами SupersetClient для 'dev', 'sbx', 'prod'.
- Каждый клиент аутентифицирован.
@side_effects:
- Выполняет запросы к Superset API для аутентификации.
- Использует `keyring` для получения паролей.
- Логирует процесс инициализации и ошибки.
@raise:
- Exception: При ошибке инициализации клиента или аутентификации.
"""
# [ANCHOR] CLIENTS_INITIALIZATION
clients = {}
try:
# [INFO] Инициализация конфигурации для Dev
dev_config = SupersetConfig(
base_url="https://devta.bi.dwh.rusal.com/api/v1",
auth={
"provider": "db",
"username": "migrate_user",
"password": keyring.get_password("system", "dev migrate"),
"refresh": True
},
verify_ssl=False
)
# [DEBUG] Dev config created: {dev_config.base_url}
# [INFO] Инициализация конфигурации для Prod
prod_config = SupersetConfig(
base_url="https://prodta.bi.dwh.rusal.com/api/v1",
auth={
"provider": "db",
"username": "migrate_user",
"password": keyring.get_password("system", "prod migrate"),
"refresh": True
},
verify_ssl=False
)
# [DEBUG] Prod config created: {prod_config.base_url}
# [INFO] Инициализация конфигурации для Sandbox
sandbox_config = SupersetConfig(
base_url="https://sandboxta.bi.dwh.rusal.com/api/v1",
auth={
"provider": "db",
"username": "migrate_user",
"password": keyring.get_password("system", "sandbox migrate"),
"refresh": True
},
verify_ssl=False
)
# [DEBUG] Sandbox config created: {sandbox_config.base_url}
# [INFO] Создание экземпляров SupersetClient
clients['dev'] = SupersetClient(dev_config, logger)
clients['sbx'] = SupersetClient(sandbox_config,logger)
clients['prod'] = SupersetClient(prod_config,logger)
logger.info("[COHERENCE_CHECK_PASSED] Клиенты для окружений успешно инициализированы", extra={"envs": list(clients.keys())})
return clients
except Exception as e:
logger.error(f"[ERROR] Ошибка инициализации клиентов: {str(e)}", exc_info=True)
raise
def search_datasets(
client: SupersetClient,
search_pattern: str,