diff --git a/netbox_config_diff/compliance/utils.py b/netbox_config_diff/compliance/utils.py index 7451a71..24a17ef 100644 --- a/netbox_config_diff/compliance/utils.py +++ b/netbox_config_diff/compliance/utils.py @@ -60,3 +60,16 @@ def get_remediation_commands(name: str, platform: str, actual_config: str, rende host.load_running_config(config_text=actual_config) host.load_generated_config(config_text=rendered_config) return host.remediation_config_filtered_text(include_tags={}, exclude_tags={}) + + +def get_diff_statistics(diff: str) -> tuple[int, int]: + lines_added = 0 + lines_deleted = 0 + + for line in diff.splitlines(): + if line.startswith("+") and not line.startswith("+++"): + lines_added += 1 + elif line.startswith("-") and not line.startswith("---"): + lines_deleted += 1 + + return lines_added, lines_deleted diff --git a/netbox_config_diff/templates/netbox_config_diff/configcompliance/data.html b/netbox_config_diff/templates/netbox_config_diff/configcompliance/data.html index 3b576df..82ca341 100644 --- a/netbox_config_diff/templates/netbox_config_diff/configcompliance/data.html +++ b/netbox_config_diff/templates/netbox_config_diff/configcompliance/data.html @@ -35,7 +35,14 @@
Error
-
Diff
+

Diff + {% if version|first != "3" and statistics %} +
+ {{ statistics.0 }} line(s) missing, + {{ statistics.1 }} extra line(s) +
+ {% endif %} +

diff --git a/netbox_config_diff/views/compliance.py b/netbox_config_diff/views/compliance.py index aa88b0b..12aa43e 100644 --- a/netbox_config_diff/views/compliance.py +++ b/netbox_config_diff/views/compliance.py @@ -5,6 +5,7 @@ from netbox.views import generic from utilities.views import ViewTab, register_model_view +from netbox_config_diff.compliance.utils import get_diff_statistics from netbox_config_diff.filtersets import ConfigComplianceFilterSet, PlatformSettingFilterSet from netbox_config_diff.forms import ( ConfigComplianceFilterForm, @@ -25,10 +26,14 @@ class ConfigComplianceView(generic.ObjectView): template_name = "netbox_config_diff/configcompliance/data.html" def get_extra_context(self, request, instance): + statistics = None + if instance.diff: + statistics = get_diff_statistics(instance.diff) return { "instance": instance, "base_template": self.base_template, "version": VERSION, + "statistics": statistics, }