# Backup DB
# ---------------------------------------------------------
def backup() -> Dict[str, Any]:
-
+
hosts_result = store_hosts()
aliases_result = store_aliases()
errors = (hosts_result.get("errors") or []) + (aliases_result.get("errors") or [])
except Exception as e:
logger.exception("Cleanup failed %s", str(e).strip())
raise
-
+
hosts_result = restore_hosts()
aliases_result = restore_aliases()
errors = (hosts_result.get("errors") or []) + (aliases_result.get("errors") or [])
# API ENDPOINTS
# ---------------------------------------------------------
@router.get(
- "/api/backup",
- status_code=status.HTTP_200_OK,
+ "/api/backup",
+ status_code=status.HTTP_200_OK,
responses={
200: {"description": "Backup executed with success or failure result"},
500: {"description": "Internal server error"},
# Backup DB
result = backup()
errors = result.get("errors") or []
-
+
took_ms = (time.monotonic_ns() - start_ns) / 1_000_000
-
+
if errors:
logger.warning("Backup executed with %d error(s)", len(errors))
return {
# API: Restore from backup
# ---------------------------------------------------------
@router.get(
- "/api/restore",
- status_code=status.HTTP_200_OK,
+ "/api/restore",
+ status_code=status.HTTP_200_OK,
responses={
200: {"description": "Restore executed with success or failure result"},
500: {"description": "Internal server error"},
# Restore hosts DB
result = restore()
errors = (result.get("errors") or [])
-
+
took_ms = (time.monotonic_ns() - start_ns) / 1_000_000
+
if errors:
return {
"code": "RESTORE_ERROR",
"took_ms": took_ms,
},
)
+