Skip to content

Commit 5121122

Browse files
committed
Add missing GraphQL filters
1 parent 66064be commit 5121122

File tree

9 files changed

+191
-47
lines changed

9 files changed

+191
-47
lines changed

Diff for: netbox/circuits/graphql/filters.py

+3
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,9 @@ class ProviderFilter(ContactFilterMixin, PrimaryModelFilterMixin):
153153
name: FilterLookup[str] | None = strawberry_django.filter_field()
154154
slug: FilterLookup[str] | None = strawberry_django.filter_field()
155155
asns: Annotated['ASNFilter', strawberry.lazy('ipam.graphql.filters')] | None = strawberry_django.filter_field()
156+
circuits: Annotated['CircuitFilter', strawberry.lazy('circuits.graphql.filters')] | None = (
157+
strawberry_django.filter_field()
158+
)
156159

157160

158161
@strawberry_django.filter(models.ProviderAccount, lookups=True)

Diff for: netbox/dcim/graphql/filter_mixins.py

+3-4
Original file line numberDiff line numberDiff line change
@@ -97,10 +97,6 @@ class InterfaceBaseFilterMixin(BaseFilterMixin):
9797
strawberry_django.filter_field()
9898
)
9999
mode: InterfaceModeEnum | None = strawberry_django.filter_field()
100-
parent: Annotated['InterfaceFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
101-
strawberry_django.filter_field()
102-
)
103-
parent_id: ID | None = strawberry_django.filter_field()
104100
bridge: Annotated['InterfaceFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
105101
strawberry_django.filter_field()
106102
)
@@ -135,6 +131,9 @@ class RackBaseFilterMixin(WeightFilterMixin, PrimaryModelFilterMixin):
135131
outer_width: Annotated['IntegerLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
136132
strawberry_django.filter_field()
137133
)
134+
outer_height: Annotated['IntegerLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
135+
strawberry_django.filter_field()
136+
)
138137
outer_depth: Annotated['IntegerLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
139138
strawberry_django.filter_field()
140139
)

Diff for: netbox/dcim/graphql/filters.py

