Browse Source

Filter on mac address on interface

Extension to be able filter on mac address via API
Mark 8 years ago
parent
commit
3fe3151af7
1 changed files with 12 additions and 0 deletions
  1. 12 0
      netbox/dcim/filters.py

+ 12 - 0
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(