mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Fixes #2173: Fixed IndexError when automaticating allocating IP addresses from large IPv6 prefixes
This commit is contained in:
@ -160,8 +160,8 @@ class PrefixViewSet(CustomFieldModelViewSet):
|
|||||||
requested_ips = request.data if isinstance(request.data, list) else [request.data]
|
requested_ips = request.data if isinstance(request.data, list) else [request.data]
|
||||||
|
|
||||||
# Determine if the requested number of IPs is available
|
# Determine if the requested number of IPs is available
|
||||||
available_ips = list(prefix.get_available_ips())
|
available_ips = prefix.get_available_ips()
|
||||||
if len(available_ips) < len(requested_ips):
|
if available_ips.size < len(requested_ips):
|
||||||
return Response(
|
return Response(
|
||||||
{
|
{
|
||||||
"detail": "An insufficient number of IP addresses are available within the prefix {} ({} "
|
"detail": "An insufficient number of IP addresses are available within the prefix {} ({} "
|
||||||
@ -171,8 +171,9 @@ class PrefixViewSet(CustomFieldModelViewSet):
|
|||||||
)
|
)
|
||||||
|
|
||||||
# Assign addresses from the list of available IPs and copy VRF assignment from the parent prefix
|
# Assign addresses from the list of available IPs and copy VRF assignment from the parent prefix
|
||||||
|
available_ips = iter(available_ips)
|
||||||
for requested_ip in requested_ips:
|
for requested_ip in requested_ips:
|
||||||
requested_ip['address'] = available_ips.pop(0)
|
requested_ip['address'] = next(available_ips)
|
||||||
requested_ip['vrf'] = prefix.vrf.pk if prefix.vrf else None
|
requested_ip['vrf'] = prefix.vrf.pk if prefix.vrf else None
|
||||||
|
|
||||||
# Initialize the serializer with a list or a single object depending on what was requested
|
# Initialize the serializer with a list or a single object depending on what was requested
|
||||||
|
Reference in New Issue
Block a user