fix(dron): corregir ámbito/nodo de registro en bitácora para pipeline DASUTEN

Bug 2 — proc_dasuten.rb:
- Separa nodo operacional (srvv-fenix, srv-ns8, etc.) del nodo de bitácora
- Registro siempre bajo nodo=dtic-BKPs / ámbito=dtic-DIIAA
- Agrega constantes NODO_BITACORA y AMBITO_BITACORA

Bug 3 — ejecutor.rb (detectar_nodo_id):
- Ignoraba el parámetro 'nodo' y siempre usaba Socket.gethostname
- Fix: usa el nombre pasado para lookup en DB
- Fallback a hostname local solo si nodo es nil/empty o no existe en DB
- Segundo fallback a hostname si el nodo pasado tampoco existe en DB

DB: creado nodo 'dtic-BKPs' (ID:49, tipo:servicio, ámbito:dtic-DIIAA)

Refs: A04.P006 — Pipeline DASUTEN / A03 BKPs
This commit is contained in:
Ricardo Monla
2026-04-21 08:30:32 -03:00
parent a6ed2ca771
commit d4ea8c0bcd
2 changed files with 23 additions and 7 deletions
+13 -3
View File
@@ -295,13 +295,23 @@ module Dron
return nodo if nodo.is_a?(Integer)
require 'socket'
hostname = Socket.gethostname.downcase
# Usar el nodo pasado como parámetro; fallback al hostname local si es nil/empty
nombre_buscar = nodo.to_s.strip.downcase
if nombre_buscar.empty?
nombre_buscar = Socket.gethostname.downcase
end
resultado = nil
BitacorasDB::BitacoraDB.with_connection do |db|
resultado = db.execute('SELECT id FROM nodos WHERE LOWER(nombre) = $1 LIMIT 1', [hostname])
resultado = db.execute('SELECT id FROM nodos WHERE LOWER(nombre) = $1 LIMIT 1', [nombre_buscar])
if resultado.nil? || resultado.ntuples == 0
resultado = db.execute('SELECT id FROM nodos WHERE LOWER(nombre) LIKE $1 LIMIT 1', ["#{hostname}%"])
resultado = db.execute('SELECT id FROM nodos WHERE LOWER(nombre) LIKE $1 LIMIT 1', ["#{nombre_buscar}%"])
end
# Último fallback: hostname local si el nodo pasado no existe en DB
if (resultado.nil? || resultado.ntuples == 0) && nombre_buscar != Socket.gethostname.downcase
hostname = Socket.gethostname.downcase
resultado = db.execute('SELECT id FROM nodos WHERE LOWER(nombre) = $1 LIMIT 1', [hostname])
end
end