{# SPDX-FileCopyrightText: 2026 Marcin Zieba #} {# SPDX-License-Identifier: Apache-2.0 #} {# The drift card body that htmx loads into #dhcp-import-drift on the DHCP Plugin page. #} {% load helpers %} {% include "netbox_kea/inc/dhcp_plugin_drift_header.html" %} {% if drift_refusal %}
{% else %}

A live read of Kea, compared with the DHCP Import Mappings. Missing: Kea has the object, and NetBox has no imported row for it. Stale: NetBox has an imported row whose Kea object is gone, so the next run removes it. Not seen: Kea was not read in full for that kind, so nothing can be stale. Unknown: Kea could not be read, or its configuration could not be parsed, so the state of each imported row is not known. The import does not write Shared Networks yet, so each one shows as missing.

{% for drift in families %}
DHCPv{{ drift.family }}
{% if drift.notice %} {% include "netbox_kea/inc/notice_alert.html" with notice=drift.notice %} {% elif drift.unparsable %} {% endif %}
{% if drift.kinds %}
{% for kind in drift.kinds %} {% endfor %}
Kind In step Missing Stale Not seen Observation
{{ kind.label }} {{ kind.in_step }} {{ kind.missing }} {{ kind.stale }} {{ kind.unseen }} {% if kind.incomplete %} Incomplete {{ kind.incomplete }} {% else %} Complete {% endif %}
{% endif %} {% if drift.objects %}
{% for obj in drift.objects %} {% endfor %} {% if drift.hidden %} {% endif %}
Kind Kea path State Imported row
{{ obj.label }} {{ obj.path }} {{ obj.badge.0 }} {{ obj.target|linkify|placeholder }}
{{ drift.hidden }} more object{{ drift.hidden|pluralize }} {{ drift.hidden|pluralize:"is,are" }} not shown.
{% elif drift.kinds %}

Kea and the imported rows agree.

{% endif %} {% empty %}

No DHCP versions enabled on this server.

{% endfor %} {% endif %}