[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
|
accion = @args.shift
|
||||||
|
|
||||||
case accion
|
case accion
|
||||||
|
when 'info'
|
||||||
|
info_nodo
|
||||||
when 'agrupar'
|
when 'agrupar'
|
||||||
agrupar_nodos
|
agrupar_nodos
|
||||||
when 'listar'
|
when 'listar'
|
||||||
@@ -53,6 +55,7 @@ module ADN
|
|||||||
#{Color::YELLOW}Uso:#{Color::RESET} ./adn/tools/run nodos <acción> [opciones]
|
#{Color::YELLOW}Uso:#{Color::RESET} ./adn/tools/run nodos <acción> [opciones]
|
||||||
|
|
||||||
#{Color::YELLOW}Acciones:#{Color::RESET}
|
#{Color::YELLOW}Acciones:#{Color::RESET}
|
||||||
|
info <nodo> Mostrar metadata completa de un nodo
|
||||||
agrupar [--servidor SRV] Agrupar VMs por servidor anfitrión
|
agrupar [--servidor SRV] Agrupar VMs por servidor anfitrión
|
||||||
listar [--tipo TIPO] Listar todos los nodos (fichas .md)
|
listar [--tipo TIPO] Listar todos los nodos (fichas .md)
|
||||||
buscar <término> Buscar nodos por nombre o contenido
|
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)
|
--tipo TIPO Filtrar por prefijo (srv, srvv, pcv, pc, cam, dc, sql)
|
||||||
|
|
||||||
#{Color::YELLOW}Ejemplos:#{Color::RESET}
|
#{Color::YELLOW}Ejemplos:#{Color::RESET}
|
||||||
|
./adn/tools/run nodos info srv-dasu
|
||||||
./adn/tools/run nodos agrupar
|
./adn/tools/run nodos agrupar
|
||||||
./adn/tools/run nodos agrupar --servidor srv-pmox1
|
./adn/tools/run nodos agrupar --servidor srv-pmox1
|
||||||
./adn/tools/run nodos listar
|
./adn/tools/run nodos listar
|
||||||
@@ -71,6 +75,44 @@ module ADN
|
|||||||
./adn/tools/run nodos buscar dasuten
|
./adn/tools/run nodos buscar dasuten
|
||||||
AYUDA
|
AYUDA
|
||||||
end
|
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 ────────────────────────────────────────────────────────
|
# ─── 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 | ✅ |
|
| 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 | ✅ |
|
| 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 | ✅ |
|
| 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