feat: FreeBSD and OpenBSD drivers, read side
CI / test (3.10) (push) Successful in 42s
CI / test (3.11) (push) Successful in 37s
CI / test (3.12) (push) Successful in 29s

FreeBSDDriver (`freebsd`) and OpenBSDDriver (`openbsd`) on a shared
BsdDriver, for the BSD VMs netOrk provisions and BSD hosts added by hand
(NetOrk/netork#798).

- SSH over exec channels (napalm-device-types' run_on_transport): no PTY,
  stdout and stderr apart, real exit codes; run_command()/open_stream()
  are public. Root through `sudo -S` with the password on stdin, or
  `sudo -n` without one.
- Facts: hostname, release and running kernel (freebsd-version / uname),
  hardware from SMBIOS (kenv) or hw.* sysctls, uptime from kern.boottime.
- Interfaces and addresses (ifconfig -a: ether/lladdr, hex netmasks,
  scoped IPv6), routes (netstat -rn, OpenBSD's abbreviated networks
  written out, host/broadcast/loopback entries left out), ARP (FreeBSD's
  sentences, OpenBSD's table), users and groups, processes (lstart read as
  one five-word field), cron jobs (system crontab and the login user's).
- Parsers are pure functions, tested on output recorded from FreeBSD 15.1
  (hand-installed and cloud image) and OpenBSD 7.9 (NetOrk/netork#793),
  with internal addresses replaced by documentation ranges.
This commit is contained in:
2026-10-08 09:12:53 +02:00
commit 14afd33798
104 changed files with 3973 additions and 0 deletions
+84
View File
@@ -0,0 +1,84 @@
argon2-20190702p0
bash-5.3.9
bash-completion-2.17.0
bzip2-1.0.8p0
e2fsprogs-1.47.3
gettext-runtime-1.0
glib2-2.86.5
libb2-0.98.1v0
libffi-3.5.2p0
libiconv-1.19
libyaml-0.2.5
meson-1.10.2v0
ninja-1.11.1p1v1
pcre2-10.48
py3-MarkupSafe-3.0.3p0
py3-apipkg-3.0.2p1
py3-argon2-cffi-25.1.0
py3-argon2-cffi-bindings-25.1.0
py3-arrow-1.4.0p0
py3-attrs-25.4.0
py3-bcrypt-5.0.0p0
py3-blinker-1.9.0p0
py3-brotli-1.2.0
py3-cachetools-7.0.5
py3-certifi-2026.1.4
py3-cffi-2.0.0p0
py3-chardet-5.2.0v0
py3-charset-normalizer-3.4.7
py3-colorama-0.4.6p1
py3-configobj-5.0.9p0
py3-coverage-7.13.2
py3-cparser-3.0
py3-cryptography-46.0.7
py3-dateutil-2.9.0pl0p0
py3-distlib-0.4.0
py3-execnet-2.1.2
py3-filelock-3.25.2
py3-fqdn-1.5.1p1
py3-idna-3.11
py3-iniconfig-2.3.0
py3-isoduration-20.11.0p2
py3-jinja2-3.1.6p0
py3-jsonpatch-1.33p2
py3-jsonpointer-2.4p2
py3-jsonschema-4.24.0
py3-jsonschema-specifications-2025.4.1
py3-jwt-2.10.1
py3-mock-5.1.0p0
py3-oauthlib-3.3.1
py3-packaging-26.0
py3-passlib-1.9.3p0
py3-platformdirs-4.9.6
py3-pluggy-1.6.0p0
py3-pygments-2.20.0
py3-pyproject_api-1.10.0
py3-python-discovery-1.2.1p0
py3-referencing-0.37.0p0
py3-requests-2.33.1
py3-responses-0.25.0p2
py3-rfc3339-validator-0.1.4p2
py3-rfc3986-validator-0.1.1p2
py3-rpds-py-0.30.0p0
py3-scrypt-0.9.4
py3-serial-3.5p0
py3-six-1.17.0p1
py3-test-9.0.2p0
py3-test-cov-7.1.0
py3-test-mock-3.15.1
py3-test-xdist-3.8.0
py3-tox-4.47.0
py3-types-python-dateutil-2.9.0.20260305
py3-tzdata-2026.3
py3-uri-template-1.3.0p1
py3-urllib3-1.26.20p0
py3-virtualenv-21.2.3
py3-webcolors-25.10.0p0
py3-yaml-6.0.2p1
python-3.13.15p0
qemu-ga-10.2.1
quirks-7.194
sqlite3-3.51.3
sudo-1.9.17.2p1
updatedb-0p0
xz-5.8.4