add debug for retention
This commit is contained in:
@@ -81,10 +81,24 @@ def setup_clients(logger: SupersetLogger):
|
||||
)
|
||||
# [DEBUG] Sandbox config created: {sandbox_config.base_url}
|
||||
|
||||
# [INFO] Инициализация конфигурации для Preprod
|
||||
preprod_config = SupersetConfig(
|
||||
base_url="https://preprodta.bi.dwh.rusal.com/api/v1",
|
||||
auth={
|
||||
"provider": "db",
|
||||
"username": "migrate_user",
|
||||
"password": keyring.get_password("system", "preprod 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)
|
||||
clients['preprod'] = SupersetClient(preprod_config,logger)
|
||||
logger.info("[COHERENCE_CHECK_PASSED] Клиенты для окружений успешно инициализированы", extra={"envs": list(clients.keys())})
|
||||
return clients
|
||||
except Exception as e:
|
||||
@@ -175,7 +189,14 @@ def backup_dashboards(client: SupersetClient,
|
||||
if rotate_archive:
|
||||
# [ANCHOR] ARCHIVE_OLD_BACKUPS
|
||||
try:
|
||||
archive_exports(dashboard_dir, logger=logger, deduplicate=True)
|
||||
archive_exports(
|
||||
str(dashboard_dir),
|
||||
daily_retention=7, # Сохранять последние 7 дней
|
||||
weekly_retention=2, # Сохранять последние 2 недели
|
||||
monthly_retention=3, # Сохранять последние 3 месяца
|
||||
logger=logger,
|
||||
deduplicate=True
|
||||
)
|
||||
logger.debug(f"[DEBUG] Старые экспорты для '{dashboard_title}' архивированы.")
|
||||
except Exception as cleanup_error:
|
||||
logger.warning(
|
||||
@@ -214,7 +235,7 @@ def backup_dashboards(client: SupersetClient,
|
||||
if clean_folders:
|
||||
# [ANCHOR] Удаляем пустые папки
|
||||
try:
|
||||
dirs_count = remove_empty_directories(backup_root / env_name , logger=logger)
|
||||
dirs_count = remove_empty_directories(str(backup_root / env_name), logger=logger)
|
||||
logger.debug(f"[DEBUG] {dirs_count} пустых папок в '{backup_root / env_name }' удалены.")
|
||||
except Exception as clean_error:
|
||||
logger.warning(
|
||||
@@ -303,6 +324,15 @@ def main() -> int:
|
||||
rotate_archive=True,
|
||||
logger=logger
|
||||
)
|
||||
|
||||
# [ANCHOR] BACKUP_PROD_ENVIRONMENT
|
||||
preprod_success = backup_dashboards(
|
||||
clients['preprod'],
|
||||
"PREPROD",
|
||||
superset_backup_repo,
|
||||
rotate_archive=True,
|
||||
logger=logger
|
||||
)
|
||||
|
||||
# [ANCHOR] FINAL_REPORT
|
||||
# [INFO] Итоговый отчет о выполнении бэкапа
|
||||
@@ -311,6 +341,7 @@ def main() -> int:
|
||||
logger.info(f"[INFO] DEV: {'Успешно' if dev_success else 'С ошибками'}")
|
||||
logger.info(f"[INFO] SBX: {'Успешно' if sbx_success else 'С ошибками'}")
|
||||
logger.info(f"[INFO] PROD: {'Успешно' if prod_success else 'С ошибками'}")
|
||||
logger.info(f"[INFO] PREPROD: {'Успешно' if preprod_success else 'С ошибками'}")
|
||||
logger.info(f"[INFO] Полный лог доступен в: {log_dir}")
|
||||
|
||||
if not (dev_success and sbx_success and prod_success):
|
||||
|
||||
Reference in New Issue
Block a user