Files
napalm-bsd/CHANGELOG.md
T
Christian Manivong ee0200462b
CI / test (3.10) (push) Successful in 28s
CI / test (3.11) (push) Successful in 23s
CI / test (3.12) (push) Successful in 29s
CI / test (3.10) (pull_request) Successful in 26s
CI / test (3.11) (pull_request) Successful in 30s
CI / test (3.12) (pull_request) Successful in 32s
feat!: configure_snmp_agent with the caller's values replaces fix_snmp (0.3.0)
fix_snmp wrote an application's snmpd.conf (community public, Managed
by netOrk, netork@localhost) and judged itself by a local snmpget.

The drivers implement napalm-device-types 4.13's SnmpAgentMixin steps
instead: net-snmp installed, snmpd.conf with one rocommunity line per
allowed source (staged without privilege, installed by root), snmpd
enabled and restarted. pf and ipfw rules stay the operator's. A
community or text that would break the file is refused. The caller
verifies with its own SNMP client.

Also get_management_peer() from SSH_CONNECTION, ensure_package from
the base package, and get_snmp_config no longer assumes "public".

BREAKING CHANGE: run_device_action is removed. Requires
napalm-device-types 4.13.

Part of #12 (the OpenBSD new_version text is still open).
2026-10-17 00:53:09 +02:00

76 lines
3.7 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]
## [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).