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:
1 parent
bfbeb19255
commit
332e6090a7
17 files changed
+1194
-19
No files matched your search
@@ -7,6 +7,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
## [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
|
||||
|
||||
Reference in new issue
Block a user