mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-22 20:12:00 -06:00
9856 update strawberry types
This commit is contained in:
parent
5e40ebd331
commit
663af64ec1
@ -6,7 +6,6 @@ from dcim.graphql.mixins import CabledObjectMixin
|
||||
from extras.graphql.mixins import CustomFieldsMixin, TagsMixin, ContactsMixin
|
||||
from netbox.graphql.types import ObjectType, OrganizationalObjectType, NetBoxObjectType
|
||||
from .filters import *
|
||||
from typing import List
|
||||
|
||||
__all__ = (
|
||||
'CircuitTerminationType',
|
||||
|
0
netbox/core/graphql/filters.py
Normal file
0
netbox/core/graphql/filters.py
Normal file
@ -1,5 +1,9 @@
|
||||
from core import filtersets, models
|
||||
import strawberry
|
||||
import strawberry_django
|
||||
|
||||
from core import models
|
||||
from netbox.graphql.types import BaseObjectType, NetBoxObjectType
|
||||
from .filters import *
|
||||
|
||||
__all__ = (
|
||||
'DataFileType',
|
||||
@ -7,15 +11,19 @@ __all__ = (
|
||||
)
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.DataFile,
|
||||
fields='__all__',
|
||||
filters=DataFileFilter
|
||||
)
|
||||
class DataFileType(BaseObjectType):
|
||||
class Meta:
|
||||
model = models.DataFile
|
||||
exclude = ('data',)
|
||||
filterset_class = filtersets.DataFileFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.DataSource,
|
||||
fields='__all__',
|
||||
filters=DataSourceFilter
|
||||
)
|
||||
class DataSourceType(NetBoxObjectType):
|
||||
class Meta:
|
||||
model = models.DataSource
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.DataSourceFilterSet
|
||||
pass
|
||||
|
0
netbox/dcim/graphql/filters.py
Normal file
0
netbox/dcim/graphql/filters.py
Normal file
@ -1,12 +1,14 @@
|
||||
import graphene
|
||||
import strawberry
|
||||
import strawberry_django
|
||||
|
||||
from dcim import filtersets, models
|
||||
from dcim import models
|
||||
from extras.graphql.mixins import (
|
||||
ChangelogMixin, ConfigContextMixin, ContactsMixin, CustomFieldsMixin, ImageAttachmentsMixin, TagsMixin,
|
||||
)
|
||||
from ipam.graphql.mixins import IPAddressesMixin, VLANGroupsMixin
|
||||
from netbox.graphql.scalars import BigInt
|
||||
from netbox.graphql.types import BaseObjectType, OrganizationalObjectType, NetBoxObjectType
|
||||
from .filters import *
|
||||
from .mixins import CabledObjectMixin, PathEndpointMixin
|
||||
|
||||
__all__ = (
|
||||
@ -86,6 +88,11 @@ class ComponentTemplateObjectType(
|
||||
# Model types
|
||||
#
|
||||
|
||||
@strawberry_django.type(
|
||||
models.Cable,
|
||||
fields='__all__',
|
||||
filters=CableFilter
|
||||
)
|
||||
class CableType(NetBoxObjectType):
|
||||
a_terminations = graphene.List('dcim.graphql.gfk_mixins.CableTerminationTerminationType')
|
||||
b_terminations = graphene.List('dcim.graphql.gfk_mixins.CableTerminationTerminationType')
|
||||
@ -108,66 +115,66 @@ class CableType(NetBoxObjectType):
|
||||
return self.b_terminations
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.CableTermination,
|
||||
exclude=('termination_type', 'termination_id'),
|
||||
filters=CableTerminationFilter
|
||||
)
|
||||
class CableTerminationType(NetBoxObjectType):
|
||||
termination = graphene.Field('dcim.graphql.gfk_mixins.CableTerminationTerminationType')
|
||||
|
||||
class Meta:
|
||||
model = models.CableTermination
|
||||
exclude = ('termination_type', 'termination_id')
|
||||
filterset_class = filtersets.CableTerminationFilterSet
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.ConsolePort,
|
||||
exclude=('_path',),
|
||||
filters=ConsolePortFilter
|
||||
)
|
||||
class ConsolePortType(ComponentObjectType, CabledObjectMixin, PathEndpointMixin):
|
||||
|
||||
class Meta:
|
||||
model = models.ConsolePort
|
||||
exclude = ('_path',)
|
||||
filterset_class = filtersets.ConsolePortFilterSet
|
||||
|
||||
def resolve_type(self, info):
|
||||
return self.type or None
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.ConsolePortTemplate,
|
||||
fields='__all__',
|
||||
filters=ConsolePortTemplateFilter
|
||||
)
|
||||
class ConsolePortTemplateType(ComponentTemplateObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.ConsolePortTemplate
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.ConsolePortTemplateFilterSet
|
||||
|
||||
def resolve_type(self, info):
|
||||
return self.type or None
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.ConsoleServerPort,
|
||||
exclude=('_path',),
|
||||
filters=ConsoleServerPortFilter
|
||||
)
|
||||
class ConsoleServerPortType(ComponentObjectType, CabledObjectMixin, PathEndpointMixin):
|
||||
|
||||
class Meta:
|
||||
model = models.ConsoleServerPort
|
||||
exclude = ('_path',)
|
||||
filterset_class = filtersets.ConsoleServerPortFilterSet
|
||||
|
||||
def resolve_type(self, info):
|
||||
return self.type or None
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.ConsoleServerPortTemplate,
|
||||
fields='__all__',
|
||||
filters=ConsoleServerPortTemplateFilter
|
||||
)
|
||||
class ConsoleServerPortTemplateType(ComponentTemplateObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.ConsoleServerPortTemplate
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.ConsoleServerPortTemplateFilterSet
|
||||
|
||||
def resolve_type(self, info):
|
||||
return self.type or None
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.Device,
|
||||
fields='__all__',
|
||||
filters=DeviceFilter
|
||||
)
|
||||
class DeviceType(ConfigContextMixin, ImageAttachmentsMixin, ContactsMixin, NetBoxObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.Device
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.DeviceFilterSet
|
||||
|
||||
def resolve_face(self, info):
|
||||
return self.face or None
|
||||
|
||||
@ -175,46 +182,49 @@ class DeviceType(ConfigContextMixin, ImageAttachmentsMixin, ContactsMixin, NetBo
|
||||
return self.airflow or None
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.DeviceBay,
|
||||
fields='__all__',
|
||||
filters=DeviceBayFilter
|
||||
)
|
||||
class DeviceBayType(ComponentObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.DeviceBay
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.DeviceBayFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.DeviceBayTemplate,
|
||||
fields='__all__',
|
||||
filters=DeviceBayTemplateFilter
|
||||
)
|
||||
class DeviceBayTemplateType(ComponentTemplateObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.DeviceBayTemplate
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.DeviceBayTemplateFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.InventoryItemTemplate,
|
||||
exclude=('component_type', 'component_id'),
|
||||
filters=InventoryItemTemplateFilter
|
||||
)
|
||||
class InventoryItemTemplateType(ComponentTemplateObjectType):
|
||||
component = graphene.Field('dcim.graphql.gfk_mixins.InventoryItemTemplateComponentType')
|
||||
|
||||
class Meta:
|
||||
model = models.InventoryItemTemplate
|
||||
exclude = ('component_type', 'component_id')
|
||||
filterset_class = filtersets.InventoryItemTemplateFilterSet
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.DeviceRole,
|
||||
fields='__all__',
|
||||
filters=DeviceRoleFilter
|
||||
)
|
||||
class DeviceRoleType(OrganizationalObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.DeviceRole
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.DeviceRoleFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.DeviceType,
|
||||
fields='__all__',
|
||||
filters=DeviceTypeFilter
|
||||
)
|
||||
class DeviceTypeType(NetBoxObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.DeviceType
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.DeviceTypeFilterSet
|
||||
|
||||
def resolve_subdevice_role(self, info):
|
||||
return self.subdevice_role or None
|
||||
|
||||
@ -225,29 +235,31 @@ class DeviceTypeType(NetBoxObjectType):
|
||||
return self.weight_unit or None
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.FrontPort,
|
||||
fields='__all__',
|
||||
filters=FrontPortFilter
|
||||
)
|
||||
class FrontPortType(ComponentObjectType, CabledObjectMixin):
|
||||
|
||||
class Meta:
|
||||
model = models.FrontPort
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.FrontPortFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.FrontPortTemplate,
|
||||
fields='__all__',
|
||||
filters=FrontPortTemplateFilter
|
||||
)
|
||||
class FrontPortTemplateType(ComponentTemplateObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.FrontPortTemplate
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.FrontPortTemplateFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.Interface,
|
||||
exclude=('_path',),
|
||||
filters=InterfaceFilter
|
||||
)
|
||||
class InterfaceType(IPAddressesMixin, ComponentObjectType, CabledObjectMixin, PathEndpointMixin):
|
||||
|
||||
class Meta:
|
||||
model = models.Interface
|
||||
exclude = ('_path',)
|
||||
filterset_class = filtersets.InterfaceFilterSet
|
||||
|
||||
def resolve_poe_mode(self, info):
|
||||
return self.poe_mode or None
|
||||
|
||||
@ -264,13 +276,13 @@ class InterfaceType(IPAddressesMixin, ComponentObjectType, CabledObjectMixin, Pa
|
||||
return self.rf_channel or None
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.InterfaceTemplate,
|
||||
fields='__all__',
|
||||
filters=InterfaceTemplateFilter
|
||||
)
|
||||
class InterfaceTemplateType(ComponentTemplateObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.InterfaceTemplate
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.InterfaceTemplateFilterSet
|
||||
|
||||
def resolve_poe_mode(self, info):
|
||||
return self.poe_mode or None
|
||||
|
||||
@ -281,97 +293,105 @@ class InterfaceTemplateType(ComponentTemplateObjectType):
|
||||
return self.rf_role or None
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.InventoryItem,
|
||||
exclude=('component_type', 'component_id'),
|
||||
filters=InventoryItemFilter
|
||||
)
|
||||
class InventoryItemType(ComponentObjectType):
|
||||
component = graphene.Field('dcim.graphql.gfk_mixins.InventoryItemComponentType')
|
||||
|
||||
class Meta:
|
||||
model = models.InventoryItem
|
||||
exclude = ('component_type', 'component_id')
|
||||
filterset_class = filtersets.InventoryItemFilterSet
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.InventoryItemRole,
|
||||
fields='__all__',
|
||||
filters=InventoryItemRoleFilter
|
||||
)
|
||||
class InventoryItemRoleType(OrganizationalObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.InventoryItemRole
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.InventoryItemRoleFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.Location,
|
||||
fields='__all__',
|
||||
filters=LocationFilter
|
||||
)
|
||||
class LocationType(VLANGroupsMixin, ImageAttachmentsMixin, ContactsMixin, OrganizationalObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.Location
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.LocationFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.Manufacturer,
|
||||
fields='__all__',
|
||||
filters=ManufacturerFilter
|
||||
)
|
||||
class ManufacturerType(OrganizationalObjectType, ContactsMixin):
|
||||
|
||||
class Meta:
|
||||
model = models.Manufacturer
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.ManufacturerFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.Module,
|
||||
fields='__all__',
|
||||
filters=ModuleFilter
|
||||
)
|
||||
class ModuleType(ComponentObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.Module
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.ModuleFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.ModuleBay,
|
||||
fields='__all__',
|
||||
filters=ModuleBayFilter
|
||||
)
|
||||
class ModuleBayType(ComponentObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.ModuleBay
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.ModuleBayFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.ModuleBayTemplate,
|
||||
fields='__all__',
|
||||
filters=ModuleBayTemplateFilter
|
||||
)
|
||||
class ModuleBayTemplateType(ComponentTemplateObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.ModuleBayTemplate
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.ModuleBayTemplateFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.ModuleType,
|
||||
fields='__all__',
|
||||
filters=ModuleTypeFilter
|
||||
)
|
||||
class ModuleTypeType(NetBoxObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.ModuleType
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.ModuleTypeFilterSet
|
||||
|
||||
def resolve_weight_unit(self, info):
|
||||
return self.weight_unit or None
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.Platform,
|
||||
fields='__all__',
|
||||
filters=PlatformFilter
|
||||
)
|
||||
class PlatformType(OrganizationalObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.Platform
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.PlatformFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.PowerFeed,
|
||||
exclude=('_path',),
|
||||
filters=PowerFeedFilter
|
||||
)
|
||||
class PowerFeedType(NetBoxObjectType, CabledObjectMixin, PathEndpointMixin):
|
||||
|
||||
class Meta:
|
||||
model = models.PowerFeed
|
||||
exclude = ('_path',)
|
||||
filterset_class = filtersets.PowerFeedFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.PowerOutlet,
|
||||
exclude=('_path',),
|
||||
filters=PowerOutletFilter
|
||||
)
|
||||
class PowerOutletType(ComponentObjectType, CabledObjectMixin, PathEndpointMixin):
|
||||
|
||||
class Meta:
|
||||
model = models.PowerOutlet
|
||||
exclude = ('_path',)
|
||||
filterset_class = filtersets.PowerOutletFilterSet
|
||||
|
||||
def resolve_feed_leg(self, info):
|
||||
return self.feed_leg or None
|
||||
|
||||
@ -379,13 +399,13 @@ class PowerOutletType(ComponentObjectType, CabledObjectMixin, PathEndpointMixin)
|
||||
return self.type or None
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.PowerOutletTemplate,
|
||||
fields='__all__',
|
||||
filters=PowerOutletTemplateFilter
|
||||
)
|
||||
class PowerOutletTemplateType(ComponentTemplateObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.PowerOutletTemplate
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.PowerOutletTemplateFilterSet
|
||||
|
||||
def resolve_feed_leg(self, info):
|
||||
return self.feed_leg or None
|
||||
|
||||
@ -393,43 +413,44 @@ class PowerOutletTemplateType(ComponentTemplateObjectType):
|
||||
return self.type or None
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.PowerPanel,
|
||||
fields='__all__',
|
||||
filters=PowerPanelFilter
|
||||
)
|
||||
class PowerPanelType(NetBoxObjectType, ContactsMixin):
|
||||
|
||||
class Meta:
|
||||
model = models.PowerPanel
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.PowerPanelFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.PowerPort,
|
||||
exclude=('_path',),
|
||||
filters=PowerPortFilter
|
||||
)
|
||||
class PowerPortType(ComponentObjectType, CabledObjectMixin, PathEndpointMixin):
|
||||
|
||||
class Meta:
|
||||
model = models.PowerPort
|
||||
exclude = ('_path',)
|
||||
filterset_class = filtersets.PowerPortFilterSet
|
||||
|
||||
def resolve_type(self, info):
|
||||
return self.type or None
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.PowerPortTemplate,
|
||||
fields='__all__',
|
||||
filters=PowerPortTemplateFilter
|
||||
)
|
||||
class PowerPortTemplateType(ComponentTemplateObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.PowerPortTemplate
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.PowerPortTemplateFilterSet
|
||||
|
||||
def resolve_type(self, info):
|
||||
return self.type or None
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.Rack,
|
||||
fields='__all__',
|
||||
filters=RackFilter
|
||||
)
|
||||
class RackType(VLANGroupsMixin, ImageAttachmentsMixin, ContactsMixin, NetBoxObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.Rack
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.RackFilterSet
|
||||
|
||||
def resolve_type(self, info):
|
||||
return self.type or None
|
||||
|
||||
@ -440,74 +461,82 @@ class RackType(VLANGroupsMixin, ImageAttachmentsMixin, ContactsMixin, NetBoxObje
|
||||
return self.weight_unit or None
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.RackReservation,
|
||||
fields='__all__',
|
||||
filters=RackReservationFilter
|
||||
)
|
||||
class RackReservationType(NetBoxObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.RackReservation
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.RackReservationFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.RackRole,
|
||||
fields='__all__',
|
||||
filters=RackRoleFilter
|
||||
)
|
||||
class RackRoleType(OrganizationalObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.RackRole
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.RackRoleFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.RearPort,
|
||||
fields='__all__',
|
||||
filters=RearPortFilter
|
||||
)
|
||||
class RearPortType(ComponentObjectType, CabledObjectMixin):
|
||||
|
||||
class Meta:
|
||||
model = models.RearPort
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.RearPortFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.RearPortTemplate,
|
||||
fields='__all__',
|
||||
filters=RearPortTemplateFilter
|
||||
)
|
||||
class RearPortTemplateType(ComponentTemplateObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.RearPortTemplate
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.RearPortTemplateFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.Region,
|
||||
fields='__all__',
|
||||
filters=RegionFilter
|
||||
)
|
||||
class RegionType(VLANGroupsMixin, ContactsMixin, OrganizationalObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.Region
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.RegionFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.Site,
|
||||
fields='__all__',
|
||||
filters=SiteFilter
|
||||
)
|
||||
class SiteType(VLANGroupsMixin, ImageAttachmentsMixin, ContactsMixin, NetBoxObjectType):
|
||||
asn = graphene.Field(BigInt)
|
||||
|
||||
class Meta:
|
||||
model = models.Site
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.SiteFilterSet
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.SiteGroup,
|
||||
fields='__all__',
|
||||
filters=SiteGroupFilter
|
||||
)
|
||||
class SiteGroupType(VLANGroupsMixin, ContactsMixin, OrganizationalObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.SiteGroup
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.SiteGroupFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.VirtualChassis,
|
||||
fields='__all__',
|
||||
filters=VirtualChassisFilter
|
||||
)
|
||||
class VirtualChassisType(NetBoxObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.VirtualChassis
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.VirtualChassisFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.VirtualDeviceContext,
|
||||
fields='__all__',
|
||||
filters=VirtualDeviceContextFilter
|
||||
)
|
||||
class VirtualDeviceContextType(NetBoxObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.VirtualDeviceContext
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.VirtualDeviceContextFilterSet
|
||||
pass
|
||||
|
@ -1,8 +1,11 @@
|
||||
import strawberry
|
||||
import strawberry_django
|
||||
|
||||
import strawberry
|
||||
from strawberry import auto
|
||||
import strawberry_django
|
||||
|
||||
from extras import filtersets, models
|
||||
from extras import models
|
||||
from extras.graphql.mixins import CustomFieldsMixin, TagsMixin
|
||||
from netbox.graphql.types import BaseObjectType, ObjectType, OrganizationalObjectType
|
||||
from .filters import *
|
||||
|
0
netbox/ipam/graphql/filters.py
Normal file
0
netbox/ipam/graphql/filters.py
Normal file
@ -1,8 +1,10 @@
|
||||
import graphene
|
||||
import strawberry
|
||||
import strawberry_django
|
||||
|
||||
from ipam import filtersets, models
|
||||
from ipam import models
|
||||
from netbox.graphql.scalars import BigInt
|
||||
from netbox.graphql.types import BaseObjectType, OrganizationalObjectType, NetBoxObjectType
|
||||
from .filters import *
|
||||
|
||||
__all__ = (
|
||||
'ASNType',
|
||||
@ -46,142 +48,152 @@ class BaseIPAddressFamilyType:
|
||||
return IPAddressFamilyType(self.family)
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.ASN,
|
||||
fields='__all__',
|
||||
filters=ProviderFilter
|
||||
)
|
||||
class ASNType(NetBoxObjectType):
|
||||
asn = graphene.Field(BigInt)
|
||||
|
||||
class Meta:
|
||||
model = models.ASN
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.ASNFilterSet
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.ASNRange,
|
||||
fields='__all__',
|
||||
filters=ASNRangeFilter
|
||||
)
|
||||
class ASNRangeType(NetBoxObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.ASNRange
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.ASNRangeFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.Aggregate,
|
||||
fields='__all__',
|
||||
filters=AggregateFilter
|
||||
)
|
||||
class AggregateType(NetBoxObjectType, BaseIPAddressFamilyType):
|
||||
|
||||
class Meta:
|
||||
model = models.Aggregate
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.AggregateFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.FHRPGroup,
|
||||
fields='__all__',
|
||||
filters=FHRPGroupFilter
|
||||
)
|
||||
class FHRPGroupType(NetBoxObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.FHRPGroup
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.FHRPGroupFilterSet
|
||||
|
||||
def resolve_auth_type(self, info):
|
||||
return self.auth_type or None
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.FHRPGroupAssignment,
|
||||
exclude=('interface_type', 'interface_id'),
|
||||
filters=FHRPGroupAssignmentFilter
|
||||
)
|
||||
class FHRPGroupAssignmentType(BaseObjectType):
|
||||
interface = graphene.Field('ipam.graphql.gfk_mixins.FHRPGroupInterfaceType')
|
||||
|
||||
class Meta:
|
||||
model = models.FHRPGroupAssignment
|
||||
exclude = ('interface_type', 'interface_id')
|
||||
filterset_class = filtersets.FHRPGroupAssignmentFilterSet
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.IPAddress,
|
||||
exclude=('assigned_object_type', 'assigned_object_id'),
|
||||
filters=IPAddressFilter
|
||||
)
|
||||
class IPAddressType(NetBoxObjectType, BaseIPAddressFamilyType):
|
||||
assigned_object = graphene.Field('ipam.graphql.gfk_mixins.IPAddressAssignmentType')
|
||||
|
||||
class Meta:
|
||||
model = models.IPAddress
|
||||
exclude = ('assigned_object_type', 'assigned_object_id')
|
||||
filterset_class = filtersets.IPAddressFilterSet
|
||||
|
||||
def resolve_role(self, info):
|
||||
return self.role or None
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.IPRange,
|
||||
fields='__all__',
|
||||
filters=IPRangeFilter
|
||||
)
|
||||
class IPRangeType(NetBoxObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.IPRange
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.IPRangeFilterSet
|
||||
|
||||
def resolve_role(self, info):
|
||||
return self.role or None
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.Prefix,
|
||||
fields='__all__',
|
||||
filters=PrefixFilter
|
||||
)
|
||||
class PrefixType(NetBoxObjectType, BaseIPAddressFamilyType):
|
||||
|
||||
class Meta:
|
||||
model = models.Prefix
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.PrefixFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.RIR,
|
||||
fields='__all__',
|
||||
filters=RIRFilter
|
||||
)
|
||||
class RIRType(OrganizationalObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.RIR
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.RIRFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.Role,
|
||||
fields='__all__',
|
||||
filters=RoleFilter
|
||||
)
|
||||
class RoleType(OrganizationalObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.Role
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.RoleFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.RouteTarget,
|
||||
fields='__all__',
|
||||
filters=RouteTargetFilter
|
||||
)
|
||||
class RouteTargetType(NetBoxObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.RouteTarget
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.RouteTargetFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.Service,
|
||||
fields='__all__',
|
||||
filters=ServiceFilter
|
||||
)
|
||||
class ServiceType(NetBoxObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.Service
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.ServiceFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.ServiceTemplate,
|
||||
fields='__all__',
|
||||
filters=ServiceTemplateFilter
|
||||
)
|
||||
class ServiceTemplateType(NetBoxObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.ServiceTemplate
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.ServiceTemplateFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.VLAN,
|
||||
fields='__all__',
|
||||
filters=VLANFilter
|
||||
)
|
||||
class VLANType(NetBoxObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.VLAN
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.VLANFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.VLANGroup,
|
||||
exclude=('scope_type', 'scope_id'),
|
||||
filters=VLANGroupFilter
|
||||
)
|
||||
class VLANGroupType(OrganizationalObjectType):
|
||||
scope = graphene.Field('ipam.graphql.gfk_mixins.VLANGroupScopeType')
|
||||
|
||||
class Meta:
|
||||
model = models.VLANGroup
|
||||
exclude = ('scope_type', 'scope_id')
|
||||
filterset_class = filtersets.VLANGroupFilterSet
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.VRF,
|
||||
fields='__all__',
|
||||
filters=VRFFilter
|
||||
)
|
||||
class VRFType(NetBoxObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.VRF
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.VRFFilterSet
|
||||
pass
|
||||
|
21
netbox/netbox/graphql/filters.py
Normal file
21
netbox/netbox/graphql/filters.py
Normal file
@ -0,0 +1,21 @@
|
||||
import strawberry
|
||||
import strawberry_django
|
||||
from strawberry import auto
|
||||
|
||||
|
||||
class ChangeLoggedModelFilter:
|
||||
|
||||
def created_by_request(self, queryset):
|
||||
return self.filter_by_request(queryset, "created_by_request", self.created_by_request)
|
||||
|
||||
def updated_by_request(self, queryset):
|
||||
return self.filter_by_request(queryset, "updated_by_request", self.updated_by_request)
|
||||
|
||||
def modified_by_request(self, queryset):
|
||||
return self.filter_by_request(queryset, "modified_by_request", self.modified_by_request)
|
||||
|
||||
|
||||
class NetBoxModelFilter(ChangeLoggedModelFilter):
|
||||
|
||||
def filter_q(self, queryset):
|
||||
return self.search(queryset, None, self.q)
|
@ -9,25 +9,22 @@ from users.graphql.schema import UsersQuery
|
||||
|
||||
|
||||
@strawberry.type
|
||||
class Query(CircuitsQuery, UsersQuery):
|
||||
class Query(
|
||||
UsersQuery,
|
||||
# CircuitsQuery,
|
||||
# CoreQuery,
|
||||
# DCIMQuery,
|
||||
# ExtrasQuery,
|
||||
# IPAMQuery,
|
||||
# TenancyQuery,
|
||||
# VirtualizationQuery,
|
||||
# VPNQuery,
|
||||
# WirelessQuery,
|
||||
# *registry['plugins']['graphql_schemas'], # Append plugin schemas
|
||||
# graphene.ObjectType
|
||||
):
|
||||
pass
|
||||
|
||||
# class Query(
|
||||
# UsersQuery,
|
||||
# CircuitsQuery,
|
||||
# CoreQuery,
|
||||
# DCIMQuery,
|
||||
# ExtrasQuery,
|
||||
# IPAMQuery,
|
||||
# TenancyQuery,
|
||||
# VirtualizationQuery,
|
||||
# VPNQuery,
|
||||
# WirelessQuery,
|
||||
# *registry['plugins']['graphql_schemas'], # Append plugin schemas
|
||||
# graphene.ObjectType
|
||||
# ):
|
||||
# pass
|
||||
|
||||
|
||||
schema = strawberry.Schema(
|
||||
query=Query,
|
||||
|
0
netbox/tenancy/graphql/filters.py
Normal file
0
netbox/tenancy/graphql/filters.py
Normal file
@ -1,8 +1,10 @@
|
||||
import graphene
|
||||
import strawberry
|
||||
import strawberry_django
|
||||
|
||||
from extras.graphql.mixins import CustomFieldsMixin, TagsMixin
|
||||
from tenancy import filtersets, models
|
||||
from tenancy import models
|
||||
from netbox.graphql.types import BaseObjectType, OrganizationalObjectType, NetBoxObjectType
|
||||
from .filters import *
|
||||
|
||||
__all__ = (
|
||||
'ContactAssignmentType',
|
||||
@ -25,53 +27,59 @@ class ContactAssignmentsMixin:
|
||||
# Tenants
|
||||
#
|
||||
|
||||
@strawberry_django.type(
|
||||
models.Tenant,
|
||||
fields='__all__',
|
||||
filters=TenantFilter
|
||||
)
|
||||
class TenantType(NetBoxObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.Tenant
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.TenantFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.TenantGroup,
|
||||
fields='__all__',
|
||||
filters=TenantGroupFilter
|
||||
)
|
||||
class TenantGroupType(OrganizationalObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.TenantGroup
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.TenantGroupFilterSet
|
||||
pass
|
||||
|
||||
|
||||
#
|
||||
# Contacts
|
||||
#
|
||||
|
||||
@strawberry_django.type(
|
||||
models.Contact,
|
||||
fields='__all__',
|
||||
filters=ContactFilter
|
||||
)
|
||||
class ContactType(ContactAssignmentsMixin, NetBoxObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.Contact
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.ContactFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.ContactRole,
|
||||
fields='__all__',
|
||||
filters=ContactRoleFilter
|
||||
)
|
||||
class ContactRoleType(ContactAssignmentsMixin, OrganizationalObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.ContactRole
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.ContactRoleFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.ContactGroup,
|
||||
fields='__all__',
|
||||
filters=ContactGroupFilter
|
||||
)
|
||||
class ContactGroupType(OrganizationalObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.ContactGroup
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.ContactGroupFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.ContactAssignment,
|
||||
fields='__all__',
|
||||
filters=ContactAssignmentFilter
|
||||
)
|
||||
class ContactAssignmentType(CustomFieldsMixin, TagsMixin, BaseObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.ContactAssignment
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.ContactAssignmentFilterSet
|
||||
pass
|
||||
|
0
netbox/virtualization/graphql/filters.py
Normal file
0
netbox/virtualization/graphql/filters.py
Normal file
@ -1,8 +1,12 @@
|
||||
import strawberry
|
||||
import strawberry_django
|
||||
|
||||
from dcim.graphql.types import ComponentObjectType
|
||||
from extras.graphql.mixins import ConfigContextMixin
|
||||
from ipam.graphql.mixins import IPAddressesMixin, VLANGroupsMixin
|
||||
from netbox.graphql.types import OrganizationalObjectType, NetBoxObjectType
|
||||
from virtualization import filtersets, models
|
||||
from virtualization import models
|
||||
from .filters import *
|
||||
|
||||
__all__ = (
|
||||
'ClusterType',
|
||||
@ -14,55 +18,59 @@ __all__ = (
|
||||
)
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.Cluster,
|
||||
fields='__all__',
|
||||
filters=ClusterFilter
|
||||
)
|
||||
class ClusterType(VLANGroupsMixin, NetBoxObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.Cluster
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.ClusterFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.ClusterGroup,
|
||||
fields='__all__',
|
||||
filters=ClusterGroupFilter
|
||||
)
|
||||
class ClusterGroupType(VLANGroupsMixin, OrganizationalObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.ClusterGroup
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.ClusterGroupFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.ClusterType,
|
||||
fields='__all__',
|
||||
filters=ClusterTypeFilter
|
||||
)
|
||||
class ClusterTypeType(OrganizationalObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.ClusterType
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.ClusterTypeFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.VirtualMachine,
|
||||
fields='__all__',
|
||||
filters=VirtualMachineFilter
|
||||
)
|
||||
class VirtualMachineType(ConfigContextMixin, NetBoxObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.VirtualMachine
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.VirtualMachineFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.VMInterface,
|
||||
fields='__all__',
|
||||
filters=VMInterfaceFilter
|
||||
)
|
||||
class VMInterfaceType(IPAddressesMixin, ComponentObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.VMInterface
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.VMInterfaceFilterSet
|
||||
|
||||
def resolve_mode(self, info):
|
||||
return self.mode or None
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.VirtualDisk,
|
||||
fields='__all__',
|
||||
filters=VirtualDiskFilter
|
||||
)
|
||||
class VirtualDiskType(ComponentObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.VirtualDisk
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.VirtualDiskFilterSet
|
||||
|
||||
def resolve_mode(self, info):
|
||||
return self.mode or None
|
||||
|
0
netbox/vpn/graphql/filters.py
Normal file
0
netbox/vpn/graphql/filters.py
Normal file
@ -1,8 +1,10 @@
|
||||
import graphene
|
||||
import strawberry
|
||||
import strawberry_django
|
||||
|
||||
from extras.graphql.mixins import ContactsMixin, CustomFieldsMixin, TagsMixin
|
||||
from netbox.graphql.types import ObjectType, OrganizationalObjectType, NetBoxObjectType
|
||||
from vpn import filtersets, models
|
||||
from vpn import models
|
||||
from .filters import *
|
||||
|
||||
__all__ = (
|
||||
'IKEPolicyType',
|
||||
@ -18,81 +20,91 @@ __all__ = (
|
||||
)
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.TunnelGroup,
|
||||
fields='__all__',
|
||||
filters=TunnelGroupFilter
|
||||
)
|
||||
class TunnelGroupType(OrganizationalObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.TunnelGroup
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.TunnelGroupFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.TunnelTermination,
|
||||
fields='__all__',
|
||||
filters=TunnelTerminationFilter
|
||||
)
|
||||
class TunnelTerminationType(CustomFieldsMixin, TagsMixin, ObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.TunnelTermination
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.TunnelTerminationFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.Tunnel,
|
||||
fields='__all__',
|
||||
filters=TunnelFilter
|
||||
)
|
||||
class TunnelType(NetBoxObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.Tunnel
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.TunnelFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.IKEProposal,
|
||||
fields='__all__',
|
||||
filters=IKEProposalFilter
|
||||
)
|
||||
class IKEProposalType(OrganizationalObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.IKEProposal
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.IKEProposalFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.IKEPolicy,
|
||||
fields='__all__',
|
||||
filters=IKEPolicyFilter
|
||||
)
|
||||
class IKEPolicyType(OrganizationalObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.IKEPolicy
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.IKEPolicyFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.IPSecProposal,
|
||||
fields='__all__',
|
||||
filters=IPSecProposalFilter
|
||||
)
|
||||
class IPSecProposalType(OrganizationalObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.IPSecProposal
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.IPSecProposalFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.IPSecPolicy,
|
||||
fields='__all__',
|
||||
filters=IPSecPolicyFilter
|
||||
)
|
||||
class IPSecPolicyType(OrganizationalObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.IPSecPolicy
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.IPSecPolicyFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.IPSecProfile,
|
||||
fields='__all__',
|
||||
filters=IPSecProfileFilter
|
||||
)
|
||||
class IPSecProfileType(OrganizationalObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.IPSecProfile
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.IPSecProfileFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.L2VPN,
|
||||
fields='__all__',
|
||||
filters=L2VPNFilter
|
||||
)
|
||||
class L2VPNType(ContactsMixin, NetBoxObjectType):
|
||||
class Meta:
|
||||
model = models.L2VPN
|
||||
fields = '__all__'
|
||||
filtersets_class = filtersets.L2VPNFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.L2VPNTermination,
|
||||
exclude=('assigned_object_type', 'assigned_object_id'),
|
||||
filters=L2VPNTerminationFilter
|
||||
)
|
||||
class L2VPNTerminationType(NetBoxObjectType):
|
||||
assigned_object = graphene.Field('vpn.graphql.gfk_mixins.L2VPNAssignmentType')
|
||||
|
||||
class Meta:
|
||||
model = models.L2VPNTermination
|
||||
exclude = ('assigned_object_type', 'assigned_object_id')
|
||||
filtersets_class = filtersets.L2VPNTerminationFilterSet
|
||||
|
0
netbox/wireless/graphql/filters.py
Normal file
0
netbox/wireless/graphql/filters.py
Normal file
@ -1,5 +1,9 @@
|
||||
from wireless import filtersets, models
|
||||
import strawberry
|
||||
import strawberry_django
|
||||
|
||||
from wireless import models
|
||||
from netbox.graphql.types import OrganizationalObjectType, NetBoxObjectType
|
||||
from .filters import *
|
||||
|
||||
__all__ = (
|
||||
'WirelessLANType',
|
||||
@ -8,21 +12,22 @@ __all__ = (
|
||||
)
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.WirelessLANGroup,
|
||||
fields='__all__',
|
||||
filters=WirelessLANGroupFilter
|
||||
)
|
||||
class WirelessLANGroupType(OrganizationalObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.WirelessLANGroup
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.WirelessLANGroupFilterSet
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.WirelessLAN,
|
||||
fields='__all__',
|
||||
filters=WirelessLANFilter
|
||||
)
|
||||
class WirelessLANType(NetBoxObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.WirelessLAN
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.WirelessLANFilterSet
|
||||
|
||||
def resolve_auth_type(self, info):
|
||||
return self.auth_type or None
|
||||
|
||||
@ -30,13 +35,13 @@ class WirelessLANType(NetBoxObjectType):
|
||||
return self.auth_cipher or None
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.WirelessLink,
|
||||
fields='__all__',
|
||||
filters=WirelessLinkFilter
|
||||
)
|
||||
class WirelessLinkType(NetBoxObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.WirelessLink
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.WirelessLinkFilterSet
|
||||
|
||||
def resolve_auth_type(self, info):
|
||||
return self.auth_type or None
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user