2 Commits
Author SHA1 Message Date
Ricardo MonlaandClaude Opus 4.6 faf46be84b [Bugfix] dasuten_restaurar_diferencial_dasu-sql4.rb — Escape rutas Windows
PROBLEMA:
- Script fallaba con "Invalid escape character syntax" en línea 71
- Ruby interpretaba \P, \M, \S como escapes inválidos
- Pipeline bkps fallaba en paso 5/6 (Restaurar diferencial)
- Orquestador continuaba al paso 6 aunque paso 5 fallaba

SOLUCIÓN:
- Escapar correctamente ruta de sqlcmd.exe: "C:\\Program Files\\..."
- Heredoc mantiene interpolación #{backup_name} para PowerShell

RESULTADO:
- Restore diferencial:  0.14s
- DBCC CHECKDB:  241.68s — Estado: OK
- Pipeline diferencial completo: 39.49 MB restaurados

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 08:32:50 -03:00
Ricardo Monla 3b73e0b053 [A04.P005] Extraído módulo común DasuExecutor para eliminar código repetido
Problema: 6 drones repetían el mismo patrón de ejecución remota:
- Base64 encoding de scripts PowerShell
- SSH vía srv-dasu con sshpass
- Lectura de JSON output desde dasu-sql4
- Verificación de archivos en fenix vía xp_cmdshell

Solución: adn/tools/cli/drones/lib/dasu_executor.rb

Funciones del módulo:
- execute_ps_on_dasu(ps_script) → ejecuta PowerShell en dasu-sql4
- read_json_from_dasu(path) → lee JSON output
- execute_ps_with_json_output(ps_script) → combina ambas
- execute_ps_on_fenix(client, ps_script) → PowerShell en fenix
- file_exists_on_fenix?(client, path) → verifica existencia
- get_file_info_on_fenix(client, path) → info completa de archivo

Drones refactorizados (líneas ahorradas):
- dasuten_restaurar_dasu-sql4.rb: 200 → 95 líneas (-52%)
- dasuten_restaurar_diferencial_dasu-sql4.rb: 207 → 100 líneas (-52%)
- dasuten_download_drive-dasu-sql4.rb: 269 → 130 líneas (-52%)
- dasuten_verificar-integridad_dasu-sql4.rb: 182 → 85 líneas (-53%)
- dasuten_exportar_srvv-fenix.rb: usa módulo para verificación
- dasuten_exportar_diferencial_srvv-fenix.rb: usa módulo para verificación

Beneficio: Si se modifica el patrón SSH/PowerShell, se cambia en 1 solo lugar.
2026-04-14 19:59:20 -03:00