feat: a bmc driver that takes the best of Redfish and IPMI (0.4.0)

bmc (napalm_redfish.bmc:BmcDriver) reads a BMC over Redfish where it
answers. A BMC that refuses Redfish (no license) is read and switched over
IPMI. A getter that fails over Redfish is asked over IPMI where IPMI has it;
IPMI is opened only then. Power control goes over Redfish when it answers,
and a refusal is final. The BMC is reset over Redfish only. Same account
for both; ipmi_port in optional_args.

Discovery suggests bmc for a BMC it finds: the fingerprint rules moved from
RedfishDriver to BmcDriver.
This commit is contained in:
Christian Manivong committed 2026-10-17 10:34:20 +02:00
1 parent adf152ee12
commit e9ad7951cd
9 files changed
+412 -23

No files matched your search

+18
View File
@@ -7,6 +7,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
## [0.4.0] - 2026-10-17
### Added
- `bmc` NAPALM driver (`napalm_redfish.bmc:BmcDriver`): the best of Redfish and IPMI for
one BMC, chosen by itself. It reads over Redfish where the BMC answers. A BMC that refuses
Redfish altogether (no license) is read and switched over IPMI, and a getter that fails
over Redfish is asked over IPMI where IPMI has it; IPMI is opened only then. Power control
goes over Redfish when it answers. A refusal by the BMC is not retried over IPMI. The BMC
itself is reset over Redfish only. `get_device_warnings` adds `ipmi_fallback` to
`bmc_license_required` while it reads over IPMI. `get_management_protocols` over IPMI
reports IPMI over LAN on, the one thing it knows. Same account for both; `ipmi_port`
(623) in `optional_args`.
### Changed
- Discovery suggests `bmc` for a BMC it finds: the fingerprint rules and the probed
`/redfish/v1/` path moved from `RedfishDriver` to `BmcDriver`
(`BMC_PORT_SPECS`, `BMC_HTTP_FINGERPRINT`). `redfish` stays for choosing by hand.
## [0.3.1] - 2026-10-17
First run against real hardware over Redfish: a Supermicro X10DRL-i (BMC 3.91) with the