mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Add GraphQL for DCIM
This commit is contained in:
0
netbox/dcim/graphql/__init__.py
Normal file
0
netbox/dcim/graphql/__init__.py
Normal file
106
netbox/dcim/graphql/schema.py
Normal file
106
netbox/dcim/graphql/schema.py
Normal file
@@ -0,0 +1,106 @@
|
||||
import graphene
|
||||
|
||||
from netbox.graphql.fields import ObjectField, ObjectListField
|
||||
from .types import *
|
||||
|
||||
|
||||
class DCIMQuery(graphene.ObjectType):
|
||||
cable = ObjectField(CableType)
|
||||
cables = ObjectListField(CableType)
|
||||
|
||||
console_port = ObjectField(ConsolePortType)
|
||||
console_ports = ObjectListField(ConsolePortType)
|
||||
|
||||
console_port_template = ObjectField(ConsolePortTemplateType)
|
||||
console_port_templates = ObjectListField(ConsolePortTemplateType)
|
||||
|
||||
console_server_port = ObjectField(ConsoleServerPortType)
|
||||
console_server_ports = ObjectListField(ConsoleServerPortType)
|
||||
|
||||
console_server_port_template = ObjectField(ConsoleServerPortTemplateType)
|
||||
console_server_port_templates = ObjectListField(ConsoleServerPortTemplateType)
|
||||
|
||||
device = ObjectField(DeviceType)
|
||||
devices = ObjectListField(DeviceType)
|
||||
|
||||
device_bay = ObjectField(DeviceBayType)
|
||||
device_bays = ObjectListField(DeviceBayType)
|
||||
|
||||
device_bay_template = ObjectField(DeviceBayTemplateType)
|
||||
device_bay_templates = ObjectListField(DeviceBayTemplateType)
|
||||
|
||||
device_role = ObjectField(DeviceRoleType)
|
||||
device_roles = ObjectListField(DeviceRoleType)
|
||||
|
||||
device_type = ObjectField(DeviceTypeType)
|
||||
device_types = ObjectListField(DeviceTypeType)
|
||||
|
||||
front_port = ObjectField(FrontPortType)
|
||||
front_ports = ObjectListField(FrontPortType)
|
||||
|
||||
front_port_template = ObjectField(FrontPortTemplateType)
|
||||
front_port_templates = ObjectListField(FrontPortTemplateType)
|
||||
|
||||
interface = ObjectField(InterfaceType)
|
||||
interfaces = ObjectListField(InterfaceType)
|
||||
|
||||
interface_template = ObjectField(InterfaceTemplateType)
|
||||
interface_templates = ObjectListField(InterfaceTemplateType)
|
||||
|
||||
inventory_item = ObjectField(InventoryItemType)
|
||||
inventory_items = ObjectListField(InventoryItemType)
|
||||
|
||||
location = ObjectField(LocationType)
|
||||
locations = ObjectListField(LocationType)
|
||||
|
||||
manufacturer = ObjectField(ManufacturerType)
|
||||
manufacturers = ObjectListField(ManufacturerType)
|
||||
|
||||
platform = ObjectField(PlatformType)
|
||||
platforms = ObjectListField(PlatformType)
|
||||
|
||||
power_feed = ObjectField(PowerFeedType)
|
||||
power_feeds = ObjectListField(PowerFeedType)
|
||||
|
||||
power_outlet = ObjectField(PowerOutletType)
|
||||
power_outlets = ObjectListField(PowerOutletType)
|
||||
|
||||
power_outlet_template = ObjectField(PowerOutletTemplateType)
|
||||
power_outlet_templates = ObjectListField(PowerOutletTemplateType)
|
||||
|
||||
power_panel = ObjectField(PowerPanelType)
|
||||
power_panels = ObjectListField(PowerPanelType)
|
||||
|
||||
power_port = ObjectField(PowerPortType)
|
||||
power_ports = ObjectListField(PowerPortType)
|
||||
|
||||
power_port_template = ObjectField(PowerPortTemplateType)
|
||||
power_port_templates = ObjectListField(PowerPortTemplateType)
|
||||
|
||||
rack = ObjectField(RackType)
|
||||
racks = ObjectListField(RackType)
|
||||
|
||||
rack_reservation = ObjectField(RackReservationType)
|
||||
rack_reservations = ObjectListField(RackReservationType)
|
||||
|
||||
rack_role = ObjectField(RackRoleType)
|
||||
rack_roles = ObjectListField(RackRoleType)
|
||||
|
||||
rear_port = ObjectField(RearPortType)
|
||||
rear_ports = ObjectListField(RearPortType)
|
||||
|
||||
rear_port_template = ObjectField(RearPortTemplateType)
|
||||
rear_port_templates = ObjectListField(RearPortTemplateType)
|
||||
|
||||
region = ObjectField(RegionType)
|
||||
regions = ObjectListField(RegionType)
|
||||
|
||||
site = ObjectField(SiteType)
|
||||
sites = ObjectListField(SiteType)
|
||||
|
||||
site_group = ObjectField(SiteGroupType)
|
||||
site_groups = ObjectListField(SiteGroupType)
|
||||
|
||||
virtual_chassis = ObjectField(VirtualChassisType)
|
||||
# TODO: Rectify list field name
|
||||
virtual_chassis_list = ObjectListField(VirtualChassisType)
|
302
netbox/dcim/graphql/types.py
Normal file
302
netbox/dcim/graphql/types.py
Normal file
@@ -0,0 +1,302 @@
|
||||
from dcim import filtersets, models
|
||||
from netbox.graphql.types import BaseObjectType, ObjectType, TaggedObjectType
|
||||
|
||||
__all__ = (
|
||||
'CableType',
|
||||
'ConsolePortType',
|
||||
'ConsolePortTemplateType',
|
||||
'ConsoleServerPortType',
|
||||
'ConsoleServerPortTemplateType',
|
||||
'DeviceType',
|
||||
'DeviceBayType',
|
||||
'DeviceBayTemplateType',
|
||||
'DeviceRoleType',
|
||||
'DeviceTypeType',
|
||||
'FrontPortType',
|
||||
'FrontPortTemplateType',
|
||||
'InterfaceType',
|
||||
'InterfaceTemplateType',
|
||||
'InventoryItemType',
|
||||
'LocationType',
|
||||
'ManufacturerType',
|
||||
'PlatformType',
|
||||
'PowerFeedType',
|
||||
'PowerOutletType',
|
||||
'PowerOutletTemplateType',
|
||||
'PowerPanelType',
|
||||
'PowerPortType',
|
||||
'PowerPortTemplateType',
|
||||
'RackType',
|
||||
'RackReservationType',
|
||||
'RackRoleType',
|
||||
'RearPortType',
|
||||
'RearPortTemplateType',
|
||||
'RegionType',
|
||||
'SiteType',
|
||||
'SiteGroupType',
|
||||
'VirtualChassisType',
|
||||
)
|
||||
|
||||
|
||||
class CableType(TaggedObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.Cable
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.CableFilterSet
|
||||
|
||||
|
||||
class ConsolePortType(TaggedObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.ConsolePort
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.ConsolePortFilterSet
|
||||
|
||||
|
||||
class ConsolePortTemplateType(BaseObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.ConsolePortTemplate
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.ConsolePortTemplateFilterSet
|
||||
|
||||
|
||||
class ConsoleServerPortType(TaggedObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.ConsoleServerPort
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.ConsoleServerPortFilterSet
|
||||
|
||||
|
||||
class ConsoleServerPortTemplateType(BaseObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.ConsoleServerPortTemplate
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.ConsoleServerPortTemplateFilterSet
|
||||
|
||||
|
||||
class DeviceType(TaggedObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.Device
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.DeviceFilterSet
|
||||
|
||||
|
||||
class DeviceBayType(TaggedObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.DeviceBay
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.DeviceBayFilterSet
|
||||
|
||||
|
||||
class DeviceBayTemplateType(BaseObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.DeviceBayTemplate
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.DeviceBayTemplateFilterSet
|
||||
|
||||
|
||||
class DeviceRoleType(ObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.DeviceRole
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.DeviceRoleFilterSet
|
||||
|
||||
|
||||
class DeviceTypeType(TaggedObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.DeviceType
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.DeviceTypeFilterSet
|
||||
|
||||
|
||||
class FrontPortType(TaggedObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.FrontPort
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.FrontPortFilterSet
|
||||
|
||||
|
||||
class FrontPortTemplateType(BaseObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.FrontPortTemplate
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.FrontPortTemplateFilterSet
|
||||
|
||||
|
||||
class InterfaceType(TaggedObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.Interface
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.InterfaceFilterSet
|
||||
|
||||
|
||||
class InterfaceTemplateType(BaseObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.InterfaceTemplate
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.InterfaceTemplateFilterSet
|
||||
|
||||
|
||||
class InventoryItemType(ObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.InventoryItem
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.InventoryItemFilterSet
|
||||
|
||||
|
||||
class LocationType(TaggedObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.Location
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.LocationFilterSet
|
||||
|
||||
|
||||
class ManufacturerType(ObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.Manufacturer
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.ManufacturerFilterSet
|
||||
|
||||
|
||||
class PlatformType(ObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.Platform
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.PlatformFilterSet
|
||||
|
||||
|
||||
class PowerFeedType(TaggedObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.PowerFeed
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.PowerFeedFilterSet
|
||||
|
||||
|
||||
class PowerOutletType(TaggedObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.PowerOutlet
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.PowerOutletFilterSet
|
||||
|
||||
|
||||
class PowerOutletTemplateType(BaseObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.PowerOutletTemplate
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.PowerOutletTemplateFilterSet
|
||||
|
||||
|
||||
class PowerPanelType(TaggedObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.PowerPanel
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.PowerPanelFilterSet
|
||||
|
||||
|
||||
class PowerPortType(TaggedObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.PowerPort
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.PowerPortFilterSet
|
||||
|
||||
|
||||
class PowerPortTemplateType(BaseObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.PowerPortTemplate
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.PowerPortTemplateFilterSet
|
||||
|
||||
|
||||
class RackType(TaggedObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.Rack
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.RackFilterSet
|
||||
|
||||
|
||||
class RackReservationType(TaggedObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.RackReservation
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.RackReservationFilterSet
|
||||
|
||||
|
||||
class RackRoleType(ObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.RackRole
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.RackRoleFilterSet
|
||||
|
||||
|
||||
class RearPortType(TaggedObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.RearPort
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.RearPortFilterSet
|
||||
|
||||
|
||||
class RearPortTemplateType(BaseObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.RearPortTemplate
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.RearPortTemplateFilterSet
|
||||
|
||||
|
||||
class RegionType(ObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.Region
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.RegionFilterSet
|
||||
|
||||
|
||||
class SiteType(TaggedObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.Site
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.SiteFilterSet
|
||||
|
||||
|
||||
class SiteGroupType(ObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.SiteGroup
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.SiteGroupFilterSet
|
||||
|
||||
|
||||
class VirtualChassisType(TaggedObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.VirtualChassis
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.VirtualChassisFilterSet
|
Reference in New Issue
Block a user