9856 dcim schema

This commit is contained in:
Arthur 2024-02-07 07:32:10 -08:00
parent cdcaa9055e
commit 460b57dbf7
4 changed files with 416 additions and 245 deletions

View File

@ -0,0 +1,255 @@
import strawberry
import strawberry_django
from strawberry import auto
from dcim import models, filtersets
from netbox.graphql import filters
__all__ = (
'CableFilter',
'CableTerminationFilter',
'ConsolePortFilter',
'ConsolePortTemplateFilter',
'ConsoleServerPortFilter',
'ConsoleServerPortTemplateFilter',
'DeviceFilter',
'DeviceBayFilter',
'DeviceBayTemplateFilter',
'InventoryItemTemplateFilter',
'DeviceRoleFilter',
'DeviceTypeFilter',
'FrontPortFilter',
'FrontPortTemplateFilter',
'InterfaceFilter',
'InterfaceTemplateFilter',
'InventoryItemFilter',
'InventoryItemRoleFilter',
'LocationFilter',
'ManufacturerFilter',
'ModuleFilter',
'ModuleBayFilter',
'ModuleBayTemplateFilter',
'ModuleTypeFilter',
'PlatformFilter',
'PowerFeedFilter',
'PowerOutletFilter',
'PowerOutletTemplateFilter',
'PowerPanelFilter',
'PowerPortFilter',
'PowerPortTemplateFilter',
'RackFilter',
'RackReservationFilter',
'RackRoleFilter',
'RearPortFilter',
'RearPortTemplateFilter',
'RegionFilter',
'SiteFilter',
'SiteGroupFilter',
'VirtualChassisFilter',
'VirtualDeviceContextFilter',
)
@strawberry_django.filter(models.Cable, lookups=True)
class CableFilter(filtersets.CableFilterSet):
id: auto
@strawberry_django.filter(models.CableTermination, lookups=True)
class CableTerminationFilter(filtersets.CableTerminationFilterSet):
id: auto
@strawberry_django.filter(models.ConsolePort, lookups=True)
class ConsolePortFilter(filtersets.ConsolePortFilterSet):
id: auto
@strawberry_django.filter(models.ConsolePortTemplate, lookups=True)
class ConsolePortTemplateFilter(filtersets.ConsolePortTemplateFilterSet):
id: auto
@strawberry_django.filter(models.ConsoleServerPort, lookups=True)
class ConsoleServerPortFilter(filtersets.ConsoleServerPortFilterSet):
id: auto
@strawberry_django.filter(models.ConsoleServerPortTemplate, lookups=True)
class ConsoleServerPortTemplateFilter(filtersets.ConsoleServerPortTemplateFilterSet):
id: auto
@strawberry_django.filter(models.Device, lookups=True)
class DeviceFilter(filtersets.DeviceFilterSet):
id: auto
@strawberry_django.filter(models.DeviceBay, lookups=True)
class DeviceBayFilter(filtersets.DeviceBayFilterSet):
id: auto
@strawberry_django.filter(models.DeviceBayTemplate, lookups=True)
class DeviceBayTemplateFilter(filtersets.DeviceBayTemplateFilterSet):
id: auto
@strawberry_django.filter(models.InventoryItemTemplate, lookups=True)
class InventoryItemTemplateFilter(filtersets.InventoryItemTemplateFilterSet):
id: auto
@strawberry_django.filter(models.DeviceRole, lookups=True)
class DeviceRoleFilter(filtersets.DeviceRoleFilterSet):
id: auto
@strawberry_django.filter(models.DeviceType, lookups=True)
class DeviceTypeFilter(filtersets.DeviceTypeFilterSet):
id: auto
@strawberry_django.filter(models.FrontPort, lookups=True)
class FrontPortFilter(filtersets.FrontPortFilterSet):
id: auto
@strawberry_django.filter(models.FrontPortTemplate, lookups=True)
class FrontPortTemplateFilter(filtersets.FrontPortTemplateFilterSet):
id: auto
@strawberry_django.filter(models.Interface, lookups=True)
class InterfaceFilter(filtersets.InterfaceFilterSet):
id: auto
@strawberry_django.filter(models.InterfaceTemplate, lookups=True)
class InterfaceTemplateFilter(filtersets.InterfaceTemplateFilterSet):
id: auto
@strawberry_django.filter(models.InventoryItem, lookups=True)
class InventoryItemFilter(filtersets.InventoryItemFilterSet):
id: auto
@strawberry_django.filter(models.InventoryItemRole, lookups=True)
class InventoryItemRoleFilter(filtersets.InventoryItemRoleFilterSet):
id: auto
@strawberry_django.filter(models.Location, lookups=True)
class LocationFilter(filtersets.LocationFilterSet):
id: auto
@strawberry_django.filter(models.Manufacturer, lookups=True)
class ManufacturerFilter(filtersets.ManufacturerFilterSet):
id: auto
@strawberry_django.filter(models.Module, lookups=True)
class ModuleFilter(filtersets.ModuleFilterSet):
id: auto
@strawberry_django.filter(models.ModuleBay, lookups=True)
class ModuleBayFilter(filtersets.ModuleBayFilterSet):
id: auto
@strawberry_django.filter(models.ModuleBayTemplate, lookups=True)
class ModuleBayTemplateFilter(filtersets.ModuleBayTemplateFilterSet):
id: auto
@strawberry_django.filter(models.ModuleType, lookups=True)
class ModuleTypeFilter(filtersets.ModuleTypeFilterSet):
id: auto
@strawberry_django.filter(models.Platform, lookups=True)
class PlatformFilter(filtersets.PlatformFilterSet):
id: auto
@strawberry_django.filter(models.PowerFeed, lookups=True)
class PowerFeedFilter(filtersets.PowerFeedFilterSet):
id: auto
@strawberry_django.filter(models.PowerOutlet, lookups=True)
class PowerOutletFilter(filtersets.PowerOutletFilterSet):
id: auto
@strawberry_django.filter(models.PowerOutletTemplate, lookups=True)
class PowerOutletTemplateFilter(filtersets.PowerOutletTemplateFilterSet):
id: auto
@strawberry_django.filter(models.PowerPanel, lookups=True)
class PowerPanelFilter(filtersets.PowerPanelFilterSet):
id: auto
@strawberry_django.filter(models.PowerPort, lookups=True)
class PowerPortFilter(filtersets.PowerPortFilterSet):
id: auto
@strawberry_django.filter(models.PowerPortTemplate, lookups=True)
class PowerPortTemplateFilter(filtersets.PowerPortTemplateFilterSet):
id: auto
@strawberry_django.filter(models.Rack, lookups=True)
class RackFilter(filtersets.RackFilterSet):
id: auto
@strawberry_django.filter(models.RackReservation, lookups=True)
class RackReservationFilter(filtersets.RackReservationFilterSet):
id: auto
@strawberry_django.filter(models.RackRole, lookups=True)
class RackRoleFilter(filtersets.RackRoleFilterSet):
id: auto
@strawberry_django.filter(models.RearPort, lookups=True)
class RearPortFilter(filtersets.RearPortFilterSet):
id: auto
@strawberry_django.filter(models.RearPortTemplate, lookups=True)
class RearPortTemplateFilter(filtersets.RearPortTemplateFilterSet):
id: auto
@strawberry_django.filter(models.Region, lookups=True)
class RegionFilter(filtersets.RegionFilterSet):
id: auto
@strawberry_django.filter(models.Site, lookups=True)
class SiteFilter(filtersets.SiteFilterSet):
id: auto
@strawberry_django.filter(models.SiteGroup, lookups=True)
class SiteGroupFilter(filtersets.SiteGroupFilterSet):
id: auto
@strawberry_django.filter(models.VirtualChassis, lookups=True)
class VirtualChassisFilter(filtersets.VirtualChassisFilterSet):
id: auto
@strawberry_django.filter(models.VirtualDeviceContext, lookups=True)
class VirtualDeviceContextFilter(filtersets.VirtualDeviceContextFilterSet):
id: auto

