{# SPDX-License-Identifier: Apache-2.0 #} {# Copyright (C) 2025 Marcin Zieba #} {# Shared body for the full-page and modal route-policy diff views. #} {% if state.unsupported_members %}
{{ state.unsupported_members|length }} member{{ state.unsupported_members|length|pluralize }} unsupported on this device's NED — the adapter silently skips {% if state.unsupported_members|length == 1 %}it{% else %}them{% endif %} on Apply (no exact device form), so this object can sit at pending apply even though a push changes nothing. Remove {% if state.unsupported_members|length == 1 %}it{% else %}them{% endif %} from the NetBox object, or accept {% if state.unsupported_members|length == 1 %}it stays{% else %}they stay{% endif %} NetBox-only: {% for m in state.unsupported_members %}{{ m }}{% if not forloop.last %}, {% endif %}{% endfor %}.
{% endif %}

This compares the device's current ordered policy with the canonical policy NetBox would write. Sequence numbers are omitted because materialisation can renumber entries without changing policy behaviour.

{% if diff is None %}
No materialised {{ family }} to compare yet.
{% elif not diff.any_diff %}
The device and NetBox match — no drift.
{% else %} {% if diff.removed_on_device %}
Removed on the device — this {{ family }} is gone from the device but still exists in NetBox, so a push would add it back. Accept to take ownership, or delete the NetBox object to match the device.
{% endif %} {% if unified_diff %} {% include "netbox_nso_plugin/inc/diff2html_viewer.html" %} {% endif %} {% endif %}