From d5142906885f3e9284a4d942eafa1b3e0197eff2 Mon Sep 17 00:00:00 2001 From: Shuichiro MAKIGAKI Date: Wed, 22 Sep 2021 12:49:34 +0900 Subject: [PATCH] Fix #7365: Optimize calculation of prefix utilization --- netbox/ipam/models/ip.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/netbox/ipam/models/ip.py b/netbox/ipam/models/ip.py index 3e2e671ca..b5360a7b7 100644 --- a/netbox/ipam/models/ip.py +++ b/netbox/ipam/models/ip.py @@ -487,11 +487,9 @@ class Prefix(PrimaryModel): utilization = int(float(child_prefixes.size) / self.prefix.size * 100) else: # Compile an IPSet to avoid counting duplicate IPs - child_ips = netaddr.IPSet() - for iprange in self.get_child_ranges(): - child_ips.add(iprange.range) - for ip in self.get_child_ips(): - child_ips.add(ip.address.ip) + child_ips = netaddr.IPSet( + [_.range for _ in self.get_child_ranges()] + [_.address.ip for _ in self.get_child_ips()] + ) prefix_size = self.prefix.size if self.prefix.version == 4 and self.prefix.prefixlen < 31 and not self.is_pool: