driver / standard (pull_request) Successful in 13s
driver / lint (pull_request) Successful in 11s
driver / types (pull_request) Successful in 43s
driver / test (3.10) (pull_request) Successful in 45s
driver / test (3.11) (pull_request) Successful in 45s
driver / test (3.12) (pull_request) Successful in 42s
driver / test (3.13) (pull_request) Successful in 39s
driver / lowest (pull_request) Successful in 21s
driver / security (pull_request) Successful in 54s
driver / build (pull_request) Successful in 27s
CI / driver (pull_request) Successful in 5m40s
driver / publish (pull_request) Skipped
4.5 KiB
4.5 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
[0.5.0] - 2026-10-23
The first release on PyPI.
Changed
- The drivers follow the NAPALM driver standard
(https://git.netork.io/NAPALM/driver-standard): CI on Gitea runs ruff, mypy, the
tests on Python 3.10–3.13 and at the lowest declared versions, bandit, pip-audit and
a build check, and a release tag publishes to PyPI. The package now ships
py.typed. Python 3.10 stays the floor. napalm-device-types now comes from PyPI, 4.21.1 or later.
Security
- The SSH host key is verified (NetOrk/netork#1167).
open()takes the key to expect fromoptional_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 tooptional_args["ssh_host_key_observer"]. Replaces paramiko'sAutoAddPolicy. 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'sconfigure_snmp_agent(settings)template instead, and the caller supplies every value: onerocommunityline 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_configno longer assumes the communitypublicwhen 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_commandsent the password and the data on the same stdin, and a sudo that does not prompt (NOPASSWD, a cached timestamp) left the password forcat, which wrote it as the first line of a file then made world-readable (#8).run_commandnow refuses stdin to a privileged command while a sudo password is set, andfix_snmpstages the configuration without privilege before root installs it, without following a symlink at the target.
[0.2.0] - 2026-10-13
Changed
get_usersis nowget_os_users, as napalm-device-types 4.7 names it onOSDriver; the return shape is unchanged. NAPALM's ownget_usershas another shape and a stub on every driver, so a poll askinghasattrcould not tell the two apart. Requires napalm-device-types 4.7.1 or later.
[0.1.0]
Added
FreeBSDDriver(freebsd) andOpenBSDDriver(openbsd) on a sharedBsdDriver: SSH over exec channels (no PTY, real exit codes), root throughsudo -Swith the password on stdin.- Read side (NetOrk/netork#798): facts (SMBIOS through
kenvon FreeBSD,hw.*sysctls on OpenBSD; uptime fromkern.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 ofListeningSocketsMixin: FreeBSD throughsockstat, OpenBSD throughfstatas root andnetstat -anwithout, which the reading reports asattributed: 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 assecurityon FreeBSD and base-system patches as onebase-systementry (OpenBSDsyspatch, classic FreeBSDfreebsd-update). A reader that cannot read raises instead of returning no updates (#4). - Services:
get_servicesandmanage_service(start, stop, restart, enable, disable) throughserviceandrcctl. - 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_configreports 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).