CreaRack-SL

Comando unassign_ghost_profiles — limpieza de fichas fantasma tras un restore

Entidadactivecreado Tue Sep 22#network#racks#backup#django#reliability#ops

Propósito

Cuando se restaura una copia de seguridad, una ficha de solo-ping (un equipo detectado pero nunca identificado) podía aterrizar en una página de producto de cartelería (Signage) sin haber sido verificada. El caso real: la restauración del 21-08 dejó 104 fichas fantasma asignadas a páginas, con sus sondas encendidas. unassign_ghost_profiles es el comando de limpieza para ese escenario.

Contrato

python manage.py unassign_ghost_profiles — dry-run por defecto (solo informa cuántas fichas tocaría); requiere una flag explícita para aplicar el cambio. No borra ningún equipo ni ficha: solo retira la asignación de página y apaga la sonda de las fichas fantasma (equipos con discovery_method que indica ping puro, sin verificación posterior).

La guarda que motivó el comando vive en network/services/page_assignment.py: al restaurar, racks/api/export/restore.py solo asigna página automáticamente si discovery_method="ping" — una ficha creada a mano o de un ZIP viejo (confianza 0, sin método) conserva su página tal cual estaba.

Dependencias

  • racks/api/export/restore.py — dispara la guarda de asignación durante un restore.
  • network/services/page_assignment.py — lógica compartida de asignación/retirada de página.
  • Tests: tests/network/test_ghost_profiles_305.py (126 líneas, cubre el ciclo completo dry-run → aplicar).

Ejemplo de uso

python manage.py unassign_ghost_profiles           # dry-run, solo informa
python manage.py unassign_ghost_profiles --apply    # aplica el cambio

Commits relacionados

  • 65afcba1 (13-09-2026) — comando + guarda discovery_method=ping, v1.132.10 (task #305). Incluye un segundo commit el mismo día endureciendo la guarda tras romper test_backup_scope en CI.

Véase también

  • [[feature—network—deep-discovery-batch-dispatch]]
  • [[feature—monitoring—group-report-button]]
  • [[incident—20260917—notificacion-agente-retraso-transaction-on-commit]]