CreaRack-SL

El informe final del restore agrupa por bloques de producto: creado, actualizado, omitido (v1.77.0)

Valor para el usuario

Hasta ahora, el informe que aparecía al terminar una restauración era una tabla de ~30 filas técnicas — una por cada tipo de dato interno (monitoring_targets, sla_policies, port_connections…) — que “informaba poco y mal” (petición de Edu). Desde v1.77.0 esas filas se agrupan en los MISMOS bloques del árbol que ya usan el diálogo de creación (v1.74.0) y el modal de restauración (v1.76.0): Racks & equipos, Mapas/Filas/Salas, Monitoring, Fichas (Wireless/UPS/DSM), Digital Signage, Observatory/ITSM, Terminal, Cables y Catálogo — con tres cifras por bloque: creado, actualizado y omitido. Arriba, una única frase de veredicto resume el resultado, adaptada al modo elegido (añadir vs. actualizar, ver [[feature—backup-restore—modo-actualizar-v1-75-0]]) y al desenlace (todo aplicado, algo se quedó fuera, o hay anomalías). El detalle fino por tipo de elemento solo se despliega si de verdad algo quedó fuera — con un restore limpio no hay nada que desplegar.

Cuarta y última pieza de la ventana del task #236 (grill del 21-08). Con esto queda entregado el ciclo completo: crear eligiendo qué viaja ([[feature—backup-restore—creacion-selectiva-v1-74-0]]) → restaurar viendo el mismo árbol ([[feature—backup-restore—restauracion-arbol-v1-76-0]]) → actualizar sin duplicar ([[feature—backup-restore—modo-actualizar-v1-75-0]]) → informe claro (esta pieza).

Cómo usarla

  1. Tras aplicar una restauración (modo añadir o actualizar), se abre el modal de informe.
  2. La tabla principal muestra un bloque por cada sección del árbol de producto, con las columnas In backup / Created / Updated / Skipped-existed — solo se listan los bloques con contenido esperado (expected > 0).
  3. Arriba, una frase de veredicto: completo (todo aplicado), con omitidos (parte se quedó fuera por selección del usuario o porque el modo añadir no machaca lo existente), o con anomalías (se aplicó más de lo que la maleta declaraba).
  4. Si algún bloque tuvo elementos omitidos, o hubo anomalías, aparece un desplegable “Details by item type” con el desglose fino por tipo de dato (el nivel de detalle que antes era la única vista).
  5. Cerrar el informe recarga la página.

Implementación

  • static/js/base.js (openReportModal()): nueva constante BLOCKS — 9 grupos que mapean las claves de verification.entities (el mismo diccionario que ya devolvía el backend) a los bloques visuales del árbol compartido con creación/restauración. La función sum(keys, field) agrega expected/created/updated/already_existed_or_skipped de todas las claves de un bloque; solo se pinta una fila si expected > 0.
  • El veredicto pasa de 2 a 4 frases posibles: se introduce verification.ok (anomalías: se aplicó más de lo declarado) e isUpdate (result.mode === 'update') para elegir el texto correcto entre “todo aplicado” (modo añadir), “todo aplicado, lo existente se actualizó” (modo actualizar), “con omitidos” y “con anomalías”.
  • El desplegable #restore-report-detail (nuevo <details> en templates/base.html) solo se muestra (style.display) cuando totalSkipped > 0 o !verification.ok; su cuerpo reutiliza el desglose fino anterior (una fila por clave cruda de entities, filtrando las que tienen already_existed_or_skipped > 0).
  • templates/base.html: la tabla principal gana la columna “Updated” (antes solo Expected/Created/Already existed); cache-busting base.js?v=5 → ?v=6.
  • i18n: 12 strings nuevos EN+ES vía scripts/i18n/add_restore_report_strings.py (mismo patrón polib de las piezas anteriores de esta ventana).
  • No hubo cambios de backend: verification.entities, verification.ok y result.mode ya existían en la respuesta del job de restore; esta pieza es puramente de presentación (agregación + copy) sobre datos que el motor de v1.75.0/v1.76.0 ya calculaba.

Commits relacionados

  • 41b58308 (2026-08-21) — feat(backups): informe del restore por bloques de producto con creado/actualizado/omitido - v1.77.0 (task #236 ventana, pieza final) (#408).

Véase también

  • [[feature—backup-restore—restauracion-arbol-v1-76-0]]
  • [[feature—backup-restore—modo-actualizar-v1-75-0]]
  • [[feature—backup-restore—creacion-selectiva-v1-74-0]]
  • [[feature—backup-restore—extended-domains-v1-70-0]]
  • [[feature—backup-restore—manifest-verificacion-v1-69-0]]
  • [[feature—racks—backup-restore-async-v156]]
  • [[feature—racks—restore-selectivo-v171]]
  • [[crearack-tech—admin—backup-restore]]