From 4ba0ec78cfe9b35dc0e22c72ec71083cba568006 Mon Sep 17 00:00:00 2001 From: Smixi Date: Mon, 5 Feb 2024 19:30:59 +0100 Subject: [PATCH] fix: performance for get__available_ips for prefix (#15041) --- netbox/ipam/models/ip.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/netbox/ipam/models/ip.py b/netbox/ipam/models/ip.py index 598064a60..76fae2990 100644 --- a/netbox/ipam/models/ip.py +++ b/netbox/ipam/models/ip.py @@ -427,10 +427,10 @@ class Prefix(GetAvailablePrefixesMixin, PrimaryModel): prefix = netaddr.IPSet(self.prefix) child_ips = netaddr.IPSet([ip.address.ip for ip in self.get_child_ips()]) - child_ranges = netaddr.IPSet() + child_ranges = [] for iprange in self.get_child_ranges(): - child_ranges.add(iprange.range) - available_ips = prefix - child_ips - child_ranges + child_ranges.append(iprange.range) + available_ips = prefix - child_ips - netaddr.IPSet(child_ranges) # IPv6 /127's, pool, or IPv4 /31-/32 sets are fully usable if (self.family == 6 and self.prefix.prefixlen >= 127) or self.is_pool or (self.family == 4 and self.prefix.prefixlen >= 31):