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 .types import *
from dcim import models
from .types import VirtualDeviceContextType
from utilities.graphql_optimizer import gql_query_optimizer
class DCIMQuery(graphene.ObjectType): @strawberry.type
cable = ObjectField(CableType) class DCIMQuery:
cable_list = ObjectListField(CableType) cable: CableType = strawberry_django.field()
cable_list: List[CableType] = strawberry_django.field()
def resolve_cable_list(root, info, **kwargs): console_port: ConsolePortType = strawberry_django.field()
return gql_query_optimizer(models.Cable.objects.all(), info) console_port_list: List[ConsolePortType] = strawberry_django.field()
console_port = ObjectField(ConsolePortType) console_port_template: ConsolePortTemplateType = strawberry_django.field()
console_port_list = ObjectListField(ConsolePortType) console_port_template_list: List[ConsolePortTemplateType] = strawberry_django.field()
def resolve_console_port_list(root, info, **kwargs): console_server_port: ConsoleServerPortType = strawberry_django.field()
return gql_query_optimizer(models.ConsolePort.objects.all(), info) console_server_port_list: List[ConsoleServerPortType] = strawberry_django.field()
console_port_template = ObjectField(ConsolePortTemplateType) console_server_port_template: ConsoleServerPortTemplateType = strawberry_django.field()
console_port_template_list = ObjectListField(ConsolePortTemplateType) console_server_port_template_list: List[ConsoleServerPortTemplateType] = strawberry_django.field()
def resolve_console_port_template_list(root, info, **kwargs): device: DeviceType = strawberry_django.field()
return gql_query_optimizer(models.ConsolePortTemplate.objects.all(), info) device_list: List[DeviceType] = strawberry_django.field()
console_server_port = ObjectField(ConsoleServerPortType) device_bay: DeviceBayType = strawberry_django.field()
console_server_port_list = ObjectListField(ConsoleServerPortType) device_bay_list: List[DeviceBayType] = strawberry_django.field()
def resolve_console_server_port_list(root, info, **kwargs): device_bay_template: DeviceBayTemplateType = strawberry_django.field()
return gql_query_optimizer(models.ConsoleServerPort.objects.all(), info) device_bay_template_list: List[DeviceBayTemplateType] = strawberry_django.field()
console_server_port_template = ObjectField(ConsoleServerPortTemplateType) device_role: DeviceRoleType = strawberry_django.field()
console_server_port_template_list = ObjectListField(ConsoleServerPortTemplateType) device_role_list: List[DeviceRoleType] = strawberry_django.field()
def resolve_console_server_port_template_list(root, info, **kwargs): device_type: DeviceTypeType = strawberry_django.field()
return gql_query_optimizer(models.ConsoleServerPortTemplate.objects.all(), info) device_type_list: List[DeviceTypeType] = strawberry_django.field()
device = ObjectField(DeviceType) front_port: FrontPortType = strawberry_django.field()
device_list = ObjectListField(DeviceType) front_port_list: List[FrontPortType] = strawberry_django.field()
def resolve_device_list(root, info, **kwargs): front_port_template: FrontPortTemplateType = strawberry_django.field()
return gql_query_optimizer(models.Device.objects.all(), info) front_port_template_list: List[FrontPortTemplateType] = strawberry_django.field()
device_bay = ObjectField(DeviceBayType) interface: InterfaceType = strawberry_django.field()
device_bay_list = ObjectListField(DeviceBayType) interface_list: List[InterfaceType] = strawberry_django.field()
def resolve_device_bay_list(root, info, **kwargs): interface_template: InterfaceTemplateType = strawberry_django.field()
return gql_query_optimizer(models.DeviceBay.objects.all(), info) interface_template_list: List[InterfaceTemplateType] = strawberry_django.field()
device_bay_template = ObjectField(DeviceBayTemplateType) inventory_item: InventoryItemType = strawberry_django.field()
device_bay_template_list = ObjectListField(DeviceBayTemplateType) inventory_item_list: List[InventoryItemType] = strawberry_django.field()
def resolve_device_bay_template_list(root, info, **kwargs): inventory_item_role: InventoryItemRoleType = strawberry_django.field()
return gql_query_optimizer(models.DeviceBayTemplate.objects.all(), info) inventory_item_role_list: List[InventoryItemRoleType] = strawberry_django.field()
device_role = ObjectField(DeviceRoleType) inventory_item_template: InventoryItemTemplateType = strawberry_django.field()
device_role_list = ObjectListField(DeviceRoleType) inventory_item_template_list: List[InventoryItemTemplateType] = strawberry_django.field()
def resolve_device_role_list(root, info, **kwargs): location: LocationType = strawberry_django.field()
return gql_query_optimizer(models.DeviceRole.objects.all(), info) location_list: List[LocationType] = strawberry_django.field()
device_type = ObjectField(DeviceTypeType) manufacturer: ManufacturerType = strawberry_django.field()
device_type_list = ObjectListField(DeviceTypeType) manufacturer_list: List[ManufacturerType] = strawberry_django.field()
def resolve_device_type_list(root, info, **kwargs): module: ModuleType = strawberry_django.field()
return gql_query_optimizer(models.DeviceType.objects.all(), info) module_list: List[ModuleType] = strawberry_django.field()
front_port = ObjectField(FrontPortType) module_bay: ModuleBayType = strawberry_django.field()
front_port_list = ObjectListField(FrontPortType) module_bay_list: List[ModuleBayType] = strawberry_django.field()
def resolve_front_port_list(root, info, **kwargs): module_bay_template: ModuleBayTemplateType = strawberry_django.field()
return gql_query_optimizer(models.FrontPort.objects.all(), info) module_bay_template_list: List[ModuleBayTemplateType] = strawberry_django.field()
front_port_template = ObjectField(FrontPortTemplateType) module_type: ModuleTypeType = strawberry_django.field()
front_port_template_list = ObjectListField(FrontPortTemplateType) module_type_list: List[ModuleTypeType] = strawberry_django.field()
def resolve_front_port_template_list(root, info, **kwargs): platform: PlatformType = strawberry_django.field()
return gql_query_optimizer(models.FrontPortTemplate.objects.all(), info) platform_list: List[PlatformType] = strawberry_django.field()
interface = ObjectField(InterfaceType) power_feed: PowerFeedType = strawberry_django.field()
interface_list = ObjectListField(InterfaceType) power_feed_list: List[PowerFeedType] = strawberry_django.field()
def resolve_interface_list(root, info, **kwargs): power_outlet: PowerOutletType = strawberry_django.field()
return gql_query_optimizer(models.Interface.objects.all(), info) power_outlet_list: List[PowerOutletType] = strawberry_django.field()
interface_template = ObjectField(InterfaceTemplateType) power_outlet_template: PowerOutletTemplateType = strawberry_django.field()
interface_template_list = ObjectListField(InterfaceTemplateType) power_outlet_template_list: List[PowerOutletTemplateType] = strawberry_django.field()
def resolve_interface_template_list(root, info, **kwargs): power_panel: PowerPanelType = strawberry_django.field()
return gql_query_optimizer(models.InterfaceTemplate.objects.all(), info) power_panel_list: List[PowerPanelType] = strawberry_django.field()
inventory_item = ObjectField(InventoryItemType) power_port: PowerPortType = strawberry_django.field()
inventory_item_list = ObjectListField(InventoryItemType) power_port_list: List[PowerPortType] = strawberry_django.field()
def resolve_inventory_item_list(root, info, **kwargs): power_port_template: PowerPortTemplateType = strawberry_django.field()
return gql_query_optimizer(models.InventoryItem.objects.all(), info) power_port_template_list: List[PowerPortTemplateType] = strawberry_django.field()
inventory_item_role = ObjectField(InventoryItemRoleType) rack: RackType = strawberry_django.field()
inventory_item_role_list = ObjectListField(InventoryItemRoleType) rack_list: List[RackType] = strawberry_django.field()
def resolve_inventory_item_role_list(root, info, **kwargs): rack_reservation: RackReservationType = strawberry_django.field()
return gql_query_optimizer(models.InventoryItemRole.objects.all(), info) rack_reservation_list: List[RackReservationType] = strawberry_django.field()
inventory_item_template = ObjectField(InventoryItemTemplateType) rack_role: RackRoleType = strawberry_django.field()
inventory_item_template_list = ObjectListField(InventoryItemTemplateType) rack_role_list: List[RackRoleType] = strawberry_django.field()
def resolve_inventory_item_template_list(root, info, **kwargs): rear_port: RearPortType = strawberry_django.field()
return gql_query_optimizer(models.InventoryItemTemplate.objects.all(), info) rear_port_list: List[RearPortType] = strawberry_django.field()
location = ObjectField(LocationType) rear_port_template: RearPortTemplateType = strawberry_django.field()
location_list = ObjectListField(LocationType) rear_port_template_list: List[RearPortTemplateType] = strawberry_django.field()
def resolve_location_list(root, info, **kwargs): region: RegionType = strawberry_django.field()
return gql_query_optimizer(models.Location.objects.all(), info) region_list: List[RegionType] = strawberry_django.field()
manufacturer = ObjectField(ManufacturerType) site: SiteType = strawberry_django.field()
manufacturer_list = ObjectListField(ManufacturerType) site_list: List[SiteType] = strawberry_django.field()
def resolve_manufacturer_list(root, info, **kwargs): site_group: SiteGroupType = strawberry_django.field()
return gql_query_optimizer(models.Manufacturer.objects.all(), info) site_group_list: List[SiteGroupType] = strawberry_django.field()
module = ObjectField(ModuleType) virtual_chassis: VirtualChassisType = strawberry_django.field()
module_list = ObjectListField(ModuleType) virtual_chassis_list: List[VirtualChassisType] = strawberry_django.field()
def resolve_module_list(root, info, **kwargs): virtual_device_context: VirtualDeviceContextType = strawberry_django.field()
return gql_query_optimizer(models.Module.objects.all(), info) virtual_device_context_list: List[VirtualDeviceContextType] = strawberry_django.field()
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)

View File

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

View File

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