CI / test (3.10) (push) Successful in 27s
CI / test (3.11) (push) Successful in 30s
CI / test (3.12) (push) Successful in 37s
CI / test (3.10) (pull_request) Successful in 32s
CI / test (3.11) (pull_request) Successful in 34s
CI / test (3.12) (pull_request) Successful in 29s
The driver accepted any SSH host key. It now verifies through napalm-device-types' HostKeyCheck (>= 4.19.0): with a known key in optional_args["ssh_host_keys"] any other key is refused before login, and every key seen is reported to optional_args["ssh_host_key_observer"]. Without either argument it connects as before (first use).
79 lines
4.1 KiB
Markdown
79 lines
4.1 KiB
Markdown
# 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.1.0/),
|
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
|
## [Unreleased]
|
|
|
|
### Security
|
|
- The SSH host key is verified (NetOrk/netork#1167). `open()` takes the key to expect from `optional_args["ssh_host_key"]` and refuses any other one before it logs in (`SshHostKeyMismatch`); without one it accepts the first key. Every key it sees goes to `optional_args["ssh_host_key_observer"]`. Replaces paramiko's `AutoAddPolicy`. Requires napalm-device-types 4.19.0; version 0.4.0.
|
|
|
|
## [0.3.0] - 2026-10-17
|
|
|
|
### Changed
|
|
- **Breaking:** `run_device_action("fix_snmp")` is gone. The drivers implement
|
|
napalm-device-types 4.13's `configure_snmp_agent(settings)` template instead, and
|
|
the caller supplies every value: one `rocommunity` line per allowed source, contact
|
|
and location as given. No community, contact or location of an application is built
|
|
in any more. pf and ipfw rules are left to the operator. Requires
|
|
napalm-device-types 4.13.0 or later.
|
|
- `get_snmp_config` no longer assumes the community `public` when the file names none.
|
|
|
|
### Added
|
|
- `get_management_peer()`: the address the host sees the SSH connection come from.
|
|
- `ensure_package(name)` from the base package.
|
|
|
|
## [0.2.1] - 2026-10-16
|
|
|
|
### Fixed
|
|
- A sudo password no longer ends up in `snmpd.conf`. `run_command` sent the
|
|
password and the data on the same stdin, and a sudo that does not prompt
|
|
(NOPASSWD, a cached timestamp) left the password for `cat`, which wrote it
|
|
as the first line of a file then made world-readable (#8). `run_command` now
|
|
refuses stdin to a privileged command while a sudo password is set, and
|
|
`fix_snmp` stages the configuration without privilege before root installs
|
|
it, without following a symlink at the target.
|
|
|
|
## [0.2.0] - 2026-10-13
|
|
|
|
### Changed
|
|
- `get_users` is now `get_os_users`, as napalm-device-types 4.7 names it on
|
|
`OSDriver`; the return shape is unchanged. NAPALM's own `get_users` has
|
|
another shape and a stub on every driver, so a poll asking `hasattr` could
|
|
not tell the two apart. Requires napalm-device-types 4.7.1 or later.
|
|
|
|
## [0.1.0]
|
|
|
|
### Added
|
|
- `FreeBSDDriver` (`freebsd`) and `OpenBSDDriver` (`openbsd`) on a shared
|
|
`BsdDriver`: SSH over exec channels (no PTY, real exit codes), root through
|
|
`sudo -S` with the password on stdin.
|
|
- Read side (NetOrk/netork#798): facts (SMBIOS through `kenv` on FreeBSD,
|
|
`hw.*` sysctls on OpenBSD; uptime from `kern.boottime`), interfaces and
|
|
their addresses (`ifconfig -a`), routes (`netstat -rn`), ARP (`arp -an`),
|
|
users and groups, processes (`ps … lstart`), cron jobs (system crontab and
|
|
the login user's).
|
|
- `get_listening_sockets()` in the shape of `ListeningSocketsMixin`: FreeBSD
|
|
through `sockstat`, OpenBSD through `fstat` as root and `netstat -an`
|
|
without, which the reading reports as `attributed: False`.
|
|
- Packages: `get_packages`, `install_package`, `uninstall_package`. FreeBSD's
|
|
install bootstraps pkg on a classic system that never had it.
|
|
- Updates: `get_available_updates`, with VuXML's verdict as `security` on
|
|
FreeBSD and base-system patches as one `base-system` entry (OpenBSD
|
|
`syspatch`, classic FreeBSD `freebsd-update`). A reader that cannot read
|
|
raises instead of returning no updates (#4).
|
|
- Services: `get_services` and `manage_service` (start, stop, restart,
|
|
enable, disable) through `service` and `rcctl`.
|
|
- SNMP: `run_device_action("fix_snmp")` installs net-snmp, writes the same
|
|
configuration netOrk uses on Linux, starts the agent and asks it for
|
|
sysDescr; `get_snmp_config` reports a running agent's community and port.
|
|
- `get_host_status` (napalm-device-types' `HostStatusMixin`): on FreeBSD,
|
|
"reboot required" when the installed kernel differs from the running one.
|
|
- `first_boot_pending()`: whether a FreeBSD host is still in its first boot
|
|
(`/firstboot`), so netOrk can wait before setting up a new VM
|
|
(NetOrk/netork#795).
|
|
- Parsers tested on output recorded from FreeBSD 15.1 (hand-installed and
|
|
cloud image) and OpenBSD 7.9 (NetOrk/netork#793).
|