Volver a la wiki

Restore selectivo por rack + informe de verificación del restore (v1.71.0)

User value

Hasta v1.71.0, restaurar un backup completo era todo o nada: se subía el ZIP y aparecía el contenido entero de la organización origen, sin poder elegir qué entraba ni saber de antemano qué había dentro. Task #236 (PR-2) resuelve las dos partes del problema:

  1. Elegir qué racks restaurar. Al seleccionar el ZIP, CreaRack lo inspecciona primero (sin tocar la base de datos) y muestra de qué organización era, cuándo se hizo, sus conteos y la lista de racks — con checkboxes para marcar cuáles quieres traer. Todo lo que cuelga de un rack no elegido (sus devices, cables, monitorización, colocaciones de mapa) se queda fuera limpiamente. Lo transversal (stencils, grupos, scripts, ITSM, Signage) viaja siempre y deduplica solo. Marcar todo equivale al restore completo clásico de siempre.
  2. El restore rinde cuentas. Al terminar, en vez de recargar la página a ciegas, aparece un modal con un informe esperado-vs-creado por entidad: qué declaraba la maleta (ya filtrada por la selección), qué se creó de verdad, y qué ya existía o se omitió por deduplicación.

Es la pieza que permite mudar racks concretos entre organizaciones (caso “Dos Casas”, task #235) sin podar ~100 racks a mano.

Cómo usarla

  1. Admin → Backup & Restore → seleccionar fichero ZIP.
  2. El cliente llama a POST /api/racks/restore/full/preview (nuevo endpoint, no persiste nada) y abre el modal restore-select-modal con la lista de racks y el resumen del manifest.
  3. El usuario marca los racks a restaurar (botón “All/None” para marcar/desmarcar todos) y confirma.
  4. POST /api/racks/restore/full recibe además rack_ids (CSV de IDs de la maleta); vacío o todo-marcado = restore completo clásico.
  5. La tarea Huey run_full_restore aplica el restore y guarda {counts, verification, selective} en el resultado del AsyncJob.
  6. Al terminar el polling, el modal restore-report-modal muestra el veredicto y la tabla esperado/creado/ya-existía por entidad, con un botón “Close & Reload”.

Implementación

Commits relacionados

Véase también

Subir