{# SPDX-License-Identifier: Apache-2.0 #} {# Copyright (C) 2025 Marcin Zieba #} {% extends 'generic/object.html' %} {% load helpers %} {% block breadcrumbs %} {% endblock %} {% block content %}
Device Management
Device {{ object.device|linkify }}
NSO Instance {{ object.nso_instance|linkify }}
NSO Device Name {{ object.nso_device_name }}
Managed Scopes {{ object.managed_scopes|join:", "|default:"—" }}
Interface Attributes {{ object.managed_attributes|join:", "|default:"—" }}
Auto Apply {% if object.auto_apply %}Enabled {% else %}Disabled{% endif %}
Adapter Device ID {{ object.adapter_device_id|default:"—" }}
Last Sync {{ object.last_sync_at|date:"Y-m-d H:i"|default:"Never" }}
Last Sync Status {% if object.last_sync_status == "succeeded" %}{{ object.last_sync_status }} {% elif object.last_sync_status == "failed" %}{{ object.last_sync_status }} {% elif object.last_sync_status %}{{ object.last_sync_status }} {% else %}—{% endif %}
{% if compliance %}
Compliance Summary
{% with s=compliance.by_status %} {% if s.in_sync %}{% endif %} {% if s.imported %}{% endif %} {% if s.changed %}{% endif %} {% if s.drifted %}{% endif %} {% if s.accepted %}{% endif %} {% if s.deploying %}{% endif %} {% if s.apply_failed %}{% endif %} {% if s.error %}{% endif %} {% if s.unknown %}{% endif %} {% endwith %} {% if compliance.last_checked_at %} {% endif %}
Managed Interfaces{{ compliance.managed_interfaces }}
Status by managed attribute
In Sync {{ s.in_sync }}
Imported {{ s.imported }}
Changed {{ s.changed }}
Drifted {{ s.drifted }}
Accepted {{ s.accepted }}
Deploying {{ s.deploying }}
Apply Failed{{ s.apply_failed }}
Error {{ s.error }}
Unknown {{ s.unknown }}
Last Checked{{ compliance.last_checked_at }}
{% endif %} {% if adapter_error %}
{% if adapter_error_code == 'not_found' %} This device is no longer in the adapter — it may need re-onboarding. {{ adapter_error }} {% else %} Adapter unreachable — {{ adapter_error }} {% endif %}
{% endif %}
{% endblock content %}