+113-9
Original file line numberDiff line numberDiff line change
@@ -229,31 +229,31 @@ class DeviceFilter(
229229
longitude: Annotated['FloatLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
230230
strawberry_django.filter_field()
231231
)
232-
interfaces: Annotated['InterfaceFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
232+
console_ports: Annotated['ConsolePortFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
233233
strawberry_django.filter_field()
234234
)
235-
consoleports: Annotated['ConsolePortFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
235+
console_server_ports: Annotated['ConsoleServerPortFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
236236
strawberry_django.filter_field()
237237
)
238-
consoleserverports: Annotated['ConsoleServerPortFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
238+
power_outlets: Annotated['PowerOutletFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
239239
strawberry_django.filter_field()
240240
)
241-
poweroutlets: Annotated['PowerOutletFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
241+
power_ports: Annotated['PowerPortFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
242242
strawberry_django.filter_field()
243243
)
244-
powerports: Annotated['PowerPortFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
244+
interfaces: Annotated['InterfaceFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
245245
strawberry_django.filter_field()
246246
)
247-
devicebays: Annotated['DeviceBayFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
247+
front_ports: Annotated['FrontPortFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
248248
strawberry_django.filter_field()
249249
)
250-
frontports: Annotated['FrontPortFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
250+
rear_ports: Annotated['RearPortFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
251251
strawberry_django.filter_field()
252252
)
253-
rearports: Annotated['RearPortFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
253+
device_bays: Annotated['DeviceBayFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
254254
strawberry_django.filter_field()
255255
)
256-
modulebays: Annotated['ModuleBayFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
256+
module_bays: Annotated['ModuleBayFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
257257
strawberry_django.filter_field()
258258
)
259259
modules: Annotated['ModuleFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
@@ -340,6 +340,36 @@ class DeviceTypeFilter(ImageAttachmentFilterMixin, PrimaryModelFilterMixin, Weig
340340
rear_image: Annotated['ImageAttachmentFilter', strawberry.lazy('extras.graphql.filters')] | None = (
341341
strawberry_django.filter_field()
342342
)
343+
console_port_templates: (
344+
Annotated['ConsolePortTemplateFilter', strawberry.lazy('dcim.graphql.filters')] | None
345+
) = strawberry_django.filter_field()
346+
console_server_port_templates: (
347+
Annotated['ConsoleServerPortTemplateFilter', strawberry.lazy('dcim.graphql.filters')] | None
348+
) = strawberry_django.filter_field()
349+
power_port_templates: (
350+
Annotated['PowerPortTemplateFilter', strawberry.lazy('dcim.graphql.filters')] | None
351+
) = strawberry_django.filter_field()
352+
power_outlet_templates: (
353+
Annotated['PowerOutletTemplateFilter', strawberry.lazy('dcim.graphql.filters')] | None
354+
) = strawberry_django.filter_field()
355+
interface_templates: (
356+
Annotated['InterfaceTemplateFilter', strawberry.lazy('dcim.graphql.filters')] | None
357+
) = strawberry_django.filter_field()
358+
front_port_templates: (
359+
Annotated['FrontPortTemplateFilter', strawberry.lazy('dcim.graphql.filters')] | None
360+
) = strawberry_django.filter_field()
361+
rear_port_templates: (
362+
Annotated['RearPortTemplateFilter', strawberry.lazy('dcim.graphql.filters')] | None
363+
) = strawberry_django.filter_field()
364+
device_bay_templates: (
365+
Annotated['DeviceBayTemplateFilter', strawberry.lazy('dcim.graphql.filters')] | None
366+
) = strawberry_django.filter_field()
367+
module_bay_templates: (
368+
Annotated['ModuleBayTemplateFilter', strawberry.lazy('dcim.graphql.filters')] | None
369+
) = strawberry_django.filter_field()
370+
inventory_item_templates: (
371+
Annotated['InventoryItemTemplateFilter', strawberry.lazy('dcim.graphql.filters')] | None
372+
) = strawberry_django.filter_field()
343373
console_port_template_count: FilterLookup[int] | None = strawberry_django.filter_field()
344374
console_server_port_template_count: FilterLookup[int] | None = strawberry_django.filter_field()
345375
power_port_template_count: FilterLookup[int] | None = strawberry_django.filter_field()
@@ -405,6 +435,10 @@ class InterfaceFilter(ModularComponentModelFilterMixin, InterfaceBaseFilterMixin
405435
strawberry_django.filter_field()
406436
)
407437
wwn: FilterLookup[str] | None = strawberry_django.filter_field()
438+
parent: Annotated['InterfaceFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
439+
strawberry_django.filter_field()
440+
)
441+
parent_id: ID | None = strawberry_django.filter_field()
408442
rf_role: Annotated['WirelessRoleEnum', strawberry.lazy('wireless.graphql.enums')] | None = (
409443
strawberry_django.filter_field()
410444
)
@@ -544,6 +578,36 @@ class ModuleFilter(PrimaryModelFilterMixin, ConfigContextFilterMixin):
544578
)
545579
serial: FilterLookup[str] | None = strawberry_django.filter_field()
546580
asset_tag: FilterLookup[str] | None = strawberry_django.filter_field()
581+
console_ports: Annotated['ConsolePortFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
582+
strawberry_django.filter_field()
583+
)
584+
console_server_ports: Annotated['ConsoleServerPortFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
585+
strawberry_django.filter_field()
586+
)
587+
power_outlets: Annotated['PowerOutletFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
588+
strawberry_django.filter_field()
589+
)
590+
power_ports: Annotated['PowerPortFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
591+
strawberry_django.filter_field()
592+
)
593+
interfaces: Annotated['InterfaceFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
594+
strawberry_django.filter_field()
595+
)
596+
front_ports: Annotated['FrontPortFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
597+
strawberry_django.filter_field()
598+
)
599+
rear_ports: Annotated['RearPortFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
600+
strawberry_django.filter_field()
601+
)
602+
device_bays: Annotated['DeviceBayFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
603+
strawberry_django.filter_field()
604+
)
605+
module_bays: Annotated['ModuleBayFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
606+
strawberry_django.filter_field()
607+
)
608+
modules: Annotated['ModuleFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
609+
strawberry_django.filter_field()
610+
)
547611

548612

549613
@strawberry_django.filter(models.ModuleBay, lookups=True)
@@ -571,11 +635,45 @@ class ModuleTypeFilter(ImageAttachmentFilterMixin, PrimaryModelFilterMixin, Weig
571635
strawberry_django.filter_field()
572636
)
573637
manufacturer_id: ID | None = strawberry_django.filter_field()
638+
profile: Annotated['ModuleTypeProfileFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
639+
strawberry_django.filter_field()
640+
)
641+
profile_id: ID | None = strawberry_django.filter_field()
574642
model: FilterLookup[str] | None = strawberry_django.filter_field()
575643
part_number: FilterLookup[str] | None = strawberry_django.filter_field()
576644
airflow: Annotated['ModuleAirflowEnum', strawberry.lazy('dcim.graphql.enums')] | None = (
577645
strawberry_django.filter_field()
578646
)
647+
console_port_templates: (
648+
Annotated['ConsolePortTemplateFilter', strawberry.lazy('dcim.graphql.filters')] | None
649+
) = strawberry_django.filter_field()
650+
console_server_port_templates: (
651+
Annotated['ConsoleServerPortTemplateFilter', strawberry.lazy('dcim.graphql.filters')] | None
652+
) = strawberry_django.filter_field()
653+
power_port_templates: (
654+
Annotated['PowerPortTemplateFilter', strawberry.lazy('dcim.graphql.filters')] | None
655+
) = strawberry_django.filter_field()
656+
power_outlet_templates: (
657+
Annotated['PowerOutletTemplateFilter', strawberry.lazy('dcim.graphql.filters')] | None
658+
) = strawberry_django.filter_field()
659+
interface_templates: (
660+
Annotated['InterfaceTemplateFilter', strawberry.lazy('dcim.graphql.filters')] | None
661+
) = strawberry_django.filter_field()
662+
front_port_templates: (
663+
Annotated['FrontPortTemplateFilter', strawberry.lazy('dcim.graphql.filters')] | None
664+
) = strawberry_django.filter_field()
665+
rear_port_templates: (
666+
Annotated['RearPortTemplateFilter', strawberry.lazy('dcim.graphql.filters')] | None
667+
) = strawberry_django.filter_field()
668+
device_bay_templates: (
669+
Annotated['DeviceBayTemplateFilter', strawberry.lazy('dcim.graphql.filters')] | None
670+
) = strawberry_django.filter_field()
671+
module_bay_templates: (
672+
Annotated['ModuleBayTemplateFilter', strawberry.lazy('dcim.graphql.filters')] | None
673+
) = strawberry_django.filter_field()
674+
inventory_item_templates: (
675+
Annotated['InventoryItemTemplateFilter', strawberry.lazy('dcim.graphql.filters')] | None
676+
) = strawberry_django.filter_field()
579677

580678

581679
@strawberry_django.filter(models.Platform, lookups=True)
@@ -833,6 +931,9 @@ class VirtualChassisFilter(PrimaryModelFilterMixin):
833931
master_id: ID | None = strawberry_django.filter_field()
834932
name: FilterLookup[str] | None = strawberry_django.filter_field()
835933
domain: FilterLookup[str] | None = strawberry_django.filter_field()
934+
members: (
935+
Annotated['DeviceFilter', strawberry.lazy('dcim.graphql.filters')] | None
936+
) = strawberry_django.filter_field()
836937
member_count: FilterLookup[int] | None = strawberry_django.filter_field()
837938

838939

@@ -856,3 +957,6 @@ class VirtualDeviceContextFilter(TenancyFilterMixin, PrimaryModelFilterMixin):
856957
)
857958
primary_ip6_id: ID | None = strawberry_django.filter_field()
858959
comments: FilterLookup[str] | None = strawberry_django.filter_field()
960+
interfaces: (
961+
Annotated['InterfaceFilter', strawberry.lazy('dcim.graphql.filters')] | None
962+
) = strawberry_django.filter_field()

Diff for: netbox/ipam/graphql/filters.py

+21-3
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
if TYPE_CHECKING:
2020
from netbox.graphql.filter_lookups import IntegerArrayLookup, IntegerLookup
21+
from circuits.graphql.filters import ProviderFilter
2122
from core.graphql.filters import ContentTypeFilter
2223
from dcim.graphql.filters import SiteFilter
2324
from vpn.graphql.filters import L2VPNFilter
@@ -52,6 +53,12 @@ class ASNFilter(TenancyFilterMixin, PrimaryModelFilterMixin):
5253
asn: Annotated['IntegerLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
5354
strawberry_django.filter_field()
5455
)
56+
sites: (
57+
Annotated['SiteFilter', strawberry.lazy('dcim.graphql.filters')] | None
58+
) = strawberry_django.filter_field()
59+
providers: (
60+
Annotated['ProviderFilter', strawberry.lazy('circuits.graphql.filters')] | None
61+
) = strawberry_django.filter_field()
5562

5663

5764
@strawberry_django.filter(models.ASNRange, lookups=True)
@@ -211,12 +218,24 @@ class RoleFilter(OrganizationalModelFilterMixin):
211218
@strawberry_django.filter(models.RouteTarget, lookups=True)
212219
class RouteTargetFilter(TenancyFilterMixin, PrimaryModelFilterMixin):
213220
name: FilterLookup[str] | None = strawberry_django.filter_field()
221+
importing_vrfs: Annotated['VRFFilter', strawberry.lazy('ipam.graphql.filters')] | None = (
222+
strawberry_django.filter_field()
223+
)
224+
exporting_vrfs: Annotated['VRFFilter', strawberry.lazy('ipam.graphql.filters')] | None = (
225+
strawberry_django.filter_field()
226+
)
227+
importing_l2vpns: Annotated['L2VPNFilter', strawberry.lazy('vpn.graphql.filters')] | None = (
228+
strawberry_django.filter_field()
229+
)
230+
exporting_l2vpns: Annotated['L2VPNFilter', strawberry.lazy('vpn.graphql.filters')] | None = (
231+
strawberry_django.filter_field()
232+
)
214233

215234

216235
@strawberry_django.filter(models.Service, lookups=True)
217236
class ServiceFilter(ContactFilterMixin, ServiceBaseFilterMixin, PrimaryModelFilterMixin):
218237
name: FilterLookup[str] | None = strawberry_django.filter_field()
219-
ipaddresses: Annotated['IPAddressFilter', strawberry.lazy('ipam.graphql.filters')] | None = (
238+
ip_addresses: Annotated['IPAddressFilter', strawberry.lazy('ipam.graphql.filters')] | None = (
220239
strawberry_django.filter_field()
221240
)
222241
parent_object_type: Annotated['ContentTypeFilter', strawberry.lazy('core.graphql.filters')] | None = (
@@ -249,10 +268,9 @@ class VLANFilter(TenancyFilterMixin, PrimaryModelFilterMixin):
249268
strawberry_django.filter_field()
250269
)
251270
qinq_svlan_id: ID | None = strawberry_django.filter_field()
252-
qinq_cvlan: Annotated['VLANFilter', strawberry.lazy('ipam.graphql.filters')] | None = (
271+
qinq_cvlans: Annotated['VLANFilter', strawberry.lazy('ipam.graphql.filters')] | None = (
253272
strawberry_django.filter_field()
254273
)
255-
qinq_cvlan_id: ID | None = strawberry_django.filter_field()
256274
qinq_role: Annotated['VLANQinQRoleEnum', strawberry.lazy('ipam.graphql.enums')] | None = (
257275
strawberry_django.filter_field()
258276
)

Diff for: netbox/netbox/graphql/filter_mixins.py

-5
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99

1010
from core.graphql.filter_mixins import BaseFilterMixin, BaseObjectTypeFilterMixin, ChangeLogFilterMixin
1111
from extras.graphql.filter_mixins import CustomFieldsFilterMixin, JournalEntriesFilterMixin, TagsFilterMixin
12-
from netbox.graphql.filter_lookups import IntegerLookup
1312

1413
__all__ = (
1514
'DistanceFilterMixin',
@@ -46,10 +45,6 @@ class NestedGroupModelFilterMixin(NetBoxModelFilterMixin):
4645
name: FilterLookup[str] | None = strawberry_django.filter_field()
4746
slug: FilterLookup[str] | None = strawberry_django.filter_field()
4847
description: FilterLookup[str] | None = strawberry_django.filter_field()
49-
lft: IntegerLookup | None = strawberry_django.filter_field()
50-
rght: IntegerLookup | None = strawberry_django.filter_field()
51-
tree_id: IntegerLookup | None = strawberry_django.filter_field()
52-
level: IntegerLookup | None = strawberry_django.filter_field()
5348
parent_id: ID | None = strawberry_django.filter_field()
5449

5550

0 commit comments

Comments
 (0)