mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-24 17:38:37 -06:00
Added virtual_chassis_id API filter for interfaces
This commit is contained in:
parent
911ce3f047
commit
67a30fdf91
@ -17,7 +17,7 @@ from .models import (
|
|||||||
ConsolePort, ConsolePortTemplate, ConsoleServerPort, ConsoleServerPortTemplate, Device, DeviceBay,
|
ConsolePort, ConsolePortTemplate, ConsoleServerPort, ConsoleServerPortTemplate, Device, DeviceBay,
|
||||||
DeviceBayTemplate, DeviceRole, DeviceType, Interface, InterfaceConnection, InterfaceTemplate, Manufacturer,
|
DeviceBayTemplate, DeviceRole, DeviceType, Interface, InterfaceConnection, InterfaceTemplate, Manufacturer,
|
||||||
InventoryItem, Platform, PowerOutlet, PowerOutletTemplate, PowerPort, PowerPortTemplate, Rack, RackGroup,
|
InventoryItem, Platform, PowerOutlet, PowerOutletTemplate, PowerPort, PowerPortTemplate, Rack, RackGroup,
|
||||||
RackReservation, RackRole, Region, Site, VCMembership,
|
RackReservation, RackRole, Region, Site, VirtualChassis, VCMembership,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -569,6 +569,11 @@ class InterfaceFilter(django_filters.FilterSet):
|
|||||||
method='_mac_address',
|
method='_mac_address',
|
||||||
label='MAC address',
|
label='MAC address',
|
||||||
)
|
)
|
||||||
|
virtual_chassis_id = django_filters.NumberFilter(
|
||||||
|
method='_virtual_chassis_id',
|
||||||
|
name='pk',
|
||||||
|
label='Virtual chassis (ID)',
|
||||||
|
)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Interface
|
model = Interface
|
||||||
@ -601,6 +606,14 @@ class InterfaceFilter(django_filters.FilterSet):
|
|||||||
except AddrFormatError:
|
except AddrFormatError:
|
||||||
return queryset.none()
|
return queryset.none()
|
||||||
|
|
||||||
|
def _virtual_chassis_id(self, queryset, name, value):
|
||||||
|
try:
|
||||||
|
virtual_chassis = VirtualChassis.objects.get(**{name: value})
|
||||||
|
ordering = virtual_chassis.master.device_type.interface_ordering
|
||||||
|
return queryset.filter(device__vc_membership__virtual_chassis=virtual_chassis).order_naturally(ordering)
|
||||||
|
except VirtualChassis.DoesNotExist:
|
||||||
|
return queryset.none()
|
||||||
|
|
||||||
|
|
||||||
class DeviceBayFilter(DeviceComponentFilterSet):
|
class DeviceBayFilter(DeviceComponentFilterSet):
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user