Parcourir la source

Fixes #1059: Allow filtering of interface connections via API

Jeremy Stretch il y a 8 ans
Parent
commit
2d52b9fb39
2 fichiers modifiés avec 8 ajouts et 3 suppressions
  1. 1 0
      netbox/dcim/api/views.py
  2. 7 3
      netbox/dcim/filters.py

+ 1 - 0
netbox/dcim/api/views.py

@@ -323,6 +323,7 @@ class InterfaceConnectionViewSet(WritableSerializerMixin, ModelViewSet):
     queryset = InterfaceConnection.objects.select_related('interface_a__device', 'interface_b__device')
     serializer_class = serializers.InterfaceConnectionSerializer
     write_serializer_class = serializers.WritableInterfaceConnectionSerializer
+    filter_class = filters.InterfaceConnectionFilter
 
 
 #

+ 7 - 3
netbox/dcim/filters.py

@@ -8,9 +8,9 @@ from tenancy.models import Tenant
 from utilities.filters import NullableModelMultipleChoiceFilter, NumericInFilter
 from .models import (
     ConsolePort, ConsolePortTemplate, ConsoleServerPort, ConsoleServerPortTemplate, Device, DeviceBay,
-    DeviceBayTemplate, DeviceRole, DeviceType, IFACE_FF_LAG, Interface, InterfaceTemplate, Manufacturer, InventoryItem,
-    Platform, PowerOutlet, PowerOutletTemplate, PowerPort, PowerPortTemplate, Rack, RackGroup, RackReservation,
-    RackRole, Region, Site, VIRTUAL_IFACE_TYPES,
+    DeviceBayTemplate, DeviceRole, DeviceType, IFACE_FF_LAG, Interface, InterfaceConnection, InterfaceTemplate,
+    Manufacturer, InventoryItem, Platform, PowerOutlet, PowerOutletTemplate, PowerPort, PowerPortTemplate, Rack,
+    RackGroup, RackReservation, RackRole, Region, Site, VIRTUAL_IFACE_TYPES,
 )
 
 
@@ -587,6 +587,10 @@ class InterfaceConnectionFilter(django_filters.FilterSet):
         label='Device',
     )
 
+    class Meta:
+        model = InterfaceConnection
+        fields = ['connection_status']
+
     def filter_site(self, queryset, name, value):
         if not value.strip():
             return queryset