Volver a la wiki

Las gráficas de SAI, vivas de fábrica — walk_first, validación de tipos OID y guardia de frescura (task #255, v1.82.5)

Valor para el usuario

La mitad de las gráficas de la pantalla de SAI (UPS Monitor) no podían pintar NUNCA, para ningún fabricante, desde que existe la pantalla: los perfiles de 14 modelos de SAI (y switches Arista/Aruba/Huawei/Juniper, Synology, Raritan — 12 claves en 21 perfiles) declaraban un modo de lectura SNMP (walk_first) que el programa Agente jamás llegó a implementar — el dato se descartaba en silencio, sin error visible en ningún registro. A partir de esta versión el modo ya está implementado (viaja con el próximo release del Agente) y el sistema rechaza al guardar cualquier modo de lectura que el Agente no sepa leer, para que el fallo no vuelva a colarse sin avisar. De regalo: la pantalla de SAI hereda la misma protección que Wireless estrenó diez días antes — un SAI apagado ya no puede presentarse “online” con los datos de su última foto (en un SAI, eso es un dato de seguridad eléctrica) — y la ficha del SAI muestra por fin de cuándo es esa foto.

Cómo usarla

Implementación

walk_first en el Agente (terminal/agent/sentinel/snmp_extras.py)

Cuarto tipo de lectura SNMP, junto a gauge (GET escalar), walk_sum (WALK + suma) y walk_count (WALK + cuenta filas):

Validación al escribir (monitoring/api/schemas.py)

Test de contrato (tests/network/test_vendor_profile_oid_types.py, nuevo)

Tres tests que cierran el círculo completo entre servidor, Agente y el origen del desajuste:

  1. test_supported_set_matches_agent_dispatch: lee el código real de snmp_extras.py y comprueba que AGENT_SUPPORTED_OID_TYPES no promete más de lo que el Agente implementa.
  2. test_ningun_vendor_profile_declara_un_tipo_que_el_agente_no_implementa: recorre los VendorProfile sembrados por migración y falla si alguno declara un tipo sin soporte.
  3. test_mib_assistant_solo_ofrece_tipos_implementados: comprueba que el prompt del MIB assistant (el origen del desajuste original) no vuelva a ofrecer un tipo sin implementación.

Guardia de frescura portada de Wireless (monitoring/api/ups.py)

Mismo criterio y mismo motivo que [[feature—wireless—clientes-vivos-ahora]] (task #225): _ups_status() dejó de considerar “online” a un SAI con deep_snmp_data pero sin target vivo.

Pieza 3: la tarjeta de grupo de Wireless, el fleco que quedó fuera de la #225

De paso, get_wireless_group_summary() (que sumaba clientes de fotos viejas, el mismo fallo que el resumen general) se cerró en este mismo commit — detalle en [[feature—wireless—clientes-vivos-ahora]].

Deuda declarada

El .exe del Agente Local que implementa walk_first no se publica en este ciclo: AGENT_VERSION queda sin tocar a propósito (bump = compilar y publicar release en el mismo ciclo). Hasta que el usuario actualice el Agente instalado, las gráficas afectadas siguen sin datos.

Commits relacionados

Véase también

Subir