fix: raise when an update reader cannot read, and report host status
CI / test (3.10) (push) Successful in 26s
CI / test (3.11) (push) Successful in 25s
CI / test (3.12) (push) Successful in 26s
CI / test (3.10) (pull_request) Successful in 25s
CI / test (3.11) (pull_request) Successful in 24s
CI / test (3.12) (pull_request) Successful in 26s
CI / test (3.10) (push) Successful in 26s
CI / test (3.11) (push) Successful in 25s
CI / test (3.12) (push) Successful in 26s
CI / test (3.10) (pull_request) Successful in 25s
CI / test (3.11) (pull_request) Successful in 24s
CI / test (3.12) (pull_request) Successful in 26s
netOrk reads an empty update list as "no updates" and closes every patch clock on the host. A refused sudo, a failing pkg, syspatch or freebsd-update, or a pkg database pkg cannot read used to come back as that empty list. Each of these now raises. Only pkg's "is not installed" still means no packages. BsdDriver takes on napalm-device-types' HostStatusMixin. On FreeBSD it reports a host whose installed kernel differs from the running one as needing a reboot (device-types 4.1). OpenBSD stays unknown. Closes #4
This commit is contained in:
@@ -37,6 +37,7 @@ over SSH, built on [napalm-device-types](https://git.netork.io/NAPALM/napalm-dev
|
||||
| `get_available_updates` | ✓ | ✓ | `pkg upgrade -n` + `pkg audit` (VuXML); `pkg_add -u -n -v` + `syspatch -c` |
|
||||
| `get_services`, `manage_service` | ✓ | ✓ | `service -e` + `service … status` / `service … <action>`; `rcctl ls on` + `rcctl check` / `rcctl <action>` |
|
||||
| `run_device_action("fix_snmp")`, `get_snmp_config` | ✓ | ✓ | net-snmp from packages: `/usr/local/etc/snmp/snmpd.conf` + `service snmpd`; `/etc/snmp/snmpd.conf` + `rcctl … netsnmpd` |
|
||||
| `get_host_status` | ✓ | unknown | napalm-device-types' host status: on FreeBSD `freebsd-version -k` vs `-r` (4.1+) |
|
||||
|
||||
`get_listening_sockets` has the shape of napalm-device-types'
|
||||
`ListeningSocketsMixin` (whose `ss`/cgroup reading is Linux's) and its rule:
|
||||
@@ -58,6 +59,15 @@ reports what `freebsd-update` has fetched (`updatesready`). On FreeBSD with
|
||||
pkgbase the base system is packages from the `FreeBSD-base` repository and
|
||||
needs no extra entry.
|
||||
|
||||
A reader that cannot read **raises** rather than return an empty list: netOrk
|
||||
takes `[]` as "no updates" and would close every patch clock on the host. That
|
||||
covers a refused sudo, a failing `pkg`, `syspatch` or `freebsd-update`, and a pkg
|
||||
database pkg cannot read (only pkg's "not installed" means no packages).
|
||||
|
||||
**Reboot.** `get_host_status` reports a FreeBSD host whose installed kernel
|
||||
(`freebsd-version -k`) differs from the running one (`-r`) as needing a reboot.
|
||||
OpenBSD has no such reading yet, so it stays unknown there.
|
||||
|
||||
**Services** are the enabled ones. FreeBSD reads their status as root, as
|
||||
root-only pidfiles hide a daemon from anyone else, and without root when sudo
|
||||
refuses; OpenBSD's `rcctl check` needs no root. Actions run as root.
|
||||
|
||||
Reference in New Issue
Block a user