Parcourir la source

Fixes #1953: Ignore duplicate IPs when calculating prefix utilization

Jeremy Stretch il y a 7 ans
Parent
commit
f5bb072f28
1 fichiers modifiés avec 2 ajouts et 1 suppressions
  1. 2 1
      netbox/ipam/models.py

+ 2 - 1
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