[A04.P006] Documentado módulo común DasuExecutor

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.
This commit is contained in:
Ricardo Monla
2026-04-14 19:59:51 -03:00
parent 3b73e0b053
commit bc1f42db1f
@@ -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 - El siguiente dron lee el JSON del anterior para obtener contexto
- Formato: `{"paso": "...", "backup_local": "...", "duracion": N, ...}` - 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 ## 🔗 Referencias
- **Ámbito A03:** [A03_dtic-BKPs.md](../dtic-BKPs/A03_dtic-BKPs.md) - **Á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 | 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 | 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 | 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 |