semantic checker script update
This commit is contained in:
@@ -30,8 +30,9 @@ class Migration:
|
||||
"""
|
||||
Интерактивный процесс миграции дашбордов.
|
||||
"""
|
||||
# [DEF:Migration.__init__:Function]
|
||||
# [DEF:__init__:Function]
|
||||
# @PURPOSE: Инициализирует сервис миграции, настраивает логгер и начальные состояния.
|
||||
# @PRE: None.
|
||||
# @POST: `self.logger` готов к использованию; `enable_delete_on_failure` = `False`.
|
||||
def __init__(self) -> None:
|
||||
default_log_dir = Path.cwd() / "logs"
|
||||
@@ -47,9 +48,9 @@ class Migration:
|
||||
self.dashboards_to_migrate: List[dict] = []
|
||||
self.db_config_replacement: Optional[dict] = None
|
||||
self._failed_imports: List[dict] = []
|
||||
# [/DEF:Migration.__init__:Function]
|
||||
# [/DEF:__init__:Function]
|
||||
|
||||
# [DEF:Migration.run:Function]
|
||||
# [DEF:run:Function]
|
||||
# @PURPOSE: Точка входа – последовательный запуск всех шагов миграции.
|
||||
# @PRE: Логгер готов.
|
||||
# @POST: Скрипт завершён, пользователю выведено сообщение.
|
||||
@@ -66,9 +67,9 @@ class Migration:
|
||||
self.confirm_db_config_replacement()
|
||||
self.execute_migration()
|
||||
self.logger.info("[run][Exit] Скрипт миграции завершён.")
|
||||
# [/DEF:Migration.run:Function]
|
||||
# [/DEF:run:Function]
|
||||
|
||||
# [DEF:Migration.ask_delete_on_failure:Function]
|
||||
# [DEF:ask_delete_on_failure:Function]
|
||||
# @PURPOSE: Запрашивает у пользователя, следует ли удалять дашборд при ошибке импорта.
|
||||
# @POST: `self.enable_delete_on_failure` установлен.
|
||||
# @RELATION: CALLS -> yesno
|
||||
@@ -81,9 +82,9 @@ class Migration:
|
||||
"[ask_delete_on_failure][State] Delete-on-failure = %s",
|
||||
self.enable_delete_on_failure,
|
||||
)
|
||||
# [/DEF:Migration.ask_delete_on_failure:Function]
|
||||
# [/DEF:ask_delete_on_failure:Function]
|
||||
|
||||
# [DEF:Migration.select_environments:Function]
|
||||
# [DEF:select_environments:Function]
|
||||
# @PURPOSE: Позволяет пользователю выбрать исходное и целевое окружения Superset.
|
||||
# @PRE: `setup_clients` успешно инициализирует все клиенты.
|
||||
# @POST: `self.from_c` и `self.to_c` установлены.
|
||||
@@ -122,9 +123,9 @@ class Migration:
|
||||
self.to_c = all_clients[to_env_name]
|
||||
self.logger.info("[select_environments][State] to = %s", to_env_name)
|
||||
self.logger.info("[select_environments][Exit] Шаг 1 завершён.")
|
||||
# [/DEF:Migration.select_environments:Function]
|
||||
# [/DEF:select_environments:Function]
|
||||
|
||||
# [DEF:Migration.select_dashboards:Function]
|
||||
# [DEF:select_dashboards:Function]
|
||||
# @PURPOSE: Позволяет пользователю выбрать набор дашбордов для миграции.
|
||||
# @PRE: `self.from_c` инициализирован.
|
||||
# @POST: `self.dashboards_to_migrate` заполнен.
|
||||
@@ -179,9 +180,9 @@ class Migration:
|
||||
self.logger.error("[select_dashboards][Failure] %s", e, exc_info=True)
|
||||
msgbox("Ошибка", "Не удалось получить список дашбордов.")
|
||||
self.logger.info("[select_dashboards][Exit] Шаг 2 завершён.")
|
||||
# [/DEF:Migration.select_dashboards:Function]
|
||||
# [/DEF:select_dashboards:Function]
|
||||
|
||||
# [DEF:Migration.confirm_db_config_replacement:Function]
|
||||
# [DEF:confirm_db_config_replacement:Function]
|
||||
# @PURPOSE: Запрашивает у пользователя, требуется ли заменить имена БД в YAML-файлах.
|
||||
# @POST: `self.db_config_replacement` либо `None`, либо заполнен.
|
||||
# @RELATION: CALLS -> yesno
|
||||
@@ -214,9 +215,9 @@ class Migration:
|
||||
self.logger.info("[confirm_db_config_replacement][State] Replacement set: %s", self.db_config_replacement)
|
||||
else:
|
||||
self.logger.info("[confirm_db_config_replacement][State] Skipped.")
|
||||
# [/DEF:Migration.confirm_db_config_replacement:Function]
|
||||
# [/DEF:confirm_db_config_replacement:Function]
|
||||
|
||||
# [DEF:Migration._select_databases:Function]
|
||||
# [DEF:_select_databases:Function]
|
||||
# @PURPOSE: Позволяет пользователю выбрать исходную и целевую БД через API.
|
||||
# @POST: Возвращает кортеж (старая БД, новая БД) или (None, None) при отмене.
|
||||
# @RELATION: CALLS -> self.from_c.get_databases
|
||||
@@ -293,9 +294,9 @@ class Migration:
|
||||
|
||||
self.logger.info("[_select_databases][Exit] Selected databases: %s -> %s", from_db.get("database_name", "Без имени"), to_db.get("database_name", "Без имени"))
|
||||
return from_db, to_db
|
||||
# [/DEF:Migration._select_databases:Function]
|
||||
# [/DEF:_select_databases:Function]
|
||||
|
||||
# [DEF:Migration._batch_delete_by_ids:Function]
|
||||
# [DEF:_batch_delete_by_ids:Function]
|
||||
# @PURPOSE: Удаляет набор дашбордов по их ID единым запросом.
|
||||
# @PRE: `ids` – непустой список целых чисел.
|
||||
# @POST: Все указанные дашборды удалены (если они существовали).
|
||||
@@ -319,9 +320,9 @@ class Migration:
|
||||
self.logger.warning("[_batch_delete_by_ids][Warning] Unexpected delete response: %s", response)
|
||||
else:
|
||||
self.logger.info("[_batch_delete_by_ids][Success] Delete request completed.")
|
||||
# [/DEF:Migration._batch_delete_by_ids:Function]
|
||||
# [/DEF:_batch_delete_by_ids:Function]
|
||||
|
||||
# [DEF:Migration.execute_migration:Function]
|
||||
# [DEF:execute_migration:Function]
|
||||
# @PURPOSE: Выполняет экспорт-импорт дашбордов, обрабатывает ошибки и, при необходимости, выполняет процедуру восстановления.
|
||||
# @PRE: `self.dashboards_to_migrate` не пуст; `self.from_c` и `self.to_c` инициализированы.
|
||||
# @POST: Успешные дашборды импортированы; неудачные - восстановлены или залогированы.
|
||||
@@ -391,7 +392,7 @@ class Migration:
|
||||
|
||||
self.logger.info("[execute_migration][Exit] Migration finished.")
|
||||
msgbox("Информация", "Миграция завершена!")
|
||||
# [/DEF:Migration.execute_migration:Function]
|
||||
# [/DEF:execute_migration:Function]
|
||||
|
||||
# [/DEF:Migration:Class]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user