From 4ff2dc5e8ecd2ef3d2a144d5db31e001f1151562 Mon Sep 17 00:00:00 2001 From: Ricardo Monla Date: Sun, 15 Mar 2026 17:26:44 -0300 Subject: [PATCH] =?UTF-8?q?[P2604-S14]=20Subcomando=20'nodos=20info'=20?= =?UTF-8?q?=E2=80=94=20metadata=20de=20fichas=20como=20CLI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Nuevo subcomando: ./adn/tools/run nodos info - 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) --- adn/tools/cli/nodos.rb | 42 +++++++++++++++++++ .../p2604_mejoras_ADN/P2604_mejoras_ADN.md | 1 + 2 files changed, 43 insertions(+) diff --git a/adn/tools/cli/nodos.rb b/adn/tools/cli/nodos.rb index 264289eb..bd6fdc68 100644 --- a/adn/tools/cli/nodos.rb +++ b/adn/tools/cli/nodos.rb @@ -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 [opciones] #{Color::YELLOW}Acciones:#{Color::RESET} + info 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 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 " + 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 ──────────────────────────────────────────────────────── diff --git a/docs/proy/p2604_mejoras_ADN/P2604_mejoras_ADN.md b/docs/proy/p2604_mejoras_ADN/P2604_mejoras_ADN.md index 0c8fc5a2..13e7838c 100644 --- a/docs/proy/p2604_mejoras_ADN/P2604_mejoras_ADN.md +++ b/docs/proy/p2604_mejoras_ADN/P2604_mejoras_ADN.md @@ -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 ` — exponer metadata de fichas como herramienta CLI | Herramienta | ✅ | ---