mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Moved interface filterset under common class (#12200)
* moved interface filterset under common class #12007 * lint fix
This commit is contained in:
committed by
GitHub
parent
085cfc58f4
commit
c26fe266cc
@ -24,6 +24,7 @@ __all__ = (
|
|||||||
'CableFilterSet',
|
'CableFilterSet',
|
||||||
'CabledObjectFilterSet',
|
'CabledObjectFilterSet',
|
||||||
'CableTerminationFilterSet',
|
'CableTerminationFilterSet',
|
||||||
|
'CommonInterfaceFilterSet',
|
||||||
'ConsoleConnectionFilterSet',
|
'ConsoleConnectionFilterSet',
|
||||||
'ConsolePortFilterSet',
|
'ConsolePortFilterSet',
|
||||||
'ConsolePortTemplateFilterSet',
|
'ConsolePortTemplateFilterSet',
|
||||||
@ -1321,11 +1322,45 @@ class PowerOutletFilterSet(
|
|||||||
fields = ['id', 'name', 'label', 'feed_leg', 'description', 'cable_end']
|
fields = ['id', 'name', 'label', 'feed_leg', 'description', 'cable_end']
|
||||||
|
|
||||||
|
|
||||||
|
class CommonInterfaceFilterSet(django_filters.FilterSet):
|
||||||
|
vlan_id = django_filters.CharFilter(
|
||||||
|
method='filter_vlan_id',
|
||||||
|
label=_('Assigned VLAN')
|
||||||
|
)
|
||||||
|
vlan = django_filters.CharFilter(
|
||||||
|
method='filter_vlan',
|
||||||
|
label=_('Assigned VID')
|
||||||
|
)
|
||||||
|
vrf_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
|
field_name='vrf',
|
||||||
|
queryset=VRF.objects.all(),
|
||||||
|
label=_('VRF'),
|
||||||
|
)
|
||||||
|
vrf = django_filters.ModelMultipleChoiceFilter(
|
||||||
|
field_name='vrf__rd',
|
||||||
|
queryset=VRF.objects.all(),
|
||||||
|
to_field_name='rd',
|
||||||
|
label=_('VRF (RD)'),
|
||||||
|
)
|
||||||
|
l2vpn_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
|
field_name='l2vpn_terminations__l2vpn',
|
||||||
|
queryset=L2VPN.objects.all(),
|
||||||
|
label=_('L2VPN (ID)'),
|
||||||
|
)
|
||||||
|
l2vpn = django_filters.ModelMultipleChoiceFilter(
|
||||||
|
field_name='l2vpn_terminations__l2vpn__identifier',
|
||||||
|
queryset=L2VPN.objects.all(),
|
||||||
|
to_field_name='identifier',
|
||||||
|
label=_('L2VPN'),
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class InterfaceFilterSet(
|
class InterfaceFilterSet(
|
||||||
ModularDeviceComponentFilterSet,
|
ModularDeviceComponentFilterSet,
|
||||||
NetBoxModelFilterSet,
|
NetBoxModelFilterSet,
|
||||||
CabledObjectFilterSet,
|
CabledObjectFilterSet,
|
||||||
PathEndpointFilterSet
|
PathEndpointFilterSet,
|
||||||
|
CommonInterfaceFilterSet
|
||||||
):
|
):
|
||||||
# Override device and device_id filters from DeviceComponentFilterSet to match against any peer virtual chassis
|
# Override device and device_id filters from DeviceComponentFilterSet to match against any peer virtual chassis
|
||||||
# members
|
# members
|
||||||
@ -1370,14 +1405,6 @@ class InterfaceFilterSet(
|
|||||||
poe_type = django_filters.MultipleChoiceFilter(
|
poe_type = django_filters.MultipleChoiceFilter(
|
||||||
choices=InterfacePoETypeChoices
|
choices=InterfacePoETypeChoices
|
||||||
)
|
)
|
||||||
vlan_id = django_filters.CharFilter(
|
|
||||||
method='filter_vlan_id',
|
|
||||||
label=_('Assigned VLAN')
|
|
||||||
)
|
|
||||||
vlan = django_filters.CharFilter(
|
|
||||||
method='filter_vlan',
|
|
||||||
label=_('Assigned VID')
|
|
||||||
)
|
|
||||||
type = django_filters.MultipleChoiceFilter(
|
type = django_filters.MultipleChoiceFilter(
|
||||||
choices=InterfaceTypeChoices,
|
choices=InterfaceTypeChoices,
|
||||||
null_value=None
|
null_value=None
|
||||||
@ -1388,17 +1415,6 @@ class InterfaceFilterSet(
|
|||||||
rf_channel = django_filters.MultipleChoiceFilter(
|
rf_channel = django_filters.MultipleChoiceFilter(
|
||||||
choices=WirelessChannelChoices
|
choices=WirelessChannelChoices
|
||||||
)
|
)
|
||||||
vrf_id = django_filters.ModelMultipleChoiceFilter(
|
|
||||||
field_name='vrf',
|
|
||||||
queryset=VRF.objects.all(),
|
|
||||||
label=_('VRF'),
|
|
||||||
)
|
|
||||||
vrf = django_filters.ModelMultipleChoiceFilter(
|
|
||||||
field_name='vrf__rd',
|
|
||||||
queryset=VRF.objects.all(),
|
|
||||||
to_field_name='rd',
|
|
||||||
label=_('VRF (RD)'),
|
|
||||||
)
|
|
||||||
vdc_id = django_filters.ModelMultipleChoiceFilter(
|
vdc_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
field_name='vdcs',
|
field_name='vdcs',
|
||||||
queryset=VirtualDeviceContext.objects.all(),
|
queryset=VirtualDeviceContext.objects.all(),
|
||||||
@ -1416,17 +1432,6 @@ class InterfaceFilterSet(
|
|||||||
to_field_name='name',
|
to_field_name='name',
|
||||||
label='Virtual Device Context',
|
label='Virtual Device Context',
|
||||||
)
|
)
|
||||||
l2vpn_id = django_filters.ModelMultipleChoiceFilter(
|
|
||||||
field_name='l2vpn_terminations__l2vpn',
|
|
||||||
queryset=L2VPN.objects.all(),
|
|
||||||
label=_('L2VPN (ID)'),
|
|
||||||
)
|
|
||||||
l2vpn = django_filters.ModelMultipleChoiceFilter(
|
|
||||||
field_name='l2vpn_terminations__l2vpn__identifier',
|
|
||||||
queryset=L2VPN.objects.all(),
|
|
||||||
to_field_name='identifier',
|
|
||||||
label=_('L2VPN'),
|
|
||||||
)
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Interface
|
model = Interface
|
||||||
|
@ -2,9 +2,9 @@ import django_filters
|
|||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
from django.utils.translation import gettext as _
|
from django.utils.translation import gettext as _
|
||||||
|
|
||||||
|
from dcim.filtersets import CommonInterfaceFilterSet
|
||||||
from dcim.models import Device, DeviceRole, Platform, Region, Site, SiteGroup
|
from dcim.models import Device, DeviceRole, Platform, Region, Site, SiteGroup
|
||||||
from extras.filtersets import LocalConfigContextFilterSet
|
from extras.filtersets import LocalConfigContextFilterSet
|
||||||
from ipam.models import L2VPN, VRF
|
|
||||||
from netbox.filtersets import OrganizationalModelFilterSet, NetBoxModelFilterSet
|
from netbox.filtersets import OrganizationalModelFilterSet, NetBoxModelFilterSet
|
||||||
from tenancy.filtersets import TenancyFilterSet, ContactModelFilterSet
|
from tenancy.filtersets import TenancyFilterSet, ContactModelFilterSet
|
||||||
from utilities.filters import MultiValueCharFilter, MultiValueMACAddressFilter, TreeNodeMultipleChoiceFilter
|
from utilities.filters import MultiValueCharFilter, MultiValueMACAddressFilter, TreeNodeMultipleChoiceFilter
|
||||||
@ -250,7 +250,7 @@ class VirtualMachineFilterSet(
|
|||||||
return queryset.exclude(params)
|
return queryset.exclude(params)
|
||||||
|
|
||||||
|
|
||||||
class VMInterfaceFilterSet(NetBoxModelFilterSet):
|
class VMInterfaceFilterSet(NetBoxModelFilterSet, CommonInterfaceFilterSet):
|
||||||
cluster_id = django_filters.ModelMultipleChoiceFilter(
|
cluster_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
field_name='virtual_machine__cluster',
|
field_name='virtual_machine__cluster',
|
||||||
queryset=Cluster.objects.all(),
|
queryset=Cluster.objects.all(),
|
||||||
@ -286,28 +286,6 @@ class VMInterfaceFilterSet(NetBoxModelFilterSet):
|
|||||||
mac_address = MultiValueMACAddressFilter(
|
mac_address = MultiValueMACAddressFilter(
|
||||||
label=_('MAC address'),
|
label=_('MAC address'),
|
||||||
)
|
)
|
||||||
vrf_id = django_filters.ModelMultipleChoiceFilter(
|
|
||||||
field_name='vrf',
|
|
||||||
queryset=VRF.objects.all(),
|
|
||||||
label=_('VRF'),
|
|
||||||
)
|
|
||||||
vrf = django_filters.ModelMultipleChoiceFilter(
|
|
||||||
field_name='vrf__rd',
|
|
||||||
queryset=VRF.objects.all(),
|
|
||||||
to_field_name='rd',
|
|
||||||
label=_('VRF (RD)'),
|
|
||||||
)
|
|
||||||
l2vpn_id = django_filters.ModelMultipleChoiceFilter(
|
|
||||||
field_name='l2vpn_terminations__l2vpn',
|
|
||||||
queryset=L2VPN.objects.all(),
|
|
||||||
label=_('L2VPN (ID)'),
|
|
||||||
)
|
|
||||||
l2vpn = django_filters.ModelMultipleChoiceFilter(
|
|
||||||
field_name='l2vpn_terminations__l2vpn__identifier',
|
|
||||||
queryset=L2VPN.objects.all(),
|
|
||||||
to_field_name='identifier',
|
|
||||||
label=_('L2VPN'),
|
|
||||||
)
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = VMInterface
|
model = VMInterface
|
||||||
|
Reference in New Issue
Block a user