View File

@ -1,249 +1,129 @@
import graphene
from typing import List
import strawberry
import strawberry_django
from netbox.graphql.fields import ObjectField, ObjectListField
from circuits import models
from .types import *
from dcim import models
from .types import VirtualDeviceContextType
from utilities.graphql_optimizer import gql_query_optimizer
class DCIMQuery(graphene.ObjectType):
cable = ObjectField(CableType)
cable_list = ObjectListField(CableType)
@strawberry.type
class DCIMQuery:
cable: CableType = strawberry_django.field()
cable_list: List[CableType] = strawberry_django.field()
def resolve_cable_list(root, info, **kwargs):
return gql_query_optimizer(models.Cable.objects.all(), info)
console_port: ConsolePortType = strawberry_django.field()
console_port_list: List[ConsolePortType] = strawberry_django.field()
console_port = ObjectField(ConsolePortType)
console_port_list = ObjectListField(ConsolePortType)
console_port_template: ConsolePortTemplateType = strawberry_django.field()
console_port_template_list: List[ConsolePortTemplateType] = strawberry_django.field()
def resolve_console_port_list(root, info, **kwargs):
return gql_query_optimizer(models.ConsolePort.objects.all(), info)
console_server_port: ConsoleServerPortType = strawberry_django.field()
console_server_port_list: List[ConsoleServerPortType] = strawberry_django.field()
console_port_template = ObjectField(ConsolePortTemplateType)
console_port_template_list = ObjectListField(ConsolePortTemplateType)
console_server_port_template: ConsoleServerPortTemplateType = strawberry_django.field()
console_server_port_template_list: List[ConsoleServerPortTemplateType] = strawberry_django.field()
def resolve_console_port_template_list(root, info, **kwargs):
return gql_query_optimizer(models.ConsolePortTemplate.objects.all(), info)
device: DeviceType = strawberry_django.field()
device_list: List[DeviceType] = strawberry_django.field()
console_server_port = ObjectField(ConsoleServerPortType)
console_server_port_list = ObjectListField(ConsoleServerPortType)
device_bay: DeviceBayType = strawberry_django.field()
device_bay_list: List[DeviceBayType] = strawberry_django.field()
def resolve_console_server_port_list(root, info, **kwargs):
return gql_query_optimizer(models.ConsoleServerPort.objects.all(), info)
device_bay_template: DeviceBayTemplateType = strawberry_django.field()
device_bay_template_list: List[DeviceBayTemplateType] = strawberry_django.field()
console_server_port_template = ObjectField(ConsoleServerPortTemplateType)
console_server_port_template_list = ObjectListField(ConsoleServerPortTemplateType)
device_role: DeviceRoleType = strawberry_django.field()
device_role_list: List[DeviceRoleType] = strawberry_django.field()
def resolve_console_server_port_template_list(root, info, **kwargs):
return gql_query_optimizer(models.ConsoleServerPortTemplate.objects.all(), info)
device_type: DeviceTypeType = strawberry_django.field()
device_type_list: List[DeviceTypeType] = strawberry_django.field()
device = ObjectField(DeviceType)
device_list = ObjectListField(DeviceType)
front_port: FrontPortType = strawberry_django.field()
front_port_list: List[FrontPortType] = strawberry_django.field()
def resolve_device_list(root, info, **kwargs):
return gql_query_optimizer(models.Device.objects.all(), info)
front_port_template: FrontPortTemplateType = strawberry_django.field()
front_port_template_list: List[FrontPortTemplateType] = strawberry_django.field()
device_bay = ObjectField(DeviceBayType)
device_bay_list = ObjectListField(DeviceBayType)
interface: InterfaceType = strawberry_django.field()
interface_list: List[InterfaceType] = strawberry_django.field()
def resolve_device_bay_list(root, info, **kwargs):
return gql_query_optimizer(models.DeviceBay.objects.all(), info)
interface_template: InterfaceTemplateType = strawberry_django.field()
interface_template_list: List[InterfaceTemplateType] = strawberry_django.field()
device_bay_template = ObjectField(DeviceBayTemplateType)
device_bay_template_list = ObjectListField(DeviceBayTemplateType)
inventory_item: InventoryItemType = strawberry_django.field()
inventory_item_list: List[InventoryItemType] = strawberry_django.field()
def resolve_device_bay_template_list(root, info, **kwargs):
return gql_query_optimizer(models.DeviceBayTemplate.objects.all(), info)
inventory_item_role: InventoryItemRoleType = strawberry_django.field()
inventory_item_role_list: List[InventoryItemRoleType] = strawberry_django.field()
device_role = ObjectField(DeviceRoleType)
device_role_list = ObjectListField(DeviceRoleType)
inventory_item_template: InventoryItemTemplateType = strawberry_django.field()
inventory_item_template_list: List[InventoryItemTemplateType] = strawberry_django.field()
def resolve_device_role_list(root, info, **kwargs):
return gql_query_optimizer(models.DeviceRole.objects.all(), info)
location: LocationType = strawberry_django.field()
location_list: List[LocationType] = strawberry_django.field()
device_type = ObjectField(DeviceTypeType)
device_type_list = ObjectListField(DeviceTypeType)
manufacturer: ManufacturerType = strawberry_django.field()
manufacturer_list: List[ManufacturerType] = strawberry_django.field()
def resolve_device_type_list(root, info, **kwargs):
return gql_query_optimizer(models.DeviceType.objects.all(), info)
module: ModuleType = strawberry_django.field()
module_list: List[ModuleType] = strawberry_django.field()
front_port = ObjectField(FrontPortType)
front_port_list = ObjectListField(FrontPortType)
module_bay: ModuleBayType = strawberry_django.field()
module_bay_list: List[ModuleBayType] = strawberry_django.field()
def resolve_front_port_list(root, info, **kwargs):
return gql_query_optimizer(models.FrontPort.objects.all(), info)
module_bay_template: ModuleBayTemplateType = strawberry_django.field()
module_bay_template_list: List[ModuleBayTemplateType] = strawberry_django.field()
front_port_template = ObjectField(FrontPortTemplateType)
front_port_template_list = ObjectListField(FrontPortTemplateType)
module_type: ModuleTypeType = strawberry_django.field()
module_type_list: List[ModuleTypeType] = strawberry_django.field()
def resolve_front_port_template_list(root, info, **kwargs):
return gql_query_optimizer(models.FrontPortTemplate.objects.all(), info)
platform: PlatformType = strawberry_django.field()
platform_list: List[PlatformType] = strawberry_django.field()
interface = ObjectField(InterfaceType)
interface_list = ObjectListField(InterfaceType)
power_feed: PowerFeedType = strawberry_django.field()
power_feed_list: List[PowerFeedType] = strawberry_django.field()
def resolve_interface_list(root, info, **kwargs):
return gql_query_optimizer(models.Interface.objects.all(), info)
power_outlet: PowerOutletType = strawberry_django.field()
power_outlet_list: List[PowerOutletType] = strawberry_django.field()
interface_template = ObjectField(InterfaceTemplateType)
interface_template_list = ObjectListField(InterfaceTemplateType)
power_outlet_template: PowerOutletTemplateType = strawberry_django.field()
power_outlet_template_list: List[PowerOutletTemplateType] = strawberry_django.field()
def resolve_interface_template_list(root, info, **kwargs):
return gql_query_optimizer(models.InterfaceTemplate.objects.all(), info)
power_panel: PowerPanelType = strawberry_django.field()
power_panel_list: List[PowerPanelType] = strawberry_django.field()
inventory_item = ObjectField(InventoryItemType)
inventory_item_list = ObjectListField(InventoryItemType)
power_port: PowerPortType = strawberry_django.field()
power_port_list: List[PowerPortType] = strawberry_django.field()
def resolve_inventory_item_list(root, info, **kwargs):
return gql_query_optimizer(models.InventoryItem.objects.all(), info)
power_port_template: PowerPortTemplateType = strawberry_django.field()
power_port_template_list: List[PowerPortTemplateType] = strawberry_django.field()
inventory_item_role = ObjectField(InventoryItemRoleType)
inventory_item_role_list = ObjectListField(InventoryItemRoleType)
rack: RackType = strawberry_django.field()
rack_list: List[RackType] = strawberry_django.field()
def resolve_inventory_item_role_list(root, info, **kwargs):
return gql_query_optimizer(models.InventoryItemRole.objects.all(), info)
rack_reservation: RackReservationType = strawberry_django.field()
rack_reservation_list: List[RackReservationType] = strawberry_django.field()
inventory_item_template = ObjectField(InventoryItemTemplateType)
inventory_item_template_list = ObjectListField(InventoryItemTemplateType)
rack_role: RackRoleType = strawberry_django.field()
rack_role_list: List[RackRoleType] = strawberry_django.field()
def resolve_inventory_item_template_list(root, info, **kwargs):
return gql_query_optimizer(models.InventoryItemTemplate.objects.all(), info)
rear_port: RearPortType = strawberry_django.field()
rear_port_list: List[RearPortType] = strawberry_django.field()
location = ObjectField(LocationType)
location_list = ObjectListField(LocationType)
rear_port_template: RearPortTemplateType = strawberry_django.field()
rear_port_template_list: List[RearPortTemplateType] = strawberry_django.field()
def resolve_location_list(root, info, **kwargs):
return gql_query_optimizer(models.Location.objects.all(), info)
region: RegionType = strawberry_django.field()
region_list: List[RegionType] = strawberry_django.field()
manufacturer = ObjectField(ManufacturerType)
manufacturer_list = ObjectListField(ManufacturerType)
site: SiteType = strawberry_django.field()
site_list: List[SiteType] = strawberry_django.field()
def resolve_manufacturer_list(root, info, **kwargs):
return gql_query_optimizer(models.Manufacturer.objects.all(), info)
site_group: SiteGroupType = strawberry_django.field()
site_group_list: List[SiteGroupType] = strawberry_django.field()
module = ObjectField(ModuleType)
module_list = ObjectListField(ModuleType)
virtual_chassis: VirtualChassisType = strawberry_django.field()
virtual_chassis_list: List[VirtualChassisType] = strawberry_django.field()
def resolve_module_list(root, info, **kwargs):
return gql_query_optimizer(models.Module.objects.all(), info)
module_bay = ObjectField(ModuleBayType)
module_bay_list = ObjectListField(ModuleBayType)
def resolve_module_bay_list(root, info, **kwargs):
return gql_query_optimizer(models.ModuleBay.objects.all(), info)
module_bay_template = ObjectField(ModuleBayTemplateType)
module_bay_template_list = ObjectListField(ModuleBayTemplateType)
def resolve_module_bay_template_list(root, info, **kwargs):
return gql_query_optimizer(models.ModuleBayTemplate.objects.all(), info)
module_type = ObjectField(ModuleTypeType)
module_type_list = ObjectListField(ModuleTypeType)
def resolve_module_type_list(root, info, **kwargs):
return gql_query_optimizer(models.ModuleType.objects.all(), info)
platform = ObjectField(PlatformType)
platform_list = ObjectListField(PlatformType)
def resolve_platform_list(root, info, **kwargs):
return gql_query_optimizer(models.Platform.objects.all(), info)
power_feed = ObjectField(PowerFeedType)
power_feed_list = ObjectListField(PowerFeedType)
def resolve_power_feed_list(root, info, **kwargs):
return gql_query_optimizer(models.PowerFeed.objects.all(), info)
power_outlet = ObjectField(PowerOutletType)
power_outlet_list = ObjectListField(PowerOutletType)
def resolve_power_outlet_list(root, info, **kwargs):
return gql_query_optimizer(models.PowerOutlet.objects.all(), info)
power_outlet_template = ObjectField(PowerOutletTemplateType)
power_outlet_template_list = ObjectListField(PowerOutletTemplateType)
def resolve_power_outlet_template_list(root, info, **kwargs):
return gql_query_optimizer(models.PowerOutletTemplate.objects.all(), info)
power_panel = ObjectField(PowerPanelType)
power_panel_list = ObjectListField(PowerPanelType)
def resolve_power_panel_list(root, info, **kwargs):
return gql_query_optimizer(models.PowerPanel.objects.all(), info)
power_port = ObjectField(PowerPortType)
power_port_list = ObjectListField(PowerPortType)
def resolve_power_port_list(root, info, **kwargs):
return gql_query_optimizer(models.PowerPort.objects.all(), info)
power_port_template = ObjectField(PowerPortTemplateType)
power_port_template_list = ObjectListField(PowerPortTemplateType)
def resolve_power_port_template_list(root, info, **kwargs):
return gql_query_optimizer(models.PowerPortTemplate.objects.all(), info)
rack = ObjectField(RackType)
rack_list = ObjectListField(RackType)
def resolve_rack_list(root, info, **kwargs):
return gql_query_optimizer(models.Rack.objects.all(), info)
rack_reservation = ObjectField(RackReservationType)
rack_reservation_list = ObjectListField(RackReservationType)
def resolve_rack_reservation_list(root, info, **kwargs):
return gql_query_optimizer(models.RackReservation.objects.all(), info)
rack_role = ObjectField(RackRoleType)
rack_role_list = ObjectListField(RackRoleType)
def resolve_rack_role_list(root, info, **kwargs):
return gql_query_optimizer(models.RackRole.objects.all(), info)
rear_port = ObjectField(RearPortType)
rear_port_list = ObjectListField(RearPortType)
def resolve_rear_port_list(root, info, **kwargs):
return gql_query_optimizer(models.RearPort.objects.all(), info)
rear_port_template = ObjectField(RearPortTemplateType)
rear_port_template_list = ObjectListField(RearPortTemplateType)
def resolve_rear_port_template_list(root, info, **kwargs):
return gql_query_optimizer(models.RearPortTemplate.objects.all(), info)
region = ObjectField(RegionType)
region_list = ObjectListField(RegionType)
def resolve_region_list(root, info, **kwargs):
return gql_query_optimizer(models.Region.objects.all(), info)
site = ObjectField(SiteType)
site_list = ObjectListField(SiteType)
def resolve_site_list(root, info, **kwargs):
return gql_query_optimizer(models.Site.objects.all(), info)
site_group = ObjectField(SiteGroupType)
site_group_list = ObjectListField(SiteGroupType)
def resolve_site_group_list(root, info, **kwargs):
return gql_query_optimizer(models.SiteGroup.objects.all(), info)
virtual_chassis = ObjectField(VirtualChassisType)
virtual_chassis_list = ObjectListField(VirtualChassisType)
def resolve_virtual_chassis_list(root, info, **kwargs):
return gql_query_optimizer(models.VirtualChassis.objects.all(), info)
virtual_device_context = ObjectField(VirtualDeviceContextType)
virtual_device_context_list = ObjectListField(VirtualDeviceContextType)
def resolve_virtual_device_context_list(root, info, **kwargs):
return gql_query_optimizer(models.VirtualDeviceContext.objects.all(), info)
virtual_device_context: VirtualDeviceContextType = strawberry_django.field()
virtual_device_context_list: List[VirtualDeviceContextType] = strawberry_django.field()

