diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..988f03f --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,34 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +## [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) diff --git a/napalm_redfish/__init__.py b/napalm_redfish/__init__.py index 7ff3894..fb14610 100644 --- a/napalm_redfish/__init__.py +++ b/napalm_redfish/__init__.py @@ -2,5 +2,5 @@ from napalm_redfish.driver import RedfishDriver -__version__ = "0.1.0.dev0" +__version__ = "0.1.0" __all__ = ["RedfishDriver"] diff --git a/pyproject.toml b/pyproject.toml index 1566dbc..11845f9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "napalm-redfish" -version = "0.1.0.dev0" +version = "0.1.0" description = "NAPALM driver for server baseboard management controllers over DMTF Redfish" readme = "README.md" license = { file = "LICENSE" }