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.
This commit is contained in:
christianmanivong committed 2026-10-13 10:53:51 +02:00
1 parent bfbeb19255
commit 332e6090a7
17 files changed
+1194 -19

No files matched your search

@@ -0,0 +1,50 @@
[
[
"System",
{
"Board manufacture date": null,
"Board manufacturer": "Supermicro",
"Board product name": "X10DRL-i",
"Board serial number": "ZM000S000001",
"Board model": "X10DRL-i",
"Board FRU Id": null,
"board_extra": [],
"Manufacturer": "Supermicro",
"Product name": "X10DRL-i",
"Model": "X10DRL-i",
"Hardware Version": null,
"Serial Number": "ZM000S000001",
"Asset Number": null,
"FRU ID": null,
"product_extra": [],
"firmware_version": "3.91",
"Device ID": 32,
"Device Revision": 1,
"Manufacturer ID": 10876,
"Product ID": 2097,
"oem_parser": null,
"UUID": "00000000-534D-C40C-0000-000000000001"
}
],
[
"BMC FRU",
{
"Board manufacture date": null,
"Board manufacturer": "Supermicro",
"Board product name": "X10DRL-i",
"Board serial number": "ZM000S000001",
"Board model": "X10DRL-i",
"Board FRU Id": null,
"board_extra": [],
"Manufacturer": "Supermicro",
"Product name": "X10DRL-i",
"Model": "X10DRL-i",
"Hardware Version": null,
"Serial Number": "ZM000S000001",
"Asset Number": null,
"FRU ID": null,
"product_extra": [],
"oem_parser": null
}
]
]