From 3fe3151af7db860d8c65c6eff1bb7a27323e0f6c Mon Sep 17 00:00:00 2001 From: Mark Date: Sat, 18 Mar 2017 21:10:36 +0100 Subject: [PATCH] Filter on mac address on interface Extension to be able filter on mac address via API --- netbox/dcim/filters.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/netbox/dcim/filters.py b/netbox/dcim/filters.py index eca792a12..d8a6e1307 100644 --- a/netbox/dcim/filters.py +++ b/netbox/dcim/filters.py @@ -405,6 +405,10 @@ class InterfaceFilter(django_filters.FilterSet): method='filter_type', label='Interface type', ) + mac_address = django_filters.CharFilter( + method='_mac_address', + label='MAC address', + ) class Meta: model = Interface @@ -420,6 +424,14 @@ class InterfaceFilter(django_filters.FilterSet): return queryset.filter(form_factor=IFACE_FF_LAG) return queryset + def _mac_address(self, queryset, name, value): + value = value.strip() + if not value: + return queryset + try: + return queryset.filter(mac_address=value).distinct() + except AddrFormatError: + return queryset.none() class ConsoleConnectionFilter(django_filters.FilterSet): site = django_filters.CharFilter(