get_facts read hostname and os_version from /api/core/system/status. On OPNsense 26.7 that endpoint only carries metadata/subsystems, so both firewalls read as nameless and unknown, and netOrk kept naming gw-02 "172.22.8.3". The driver now reads /api/diagnostics/system/system_information: name is the FQDN (hostname = first label), versions[0] = OPNsense 26.7.7-amd64, which becomes 26.7.7. The status answer still counts where the new one gives nothing (older version, API key without the diagnostics privilege).
get_interfaces_ip listed each interface's primary address only, so a CARP address never showed up as the holder's address. That is what netOrk's VIP badge hangs on. Now an address bound to a VHID is listed on the node that is MASTER for it and left off a BACKUP, the same way keepalived puts the address on the master alone. A failover moves it with the next poll. get_networks is unchanged.
Checked read-only against both gateways: gw-02 → gw-02 / gw-02.home.manivong.de / 26.7.7. gw-01 carries its 21 CARP addresses (45 IPv4 addresses instead of 24), gw-02 only its own 24.
Tests: tests/unit/test_identity_and_held_addresses.py. Suite 387 passed.
Two gaps found after NetOrk/netork#1121 went live:
**`get_facts`** read `hostname` and `os_version` from `/api/core/system/status`. On OPNsense 26.7 that endpoint only carries `metadata`/`subsystems`, so both firewalls read as nameless and `unknown`, and netOrk kept naming gw-02 "172.22.8.3". The driver now reads `/api/diagnostics/system/system_information`: `name` is the FQDN (hostname = first label), `versions[0]` = `OPNsense 26.7.7-amd64`, which becomes `26.7.7`. The status answer still counts where the new one gives nothing (older version, API key without the diagnostics privilege).
**`get_interfaces_ip`** listed each interface's primary address only, so a CARP address never showed up as the holder's address. That is what netOrk's VIP badge hangs on. Now an address bound to a VHID is listed on the node that is **MASTER** for it and left off a BACKUP, the same way keepalived puts the address on the master alone. A failover moves it with the next poll. `get_networks` is unchanged.
Checked read-only against both gateways: gw-02 → `gw-02` / `gw-02.home.manivong.de` / `26.7.7`. gw-01 carries its 21 CARP addresses (45 IPv4 addresses instead of 24), gw-02 only its own 24.
Tests: `tests/unit/test_identity_and_held_addresses.py`. Suite 387 passed.
get_facts read hostname and version from /api/core/system/status, which on
OPNsense 26.7 carries neither: every firewall read as nameless and "unknown",
and netOrk kept naming one by its address. /api/diagnostics/system/system_information
has both (name is the FQDN, versions[0] "OPNsense 26.7.7-amd64"). The status
answer still counts where the new one gives nothing.
get_interfaces_ip listed each interface's primary address only, so a CARP address
never showed as the holder's. It now lists an address bound to a VHID on the node
that is MASTER for it, and leaves it off a BACKUP -- as keepalived puts the address
on the master alone. netOrk's VIP badge sits on that interface (netOrk #1121).
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Two gaps found after NetOrk/netork#1121 went live:
get_factsreadhostnameandos_versionfrom/api/core/system/status. On OPNsense 26.7 that endpoint only carriesmetadata/subsystems, so both firewalls read as nameless andunknown, and netOrk kept naming gw-02 "172.22.8.3". The driver now reads/api/diagnostics/system/system_information:nameis the FQDN (hostname = first label),versions[0]=OPNsense 26.7.7-amd64, which becomes26.7.7. The status answer still counts where the new one gives nothing (older version, API key without the diagnostics privilege).get_interfaces_iplisted each interface's primary address only, so a CARP address never showed up as the holder's address. That is what netOrk's VIP badge hangs on. Now an address bound to a VHID is listed on the node that is MASTER for it and left off a BACKUP, the same way keepalived puts the address on the master alone. A failover moves it with the next poll.get_networksis unchanged.Checked read-only against both gateways: gw-02 →
gw-02/gw-02.home.manivong.de/26.7.7. gw-01 carries its 21 CARP addresses (45 IPv4 addresses instead of 24), gw-02 only its own 24.Tests:
tests/unit/test_identity_and_held_addresses.py. Suite 387 passed.b5323e2425toe3ed0f1bdd