View File

@ -52,6 +52,7 @@ __all__ = (
'SiteType',
'SiteGroupType',
'VirtualChassisType',
'VirtualDeviceContextType',
)
@ -90,18 +91,14 @@ class ComponentTemplateObjectType(
@strawberry_django.type(
models.Cable,
fields='__all__',
# fields='__all__',
exclude=('color', ), # bug - temp
filters=CableFilter
)
class CableType(NetBoxObjectType):
# a_terminations = graphene.List('dcim.graphql.gfk_mixins.CableTerminationTerminationType')
# b_terminations = graphene.List('dcim.graphql.gfk_mixins.CableTerminationTerminationType')
class Meta:
model = models.Cable
fields = '__all__'
filterset_class = filtersets.CableFilterSet
def resolve_type(self, info):
return self.type or None
@ -127,7 +124,8 @@ class CableTerminationType(NetBoxObjectType):
@strawberry_django.type(
models.ConsolePort,
exclude=('_path',),
# exclude=('_path',),
exclude=('_path', '_name',), # bug - temp
filters=ConsolePortFilter
)
class ConsolePortType(ComponentObjectType, CabledObjectMixin, PathEndpointMixin):
@ -138,7 +136,8 @@ class ConsolePortType(ComponentObjectType, CabledObjectMixin, PathEndpointMixin)
@strawberry_django.type(
models.ConsolePortTemplate,
fields='__all__',
# fields='__all__',
exclude=('_name',), # bug - temp
filters=ConsolePortTemplateFilter
)
class ConsolePortTemplateType(ComponentTemplateObjectType):
@ -149,7 +148,8 @@ class ConsolePortTemplateType(ComponentTemplateObjectType):
@strawberry_django.type(
models.ConsoleServerPort,
exclude=('_path',),
# exclude=('_path',),
exclude=('_path', '_name',), # bug - temp
filters=ConsoleServerPortFilter
)
class ConsoleServerPortType(ComponentObjectType, CabledObjectMixin, PathEndpointMixin):
@ -160,7 +160,8 @@ class ConsoleServerPortType(ComponentObjectType, CabledObjectMixin, PathEndpoint
@strawberry_django.type(
models.ConsoleServerPortTemplate,
fields='__all__',
# fields='__all__',
exclude=('_name',), # bug - temp
filters=ConsoleServerPortTemplateFilter
)
class ConsoleServerPortTemplateType(ComponentTemplateObjectType):
@ -171,7 +172,12 @@ class ConsoleServerPortTemplateType(ComponentTemplateObjectType):
@strawberry_django.type(
models.Device,
fields='__all__',
# fields='__all__',
exclude=(
'_name', 'console_port_count', 'console_server_port_count', 'power_port_count', 'power_outlet_count',
'interface_count', 'front_port_count', 'rear_port_count', 'device_bay_count', 'module_bay_count',
'inventory_item_count'
), # bug - temp
filters=DeviceFilter
)
class DeviceType(ConfigContextMixin, ImageAttachmentsMixin, ContactsMixin, NetBoxObjectType):
@ -185,7 +191,8 @@ class DeviceType(ConfigContextMixin, ImageAttachmentsMixin, ContactsMixin, NetBo
@strawberry_django.type(
models.DeviceBay,
fields='__all__',
# fields='__all__',
exclude=('_name',), # bug - temp
filters=DeviceBayFilter
)
class DeviceBayType(ComponentObjectType):
@ -194,7 +201,8 @@ class DeviceBayType(ComponentObjectType):
@strawberry_django.type(
models.DeviceBayTemplate,
fields='__all__',
# fields='__all__',
exclude=('_name',), # bug - temp
filters=DeviceBayTemplateFilter
)
class DeviceBayTemplateType(ComponentTemplateObjectType):
@ -203,7 +211,7 @@ class DeviceBayTemplateType(ComponentTemplateObjectType):
@strawberry_django.type(
models.InventoryItemTemplate,
exclude=('component_type', 'component_id'),
exclude=('component_type', 'component_id', '_name', 'parent'),
filters=InventoryItemTemplateFilter
)
class InventoryItemTemplateType(ComponentTemplateObjectType):
@ -213,7 +221,8 @@ class InventoryItemTemplateType(ComponentTemplateObjectType):
@strawberry_django.type(
models.DeviceRole,
fields='__all__',
# fields='__all__',
exclude=('color',), # bug - temp
filters=DeviceRoleFilter
)
class DeviceRoleType(OrganizationalObjectType):
@ -222,7 +231,13 @@ class DeviceRoleType(OrganizationalObjectType):
@strawberry_django.type(
models.DeviceType,
fields='__all__',
# fields='__all__',
exclude=(
'console_port_template_count', 'console_server_port_template_count', 'power_port_template_count',
'power_outlet_template_count', 'interface_template_count', 'front_port_template_count',
'rear_port_template_count', 'device_bay_template_count', 'module_bay_template_count',
'inventory_item_template_count',
), # bug - temp
filters=DeviceTypeFilter
)
class DeviceTypeType(NetBoxObjectType):
@ -239,7 +254,8 @@ class DeviceTypeType(NetBoxObjectType):
@strawberry_django.type(
models.FrontPort,
fields='__all__',
# fields='__all__',
exclude=('_name', 'color'), # bug - temp
filters=FrontPortFilter
)
class FrontPortType(ComponentObjectType, CabledObjectMixin):
@ -248,7 +264,8 @@ class FrontPortType(ComponentObjectType, CabledObjectMixin):
@strawberry_django.type(
models.FrontPortTemplate,
fields='__all__',
# fields='__all__',
exclude=('_name', 'color'), # bug - temp
filters=FrontPortTemplateFilter
)
class FrontPortTemplateType(ComponentTemplateObjectType):
@ -257,7 +274,8 @@ class FrontPortTemplateType(ComponentTemplateObjectType):
@strawberry_django.type(
models.Interface,
exclude=('_path',),
# fields='__all__',
exclude=('mac_address', '_name', 'wwn'), # bug - temp
filters=InterfaceFilter
)
class InterfaceType(IPAddressesMixin, ComponentObjectType, CabledObjectMixin, PathEndpointMixin):
@ -280,7 +298,8 @@ class InterfaceType(IPAddressesMixin, ComponentObjectType, CabledObjectMixin, Pa
@strawberry_django.type(
models.InterfaceTemplate,
fields='__all__',
# fields='__all__',
exclude=('_name',), # bug - temp
filters=InterfaceTemplateFilter
)
class InterfaceTemplateType(ComponentTemplateObjectType):
@ -297,7 +316,7 @@ class InterfaceTemplateType(ComponentTemplateObjectType):
@strawberry_django.type(
models.InventoryItem,
exclude=('component_type', 'component_id'),
exclude=('component_type', 'component_id', '_name', 'parent'),
filters=InventoryItemFilter
)
class InventoryItemType(ComponentObjectType):
@ -307,7 +326,8 @@ class InventoryItemType(ComponentObjectType):
@strawberry_django.type(
models.InventoryItemRole,
fields='__all__',
# fields='__all__',
exclude=('color', '_name'), # bug - temp
filters=InventoryItemRoleFilter
)
class InventoryItemRoleType(OrganizationalObjectType):
@ -316,7 +336,8 @@ class InventoryItemRoleType(OrganizationalObjectType):
@strawberry_django.type(
models.Location,
fields='__all__',
# fields='__all__',
exclude=('parent',), # bug - temp
filters=LocationFilter
)
class LocationType(VLANGroupsMixin, ImageAttachmentsMixin, ContactsMixin, OrganizationalObjectType):
@ -343,7 +364,8 @@ class ModuleType(ComponentObjectType):
@strawberry_django.type(
models.ModuleBay,
fields='__all__',
# fields='__all__',
exclude=('_name',), # bug - temp
filters=ModuleBayFilter
)
class ModuleBayType(ComponentObjectType):
@ -352,7 +374,8 @@ class ModuleBayType(ComponentObjectType):
@strawberry_django.type(
models.ModuleBayTemplate,
fields='__all__',
# fields='__all__',
exclude=('_name',), # bug - temp
filters=ModuleBayTemplateFilter
)
class ModuleBayTemplateType(ComponentTemplateObjectType):
@ -390,7 +413,8 @@ class PowerFeedType(NetBoxObjectType, CabledObjectMixin, PathEndpointMixin):
@strawberry_django.type(
models.PowerOutlet,
exclude=('_path',),
# fields='__all__',
exclude=('_name',), # bug - temp
filters=PowerOutletFilter
)
class PowerOutletType(ComponentObjectType, CabledObjectMixin, PathEndpointMixin):
@ -404,7 +428,8 @@ class PowerOutletType(ComponentObjectType, CabledObjectMixin, PathEndpointMixin)
@strawberry_django.type(
models.PowerOutletTemplate,
fields='__all__',
# fields='__all__',
exclude=('_name',), # bug - temp
filters=PowerOutletTemplateFilter
)
class PowerOutletTemplateType(ComponentTemplateObjectType):
@ -427,7 +452,7 @@ class PowerPanelType(NetBoxObjectType, ContactsMixin):
@strawberry_django.type(
models.PowerPort,
exclude=('_path',),
exclude=('_path', '_name'),
filters=PowerPortFilter
)
class PowerPortType(ComponentObjectType, CabledObjectMixin, PathEndpointMixin):
@ -438,7 +463,8 @@ class PowerPortType(ComponentObjectType, CabledObjectMixin, PathEndpointMixin):
@strawberry_django.type(
models.PowerPortTemplate,
fields='__all__',
# fields='__all__',
exclude=('_name',), # bug - temp
filters=PowerPortTemplateFilter
)
class PowerPortTemplateType(ComponentTemplateObjectType):
@ -449,7 +475,8 @@ class PowerPortTemplateType(ComponentTemplateObjectType):
@strawberry_django.type(
models.Rack,
fields='__all__',
# fields='__all__',
exclude=('_name',), # bug - temp
filters=RackFilter
)
class RackType(VLANGroupsMixin, ImageAttachmentsMixin, ContactsMixin, NetBoxObjectType):
@ -466,7 +493,8 @@ class RackType(VLANGroupsMixin, ImageAttachmentsMixin, ContactsMixin, NetBoxObje
@strawberry_django.type(
models.RackReservation,
fields='__all__',
# fields='__all__',
exclude=('units',), # bug - temp
filters=RackReservationFilter
)
class RackReservationType(NetBoxObjectType):
@ -475,7 +503,8 @@ class RackReservationType(NetBoxObjectType):
@strawberry_django.type(
models.RackRole,
fields='__all__',
# fields='__all__',
exclude=('color',), # bug - temp
filters=RackRoleFilter
)
class RackRoleType(OrganizationalObjectType):
@ -484,7 +513,8 @@ class RackRoleType(OrganizationalObjectType):
@strawberry_django.type(
models.RearPort,
fields='__all__',
# fields='__all__',
exclude=('_name', 'color'), # bug - temp
filters=RearPortFilter
)
class RearPortType(ComponentObjectType, CabledObjectMixin):
@ -493,7 +523,8 @@ class RearPortType(ComponentObjectType, CabledObjectMixin):
@strawberry_django.type(
models.RearPortTemplate,
fields='__all__',
# fields='__all__',
exclude=('_name', 'color'), # bug - temp
filters=RearPortTemplateFilter
)
class RearPortTemplateType(ComponentTemplateObjectType):
@ -502,7 +533,8 @@ class RearPortTemplateType(ComponentTemplateObjectType):
@strawberry_django.type(
models.Region,
fields='__all__',
# fields='__all__',
exclude=('parent',), # bug - temp
filters=RegionFilter
)
class RegionType(VLANGroupsMixin, ContactsMixin, OrganizationalObjectType):
@ -511,7 +543,8 @@ class RegionType(VLANGroupsMixin, ContactsMixin, OrganizationalObjectType):
@strawberry_django.type(
models.Site,
fields='__all__',
# fields='__all__',
exclude=('_name', 'time_zone'), # bug - temp
filters=SiteFilter
)
class SiteType(VLANGroupsMixin, ImageAttachmentsMixin, ContactsMixin, NetBoxObjectType):
@ -521,7 +554,8 @@ class SiteType(VLANGroupsMixin, ImageAttachmentsMixin, ContactsMixin, NetBoxObje
@strawberry_django.type(
models.SiteGroup,
fields='__all__',
# fields='__all__',
exclude=('parent',), # bug - temp
filters=SiteGroupFilter
)
class SiteGroupType(VLANGroupsMixin, ContactsMixin, OrganizationalObjectType):
@ -530,7 +564,8 @@ class SiteGroupType(VLANGroupsMixin, ContactsMixin, OrganizationalObjectType):
@strawberry_django.type(
models.VirtualChassis,
fields='__all__',
# fields='__all__',
exclude=('member_count',), # bug - temp
filters=VirtualChassisFilter
)
class VirtualChassisType(NetBoxObjectType):

View File

@ -3,6 +3,7 @@ from strawberry_django.optimizer import DjangoOptimizerExtension
from strawberry.schema.config import StrawberryConfig
from circuits.graphql.schema import CircuitsQuery
from core.graphql.schema import CoreQuery
from dcim.graphql.schema import DCIMQuery
from users.graphql.schema import UsersQuery
# from virtualization.graphql.schema import VirtualizationQuery
# from vpn.graphql.schema import VPNQuery
@ -14,7 +15,7 @@ class Query(
UsersQuery,
CircuitsQuery,
CoreQuery,
# DCIMQuery,
DCIMQuery,
# ExtrasQuery,
# IPAMQuery,
# TenancyQuery,