From 66319f9cf0ba47d503efe2498a59069342674616 Mon Sep 17 00:00:00 2001 From: Brian Tiemann Date: Wed, 23 Oct 2024 10:35:01 -0400 Subject: [PATCH] Chain Host and Inet instead of making a new transform --- netbox/ipam/fields.py | 3 ++- netbox/ipam/lookups.py | 5 ----- netbox/ipam/models/ip.py | 6 +++--- 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/netbox/ipam/fields.py b/netbox/ipam/fields.py index 26fbc8fdc..a82976326 100644 --- a/netbox/ipam/fields.py +++ b/netbox/ipam/fields.py @@ -105,7 +105,8 @@ IPAddressField.register_lookup(lookups.NetIn) IPAddressField.register_lookup(lookups.NetHostContained) IPAddressField.register_lookup(lookups.NetFamily) IPAddressField.register_lookup(lookups.NetMaskLength) -IPAddressField.register_lookup(lookups.HostAsInet) +IPAddressField.register_lookup(lookups.Host) +IPAddressField.register_lookup(lookups.Inet) class ASNField(models.BigIntegerField): diff --git a/netbox/ipam/lookups.py b/netbox/ipam/lookups.py index 1a5f7e0eb..c6abb5a26 100644 --- a/netbox/ipam/lookups.py +++ b/netbox/ipam/lookups.py @@ -177,11 +177,6 @@ class Host(Transform): lookup_name = 'host' -class HostAsInet(Transform): - lookup_name = 'host_as_inet' - template = 'CAST(HOST( %(expressions)s ) AS INET)' - - class Inet(Transform): function = 'INET' lookup_name = 'inet' diff --git a/netbox/ipam/models/ip.py b/netbox/ipam/models/ip.py index d6b563f72..868b92450 100644 --- a/netbox/ipam/models/ip.py +++ b/netbox/ipam/models/ip.py @@ -581,9 +581,9 @@ class IPRange(ContactsMixin, PrimaryModel): # Check for overlapping ranges overlapping_ranges = IPRange.objects.exclude(pk=self.pk).filter(vrf=self.vrf).filter( - Q(start_address__host_as_inet__gte=self.start_address.ip, start_address__host_as_inet__lte=self.end_address.ip) | # Starts inside - Q(end_address__host_as_inet__gte=self.start_address.ip, end_address__host_as_inet__lte=self.end_address.ip) | # Ends inside - Q(start_address__host_as_inet__lte=self.start_address.ip, end_address__host_as_inet__gte=self.end_address.ip) # Starts & ends outside + Q(start_address__host__inet__gte=self.start_address.ip, start_address__host__inet__lte=self.end_address.ip) | # Starts inside + Q(end_address__host__inet__gte=self.start_address.ip, end_address__host__inet__lte=self.end_address.ip) | # Ends inside + Q(start_address__host__inet__lte=self.start_address.ip, end_address__host__inet__gte=self.end_address.ip) # Starts & ends outside ) if overlapping_ranges.exists(): raise ValidationError(