[P2604-S14] Subcomando 'nodos info' — metadata de fichas como CLI
Nuevo subcomando: ./adn/tools/run nodos info <nodo> - Muestra IP, puerto SSH, usuario, auth, bóveda, host, SO, VMID - Lecturas directas de fichas nodos/*.md via NodosInfo - Campos no detectados se marcan como (no detectado) - Completa la arquitectura: info.rb es submódulo + herramienta CLI Ejemplo: nodos info pcv-dasu0 → IP, puerto 7022, DASUTEN\admindasu... - 15 tests, 0 failures - Evento 1079 (17:25→17:28)
This commit is contained in:
@@ -29,6 +29,8 @@ module ADN
|
||||
accion = @args.shift
|
||||
|
||||
case accion
|
||||
when 'info'
|
||||
info_nodo
|
||||
when 'agrupar'
|
||||
agrupar_nodos
|
||||
when 'listar'
|
||||
@@ -53,6 +55,7 @@ module ADN
|
||||
#{Color::YELLOW}Uso:#{Color::RESET} ./adn/tools/run nodos <acción> [opciones]
|
||||
|
||||
#{Color::YELLOW}Acciones:#{Color::RESET}
|
||||
info <nodo> Mostrar metadata completa de un nodo
|
||||
agrupar [--servidor SRV] Agrupar VMs por servidor anfitrión
|
||||
listar [--tipo TIPO] Listar todos los nodos (fichas .md)
|
||||
buscar <término> Buscar nodos por nombre o contenido
|
||||
@@ -64,6 +67,7 @@ module ADN
|
||||
--tipo TIPO Filtrar por prefijo (srv, srvv, pcv, pc, cam, dc, sql)
|
||||
|
||||
#{Color::YELLOW}Ejemplos:#{Color::RESET}
|
||||
./adn/tools/run nodos info srv-dasu
|
||||
./adn/tools/run nodos agrupar
|
||||
./adn/tools/run nodos agrupar --servidor srv-pmox1
|
||||
./adn/tools/run nodos listar
|
||||
@@ -71,6 +75,44 @@ module ADN
|
||||
./adn/tools/run nodos buscar dasuten
|
||||
AYUDA
|
||||
end
|
||||
# ─── Info ───────────────────────────────────────────────────────────
|
||||
|
||||
def info_nodo
|
||||
nombre = @args.shift
|
||||
unless nombre
|
||||
puts "#{Color::RED}✗ Se requiere nombre del nodo#{Color::RESET}"
|
||||
puts " Uso: ./adn/tools/run nodos info <nodo>"
|
||||
return
|
||||
end
|
||||
|
||||
metadata = ADN::NodosInfo.extraer_metadata(nombre)
|
||||
unless metadata
|
||||
puts "#{Color::RED}✗ Nodo '#{nombre}' no encontrado en nodos/#{Color::RESET}"
|
||||
return
|
||||
end
|
||||
|
||||
puts "#{Color::CYAN}🖥️ Ficha: #{nombre}#{Color::RESET}"
|
||||
puts "#{Color::DIM}#{'─' * 50}#{Color::RESET}"
|
||||
|
||||
campos = {
|
||||
'IP' => metadata[:ip],
|
||||
'Puerto SSH' => metadata[:puerto_ssh],
|
||||
'Usuario' => metadata[:usuario],
|
||||
'Auth' => metadata[:auth_type],
|
||||
'Bóveda' => metadata[:clave_boveda],
|
||||
'Host' => metadata[:host],
|
||||
'SO' => metadata[:so],
|
||||
'VMID' => metadata[:vmid]
|
||||
}
|
||||
|
||||
campos.each do |label, valor|
|
||||
valor_str = valor ? valor.to_s : "#{Color::DIM}(no detectado)#{Color::RESET}"
|
||||
printf " #{Color::BOLD}%-14s#{Color::RESET} %s\n", label, valor_str
|
||||
end
|
||||
|
||||
puts "#{Color::DIM}#{'─' * 50}#{Color::RESET}"
|
||||
puts "#{Color::DIM} Fuente: nodos/#{nombre}.md#{Color::RESET}"
|
||||
end
|
||||
|
||||
# ─── Agrupar ────────────────────────────────────────────────────────
|
||||
|
||||
|
||||
@@ -156,6 +156,7 @@ Mejoras atómicas, incrementales y reutilizables. Una herramienta por vez.
|
||||
| S11 | Crear CLI `ssh` — ejecución remota reutilizable via `candados` + `EjecutorRemoto` | Herramienta | ✅ |
|
||||
| S12 | Refactorizar `ssh.rb` — leer datos de fichas via `NodosInfo`, eliminar hash hardcodeado | Refactor | ✅ |
|
||||
| S13 | Consolidar `core/` — mover lógica de dominio a submódulos CLI (`nodos_info`→`nodos/`, etc.) | Arquitectura | ✅ |
|
||||
| S14 | Agregar subcomando `nodos info <nodo>` — exponer metadata de fichas como herramienta CLI | Herramienta | ✅ |
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user