From f5bb072f28cc6225310d7d295a3f35b42587336e Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Wed, 7 Mar 2018 11:08:28 -0500 Subject: [PATCH] Fixes #1953: Ignore duplicate IPs when calculating prefix utilization --- netbox/ipam/models.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/netbox/ipam/models.py b/netbox/ipam/models.py index d8e2aae97..714d5a5b0 100644 --- a/netbox/ipam/models.py +++ b/netbox/ipam/models.py @@ -365,7 +365,8 @@ class Prefix(CreatedUpdatedModel, CustomFieldModel): child_prefixes = netaddr.IPSet([p.prefix for p in queryset]) return int(float(child_prefixes.size) / self.prefix.size * 100) else: - child_count = self.get_child_ips().count() + # Compile an IPSet to avoid counting duplicate IPs + child_count = netaddr.IPSet([ip.address.ip for ip in self.get_child_ips()]).size prefix_size = self.prefix.size if self.family == 4 and self.prefix.prefixlen < 31 and not self.is_pool: prefix_size -= 2