# Plan: Migración dtic-BKPs a Tools ADN > **Grupo de Trabajo:** dtic-BKPs (Respaldos de Infraestructura) **Código:** A03.P001 **Fecha:** 06 de abril de 2026 **Autor:** Sistema ADN **Versión:** 1.0 **Estado:** ✅ COMPLETADO ## 📋 Resumen Ejecutivo La herramienta `dtic-BKPs v6.0` actualmente reside en el directorio raíz del repositorio (`dtic-BKPs/`) como un sistema independiente con su propio entrypoint (`dtic-BKPs.rb`), configuración YAML, librería interna (`lib/`) y logs propios. Esto contradice el principio de **Armonía Integral** del ADN, donde todas las herramientas deben integrarse bajo `./adn/tools/run `. Ya existe un intento previo parcial en `adn/tools/cli/backup.rb` (25KB) y `adn/tools/cli/backup/configurador.rb`, pero tiene bugs (el `--help` falla con `undefined local variable or method 'mostrar_ayuda'`). El objetivo es **completar la migración** integrando la lógica probada de `dtic-BKPs v6.0` en el ecosistema ADN, preservando la configuración YAML y los procesadores funcionales. ## 🎯 Objetivo Migrar `dtic-BKPs/` completamente a `adn/tools/cli/` para que: 1. Se invoque vía `./adn/tools/run bkps ` (consistente con el ecosistema). 2. La configuración YAML se centralice en `adn/tools/config/bkps.yml`. 3. Los procesadores (Proxmox, Xen, Rclone) se integren como módulos ADN. 4. Los logs se unifiquen con el sistema de logging ADN (`adn/tools/core/logger`). 5. El directorio `dtic-BKPs/` raíz quede deprecado y eventualmente archivado. ## 📊 Inventario Actual ### Fuente: `dtic-BKPs/` (a migrar) | Archivo | Tamaño | Función | | :--- | :--- | :--- | | `dtic-BKPs.rb` | 5.6 KB | Entrypoint, dispatcher, menú, auto-screen | | `dtic-BKPs.yml` | 2.3 KB | Configuración de tareas y comandos | | `lib/config.rb` | 1.7 KB | Parser de configuración YAML | | `lib/logger.rb` | 1.7 KB | Logger propio (duplica ADN Logger) | | `lib/menu.rb` | 5.9 KB | Menú interactivo con auto-avance | | `lib/proc_proxmox.rb` | 5.0 KB | Procesador de dumps Proxmox | | `lib/proc_xen.rb` | 2.7 KB | Procesador de backups XenServer | | `lib/sync_rclone.rb` | 1.5 KB | Sincronización rclone | ### Destino: `adn/tools/cli/` (existente parcial) | Archivo | Tamaño | Estado | | :--- | :--- | :--- | | `backup.rb` | 25.5 KB | ⚠️ Incompleto, `--help` roto | | `backup/configurador.rb` | 1.2 KB | ⚠️ Solo configurador | ## 📅 Fases de Implementación ### ✅ FASE 1: Auditoría y Diagnóstico (Completada 2026-04-06) - **1.1:** ✅ Analizado `adn/tools/cli/backup.rb` — 25KB con bugs (`mostrar_ayuda` undefined). - **1.2:** ✅ Comparado con `dtic-BKPs v6.0` — funcionalidad probada y estable. - **1.3:** ✅ Dependencias verificadas: rclone ✔, pv ✔, screen ✔. ### ✅ FASE 2: Migración a adn/tools/bkps/ (Completada 2026-04-06) - **2.1:** ✅ Creado `adn/tools/bkps/bkps.rb` — CLI `SubcomandoBkps` con subcomandos: help, list, run, status, menu. - **2.2:** ✅ Migrados procesadores a `adn/tools/bkps/lib/` — proc_proxmox.rb, proc_xen.rb, sync_rclone.rb, config.rb, menu.rb. - **2.3:** ✅ Configuración YAML copiada a `adn/tools/bkps/bkps.yml`. - **2.4:** ✅ Logger propio reemplazado por ADN Logger nativo. - **2.5:** ✅ Dispatcher (`adn/tools/run`) actualizado con ruta `'bkps'` → `ADN::SubcomandoBkps`. ### ✅ FASE 3: Auditoría de backup.rb legacy (Completada 2026-04-06) Análisis de `adn/tools/cli/backup.rb` (659 líneas, 25KB) — funcionalidades **diferentes** a las de dtic-BKPs v6.0: | Funcionalidad | Descripción | Asimilar? | | :--- | :--- | :---: | | `ejecutar_backup(nodo)` | Backup remoto individual vía vzdump+SSH+candados, auto-detección VMID/host desde nodos/*.md | ✅ | | Bitácora-First integrado | Auto-crear/actualizar evento en DB durante ejecución | ✅ | | `comando_estados` | Consulta en tiempo real de tareas vzdump en cluster Proxmox vía API JSON | ✅ | | `comando_sanear` | Saneamiento con retención configurable, exclusiones interactivas, borrado remoto | ✅ | | `predeterminar` | Persistencia de defaults vía Configurador | ⏳ | | `auto_reconciliar_bitacora` | Cierre automático de entradas pendientes cruzando con API Proxmox | ✅ | **Bugs encontrados:** `mostrar_ayuda` mal anidado (fuera de scope private), `end` desbalanceados (L620-658). ### ✅ FASE 4: Asimilación de funcionalidades de backup.rb (Completada 2026-04-06) - **4.1:** ✅ `bkps backup ` — backup remoto individual vía vzdump+SSH+candados con auto-detección de VMID/host. - **4.2:** ✅ `bkps estados` — consulta estado Proxmox en tiempo real vía API JSON. - **4.3:** ✅ `bkps sanear --dias N` — saneamiento con retención configurable, `--dry-run`, borrado remoto. - **4.4:** ✅ Auto-cierre de bitácora implementado como tool ADN `dron` (reutilizable para cualquier ámbito). ### ✅ FASE 5: Validación, Documentación y Deprecación (Completada 2026-04-06) - **5.1:** ✅ Pipeline C4 ejecutado exitosamente vía `./adn/tools/run bkps run C4 --batch` (23 sets, ~26min). - **5.2:** ✅ Armonía Integral aplicada: ámbito, contexto y plan actualizados. - **5.3:** ✅ Archivado: `dtic-BKPs/` → `_hist/dtic-BKPs/`, `backup.rb` → `adn/tools/cli/_hist/`. ## 🛠 Estructura Final ``` adn/tools/bkps/ # Tool principal (A03) ├── bkps.rb # CLI (11 subcomandos) ├── bkps.yml # Configuración YAML (tareas, retención 3 tiers) ├── cron-bkps.sh # Wrapper cron con lockfile + dron └── lib/ ├── config.rb # Parser YAML ├── menu.rb # Menú TUI interactivo ├── proc_proxmox.rb # Procesador Proxmox ├── proc_xen.rb # Procesador XEN └── sync_rclone.rb # Sincronización rclone adn/tools/cli/dron.rb # Dron de tareas largas (reutilizable) ``` ## 📌 Notas - Pipeline C4 ejecutado exitosamente el 2026-04-06 (23 sets Proxmox, ~26min). - Tool `dron` creada como herramienta ADN genérica: `./adn/tools/run dron {lanzar|vigilar|estado|limpiar}`. - Legacy archivado en `_hist/dtic-BKPs/` (standalone) y `adn/tools/cli/_hist/backup.rb` (intento previo).