Files
napalm-redfish/CHANGELOG.md
T
christianmanivong 332e6090a7 feat: read-only IPMI driver; report a missing Redfish license (0.2.0)
A Supermicro X10DRL-i refuses Redfish without a license (SUM, DCMS or
OOB), even the service root. IPMI answers without one.

- New entry point `ipmi` (napalm_redfish.ipmi.IpmiDriver) on
  ManagementControllerDriver, over pyghmi: facts and inventory from the
  FRU (serial number, system UUID), the BMC's LAN interface, sensors
  (temperatures, fans, power supplies), the power state, the event log
  and the BMC firmware. Read-only: no power control, no BMC reset.
  Tested against recordings of the X10 with serials, the UUID, MACs and
  IPs replaced.
- RedfishDriver.open() no longer fails on a license refusal: get_facts
  returns what is known without Redfish, get_device_warnings reports
  bmc_license_required with the licenses the BMC names, every other
  getter raises. netOrk then shows the reason instead of an offline BMC.
- IpmiDriver is not exported from the package: NAPALM's own
  get_network_driver("redfish") takes the first driver class of
  napalm_redfish.
2026-10-13 10:53:51 +02:00

3.8 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

[0.2.0] - 2026-10-13

Added

  • ipmi NAPALM driver (IpmiDriver) on ManagementControllerDriver, read-only, over IPMI 2.0 with pyghmi: facts and inventory from the FRU (manufacturer, product, serial number, system UUID), the BMC's LAN interface, temperatures, fans and power supplies from the sensor records, the power state, the system event log and the BMC firmware version. No power control and no BMC reset. For BMCs that refuse or lack Redfish; IPMI over LAN leaks password hashes (CVE-2013-4786), so it is the fallback, not the main path.
  • Recorded IPMI fixtures from a Supermicro X10DRL-i (BMC 3.91).

Changed

  • A BMC that refuses Redfish for want of a vendor license no longer fails open(). get_facts returns what is known without Redfish, get_device_warnings reports bmc_license_required with the licenses the BMC names, and every other getter raises ConnectionException. A poll therefore reports the missing license instead of an offline BMC.

[0.1.2] - 2026-10-13

Fixed

  • The fingerprint rules are grouped into alternatives (one Redfish answer, one landing page), so discovery's maximum for this driver is 21, not 41. With every alternative summed, a Supermicro landing page (6 of 41) lost to a bare "linux" in the BMC's own SNMP sysDescr (5 of 18). Requires napalm-device-types 4.8.

[0.1.1] - 2026-10-13

Fixed

  • Discovery no longer takes every device with an open HTTPS port for a BMC: the PortSpec for 443 carries no weight, so a switch's web UI scores nothing.
  • A BMC that refuses Redfish for want of a vendor license (Supermicro X10 without SUM, DCMS or OOB answers even GET /redfish/v1/ with 403 OemLicenseNotPassed) now fails open() with RedfishLicenseError naming the licenses, not with a bare status code.

Added

  • Fingerprint rules for the BMC web UIs netOrk's discovery already fetches: Supermicro X9-X11 (ATEN firmware), iDRAC, iLO. A rule for a Redfish error body (@message.extendedinfo) for when discovery reads the service root.
  • Recorded fixtures from a Supermicro X10DRL-i (BMC 3.91, unlicensed).

[0.1.0] - 2026-10-13

Added

  • redfish NAPALM driver (RedfishDriver) on ManagementControllerDriver from napalm-device-types 4.7, registered as the napalm.drivers entry point redfish
  • NAPALM getters for the BMC: get_facts, get_interfaces, get_interfaces_ip, get_environment (fans, temperatures, power supplies; cpu and memory empty), get_users, get_ntp_servers, get_snmp_information
  • Role methods for the managed server: get_power_state, set_power_state, get_hardware_inventory, get_event_log, get_firmware_inventory, get_management_protocols; reboot_host resets the BMC (Manager.Reset)
  • HTTPS transport on the DMTF redfish library: Redfish session login with the session deleted on close, basic auth fallback only when sessions are unsupported, certificate verification on by default (verify_ssl accepts a CA file), collections followed by @odata.id including nextLink pages, links to other hosts refused
  • Environment from ThermalSubsystem/PowerSubsystem/Sensors where present, legacy Thermal/Power otherwise
  • Pure parsers for every resource in docs/redfish-map.md
  • Tests against DMTF Redfish mockups (public-rackmount1, public-localstorage, public-telemetry) over mocked HTTP

Known limitations

  • Not yet run against real hardware; Supermicro X10 behaviour is from the design notes
  • No ipmi fallback driver yet
  • get_config is not implemented (a BMC has no configuration file)