From bc1f42db1ffebefcc63986789501d3da78034b97 Mon Sep 17 00:00:00 2001 From: Ricardo Monla Date: Tue, 14 Apr 2026 19:59:51 -0300 Subject: [PATCH] =?UTF-8?q?[A04.P006]=20Documentado=20m=C3=B3dulo=20com?= =?UTF-8?q?=C3=BAn=20DasuExecutor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Agregada sección sobre el módulo dasu_executor.rb: - Funciones disponibles y su propósito - Ejemplo de uso - Beneficios de mantenibilidad Agregada lección aprendida sobre refactorización. --- .../dtic-DASUTEN/A04.P006_Backups-DASUTEN.md | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/docs/ambito/dtic-DASUTEN/A04.P006_Backups-DASUTEN.md b/docs/ambito/dtic-DASUTEN/A04.P006_Backups-DASUTEN.md index d2f7fd71..1174b466 100644 --- a/docs/ambito/dtic-DASUTEN/A04.P006_Backups-DASUTEN.md +++ b/docs/ambito/dtic-DASUTEN/A04.P006_Backups-DASUTEN.md @@ -204,6 +204,35 @@ El procesador `Dasuten` fue integrado en `bkps.rb` como un nuevo tipo de tarea: - El siguiente dron lee el JSON del anterior para obtener contexto - Formato: `{"paso": "...", "backup_local": "...", "duracion": N, ...}` +### Módulo Común: `dasu_executor.rb` + +Para evitar código repetido, los drones que se comunican con `dasu-sql4` o `srvv-fenix` usan el módulo `DasuExecutor`: + +```ruby +require_relative 'lib/dasu_executor' + +# Ejecutar PowerShell en dasu-sql4 vía srv-dasu +DasuExecutor.execute_ps_on_dasu(ps_script, output_path: 'C:\temp\output.json') + +# Leer JSON desde dasu-sql4 +resultado = DasuExecutor.read_json_from_dasu('C:\temp\output.json') + +# Verificar archivo en fenix (share X:) +file_info = DasuExecutor.get_file_info_on_fenix(client, 'X:\backup.bak') +``` + +**Funciones disponibles:** + +| Función | Propósito | +|---------|-----------| +| `execute_ps_on_dasu(ps_script, output_path:)` | Ejecuta PowerShell en dasu-sql4 vía SSH | +| `read_json_from_dasu(output_path)` | Lee y parsea JSON desde dasu-sql4 | +| `execute_ps_on_fenix(client, ps_script)` | Ejecuta PowerShell en fenix vía xp_cmdshell | +| `file_exists_on_fenix?(client, path)` | Verifica si existe archivo en fenix | +| `get_file_info_on_fenix(client, path)` | Obtiene tamaño y existencia de archivo | + +**Beneficio:** El patrón SSH/PowerShell se define en **un solo lugar**. Si cambia, se actualiza solo el módulo. + ## 🔗 Referencias - **Ámbito A03:** [A03_dtic-BKPs.md](../dtic-BKPs/A03_dtic-BKPs.md) @@ -221,3 +250,4 @@ El procesador `Dasuten` fue integrado en `bkps.rb` como un nuevo tipo de tarea: | 2026-04-14 | Download dron requiere `--file-id` o leer desde upload output | Error por falta de parámetro | | 2026-04-14 | Pipeline diferencial: 0.39 MB vs 1.3 GB completo | 90% más rápido para refrescos diarios | | 2026-04-14 | Un solo destino (X:) vs 3 directorios | Menos puntos de falla, más simple | +| 2026-04-14 | Módulo común DasuExecutor: 6 drones, 1 solo patrón | -52% código, mantenibilidad |