{% extends 'base_template.html' %} {% import "_macros.html" as macros %} {% block content %}
{{ macros.report_introduction(report_details) }} {{ macros.network_summary(network_summary) }} {% if site_filter %} {{ macros.per_site_summary(site_summary, site_filter) }} {% endif %}
1

Trunk Mismatch Analysis {% if site_filter %}for site {{ site_filter }}{% endif %}

Total Affected Devices {{ trunk_mismatch_summary_pdf | length }}
Total Mismatched Links {{ trunk_mismatch_details_pdf | length }}
Average Links per Device {% if trunk_mismatch_summary_pdf | length > 0 %} {{ "%.1f" | format(trunk_mismatch_details_pdf | length / trunk_mismatch_summary_pdf | length) }} {% else %} N/A {# Or any other value you want to display when there are no devices #} {% endif %}
{% if trunk_mismatch_summary_pdf | length > 0 %}
2

Trunk Mismatch per device summary {% if site_filter %}for site {{ site_filter }}{% endif %}

{% for device in trunk_mismatch_summary_pdf.to_dict('records') %} {% endfor %}
Site Name Device Name Trunks Affected
{{ device.siteName }} {{ device.localHost }} {{ device.affected_ports }}
3

Mismatched Trunk Links {% if site_filter %}for site {{ site_filter }}{% endif %}

{% for link in trunk_mismatch_details_pdf.to_dict('records') %} {% endfor %}
Local Device Local Interface Local VLANs Remote VLANs Remote Interface Remote Device
{{ link.srcHostname }} {{ link.srcIntName }} {{ link.srcVlanCount }} {{ link.dstVlanCount }} {{ link.dstIntName }} {{ link.dstHostname }}
{% else %}

No trunk mismatch issues found.

{% endif %}
{% endblock %}