kea/dhcpv4/get (its ha section): whether Kea's HA hook is on, and this firewall's peer name. this_server_name is empty while left at its default (the hostname); the effective name is then in its % twin.
kea/dhcpv4/searchPeer: each peer's name, role and HA URL.
get_config_sync() reads core/hasync/get: synchronizetoip and the ticked sync items.
Items are mapped to the service names get_services reports (kea → kea-dhcp, dnsresolver → unbound, ssh → openssh, ...).
Items that are no service (aliases, rules, NAT, ...) are listed under unmapped.
Ticked items without a target push nothing, so they count for nothing.
Both raise when the request fails.
ConfigSyncMixin is mixed into the driver class, not into the role.
Requires napalm_device_types>=4.11.0.
They are configuration, not state: Kea's control agent, which knows whether the pair is in hot standby right now, listens on localhost only.
Fixture tests/unit/fixtures/ha_pair.json holds what gw-01 and gw-02 answered on 2026-10-16 (read-only): gw primary, gw-02 standby, and gw-01 syncing Kea and Unbound to gw-02. Tests: tests/unit/test_ha.py. Full suite: 387 passed.
Implements the new napalm-device-types 4.11.0 contract (NAPALM/napalm-device-types#42) for NetOrk/netork#1125.
- **`get_dhcp_ha()`** reads two endpoints:
- `kea/dhcpv4/get` (its `ha` section): whether Kea's HA hook is on, and this firewall's peer name. `this_server_name` is empty while left at its default (the hostname); the effective name is then in its `%` twin.
- `kea/dhcpv4/searchPeer`: each peer's name, role and HA URL.
- **`get_config_sync()`** reads `core/hasync/get`: `synchronizetoip` and the ticked sync items.
- Items are mapped to the service names `get_services` reports (`kea` → `kea-dhcp`, `dnsresolver` → `unbound`, `ssh` → `openssh`, ...).
- Items that are no service (aliases, rules, NAT, ...) are listed under `unmapped`.
- Ticked items without a target push nothing, so they count for nothing.
- Both raise when the request fails.
- `ConfigSyncMixin` is mixed into the driver class, not into the role.
- Requires `napalm_device_types>=4.11.0`.
They are configuration, not state: Kea's control agent, which knows whether the pair is in hot standby right now, listens on localhost only.
Fixture `tests/unit/fixtures/ha_pair.json` holds what gw-01 and gw-02 answered on 2026-10-16 (read-only): gw primary, gw-02 standby, and gw-01 syncing Kea and Unbound to gw-02. Tests: `tests/unit/test_ha.py`. Full suite: 387 passed.
get_dhcp_ha reads kea/dhcpv4/get (the ha section) and
kea/dhcpv4/searchPeer: whether Kea's HA hook is on, this firewall's peer
name -- the % twin when left at its default -- and each peer's name,
role and HA URL. get_config_sync reads core/hasync/get: the address this
firewall pushes its configuration to and the ticked sync items, mapped to
the service names get_services reports; items that are no service stay
under `unmapped`. Both raise when the request fails.
Configuration, not state: Kea's control agent, which knows whether the
pair is in hot standby right now, listens on localhost only.
Needs napalm-device-types 4.11.0 (ConfigSyncMixin). NetOrk/netork#1125.
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.
Implements the new napalm-device-types 4.11.0 contract (NAPALM/napalm-device-types#42) for NetOrk/netork#1125.
get_dhcp_ha()reads two endpoints:kea/dhcpv4/get(itshasection): whether Kea's HA hook is on, and this firewall's peer name.this_server_nameis empty while left at its default (the hostname); the effective name is then in its%twin.kea/dhcpv4/searchPeer: each peer's name, role and HA URL.get_config_sync()readscore/hasync/get:synchronizetoipand the ticked sync items.get_servicesreports (kea→kea-dhcp,dnsresolver→unbound,ssh→openssh, ...).unmapped.ConfigSyncMixinis mixed into the driver class, not into the role.napalm_device_types>=4.11.0.They are configuration, not state: Kea's control agent, which knows whether the pair is in hot standby right now, listens on localhost only.
Fixture
tests/unit/fixtures/ha_pair.jsonholds what gw-01 and gw-02 answered on 2026-10-16 (read-only): gw primary, gw-02 standby, and gw-01 syncing Kea and Unbound to gw-02. Tests:tests/unit/test_ha.py. Full suite: 387 passed.