mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-25 18:08:38 -06:00
Add GraphQL for DCIM
This commit is contained in:
parent
605b7c5b3e
commit
14e27363e0
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
|
@ -25,6 +25,7 @@ __all__ = (
|
|||||||
'Interface',
|
'Interface',
|
||||||
'InterfaceTemplate',
|
'InterfaceTemplate',
|
||||||
'InventoryItem',
|
'InventoryItem',
|
||||||
|
'Location',
|
||||||
'Manufacturer',
|
'Manufacturer',
|
||||||
'Platform',
|
'Platform',
|
||||||
'PowerFeed',
|
'PowerFeed',
|
||||||
@ -34,7 +35,6 @@ __all__ = (
|
|||||||
'PowerPort',
|
'PowerPort',
|
||||||
'PowerPortTemplate',
|
'PowerPortTemplate',
|
||||||
'Rack',
|
'Rack',
|
||||||
'Location',
|
|
||||||
'RackReservation',
|
'RackReservation',
|
||||||
'RackRole',
|
'RackRole',
|
||||||
'RearPort',
|
'RearPort',
|
||||||
|
@ -57,7 +57,7 @@ class Mixins:
|
|||||||
self.assertEqual(segment1[2]['name'], peer_obj.name)
|
self.assertEqual(segment1[2]['name'], peer_obj.name)
|
||||||
|
|
||||||
|
|
||||||
class RegionTest(APIViewTestCases.APIViewTestCase):
|
class RegionTest(APIViewTestCases.GraphQLTestCase, APIViewTestCases.APIViewTestCase):
|
||||||
model = Region
|
model = Region
|
||||||
brief_fields = ['_depth', 'display', 'id', 'name', 'site_count', 'slug', 'url']
|
brief_fields = ['_depth', 'display', 'id', 'name', 'site_count', 'slug', 'url']
|
||||||
create_data = [
|
create_data = [
|
||||||
@ -86,7 +86,7 @@ class RegionTest(APIViewTestCases.APIViewTestCase):
|
|||||||
Region.objects.create(name='Region 3', slug='region-3')
|
Region.objects.create(name='Region 3', slug='region-3')
|
||||||
|
|
||||||
|
|
||||||
class SiteGroupTest(APIViewTestCases.APIViewTestCase):
|
class SiteGroupTest(APIViewTestCases.GraphQLTestCase, APIViewTestCases.APIViewTestCase):
|
||||||
model = SiteGroup
|
model = SiteGroup
|
||||||
brief_fields = ['_depth', 'display', 'id', 'name', 'site_count', 'slug', 'url']
|
brief_fields = ['_depth', 'display', 'id', 'name', 'site_count', 'slug', 'url']
|
||||||
create_data = [
|
create_data = [
|
||||||
@ -115,7 +115,7 @@ class SiteGroupTest(APIViewTestCases.APIViewTestCase):
|
|||||||
SiteGroup.objects.create(name='Site Group 3', slug='site-group-3')
|
SiteGroup.objects.create(name='Site Group 3', slug='site-group-3')
|
||||||
|
|
||||||
|
|
||||||
class SiteTest(APIViewTestCases.APIViewTestCase):
|
class SiteTest(APIViewTestCases.GraphQLTestCase, APIViewTestCases.APIViewTestCase):
|
||||||
model = Site
|
model = Site
|
||||||
brief_fields = ['display', 'id', 'name', 'slug', 'url']
|
brief_fields = ['display', 'id', 'name', 'slug', 'url']
|
||||||
bulk_update_data = {
|
bulk_update_data = {
|
||||||
@ -167,7 +167,7 @@ class SiteTest(APIViewTestCases.APIViewTestCase):
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
class LocationTest(APIViewTestCases.APIViewTestCase):
|
class LocationTest(APIViewTestCases.GraphQLTestCase, APIViewTestCases.APIViewTestCase):
|
||||||
model = Location
|
model = Location
|
||||||
brief_fields = ['_depth', 'display', 'id', 'name', 'rack_count', 'slug', 'url']
|
brief_fields = ['_depth', 'display', 'id', 'name', 'rack_count', 'slug', 'url']
|
||||||
bulk_update_data = {
|
bulk_update_data = {
|
||||||
@ -214,7 +214,7 @@ class LocationTest(APIViewTestCases.APIViewTestCase):
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
class RackRoleTest(APIViewTestCases.APIViewTestCase):
|
class RackRoleTest(APIViewTestCases.GraphQLTestCase, APIViewTestCases.APIViewTestCase):
|
||||||
model = RackRole
|
model = RackRole
|
||||||
brief_fields = ['display', 'id', 'name', 'rack_count', 'slug', 'url']
|
brief_fields = ['display', 'id', 'name', 'rack_count', 'slug', 'url']
|
||||||
create_data = [
|
create_data = [
|
||||||
@ -249,7 +249,7 @@ class RackRoleTest(APIViewTestCases.APIViewTestCase):
|
|||||||
RackRole.objects.bulk_create(rack_roles)
|
RackRole.objects.bulk_create(rack_roles)
|
||||||
|
|
||||||
|
|
||||||
class RackTest(APIViewTestCases.APIViewTestCase):
|
class RackTest(APIViewTestCases.GraphQLTestCase, APIViewTestCases.APIViewTestCase):
|
||||||
model = Rack
|
model = Rack
|
||||||
brief_fields = ['device_count', 'display', 'id', 'name', 'url']
|
brief_fields = ['device_count', 'display', 'id', 'name', 'url']
|
||||||
bulk_update_data = {
|
bulk_update_data = {
|
||||||
@ -337,7 +337,7 @@ class RackTest(APIViewTestCases.APIViewTestCase):
|
|||||||
self.assertEqual(response.get('Content-Type'), 'image/svg+xml')
|
self.assertEqual(response.get('Content-Type'), 'image/svg+xml')
|
||||||
|
|
||||||
|
|
||||||
class RackReservationTest(APIViewTestCases.APIViewTestCase):
|
class RackReservationTest(APIViewTestCases.GraphQLTestCase, APIViewTestCases.APIViewTestCase):
|
||||||
model = RackReservation
|
model = RackReservation
|
||||||
brief_fields = ['display', 'id', 'units', 'url', 'user']
|
brief_fields = ['display', 'id', 'units', 'url', 'user']
|
||||||
bulk_update_data = {
|
bulk_update_data = {
|
||||||
@ -384,7 +384,7 @@ class RackReservationTest(APIViewTestCases.APIViewTestCase):
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
class ManufacturerTest(APIViewTestCases.APIViewTestCase):
|
class ManufacturerTest(APIViewTestCases.GraphQLTestCase, APIViewTestCases.APIViewTestCase):
|
||||||
model = Manufacturer
|
model = Manufacturer
|
||||||
brief_fields = ['devicetype_count', 'display', 'id', 'name', 'slug', 'url']
|
brief_fields = ['devicetype_count', 'display', 'id', 'name', 'slug', 'url']
|
||||||
create_data = [
|
create_data = [
|
||||||
@ -416,7 +416,7 @@ class ManufacturerTest(APIViewTestCases.APIViewTestCase):
|
|||||||
Manufacturer.objects.bulk_create(manufacturers)
|
Manufacturer.objects.bulk_create(manufacturers)
|
||||||
|
|
||||||
|
|
||||||
class DeviceTypeTest(APIViewTestCases.APIViewTestCase):
|
class DeviceTypeTest(APIViewTestCases.GraphQLTestCase, APIViewTestCases.APIViewTestCase):
|
||||||
model = DeviceType
|
model = DeviceType
|
||||||
brief_fields = ['device_count', 'display', 'id', 'manufacturer', 'model', 'slug', 'url']
|
brief_fields = ['device_count', 'display', 'id', 'manufacturer', 'model', 'slug', 'url']
|
||||||
bulk_update_data = {
|
bulk_update_data = {
|
||||||
@ -458,7 +458,7 @@ class DeviceTypeTest(APIViewTestCases.APIViewTestCase):
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
class ConsolePortTemplateTest(APIViewTestCases.APIViewTestCase):
|
class ConsolePortTemplateTest(APIViewTestCases.GraphQLTestCase, APIViewTestCases.APIViewTestCase):
|
||||||
model = ConsolePortTemplate
|
model = ConsolePortTemplate
|
||||||
brief_fields = ['display', 'id', 'name', 'url']
|
brief_fields = ['display', 'id', 'name', 'url']
|
||||||
bulk_update_data = {
|
bulk_update_data = {
|
||||||
@ -495,7 +495,7 @@ class ConsolePortTemplateTest(APIViewTestCases.APIViewTestCase):
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
class ConsoleServerPortTemplateTest(APIViewTestCases.APIViewTestCase):
|
class ConsoleServerPortTemplateTest(APIViewTestCases.GraphQLTestCase, APIViewTestCases.APIViewTestCase):
|
||||||
model = ConsoleServerPortTemplate
|
model = ConsoleServerPortTemplate
|
||||||
brief_fields = ['display', 'id', 'name', 'url']
|
brief_fields = ['display', 'id', 'name', 'url']
|
||||||
bulk_update_data = {
|
bulk_update_data = {
|
||||||
@ -532,7 +532,7 @@ class ConsoleServerPortTemplateTest(APIViewTestCases.APIViewTestCase):
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
class PowerPortTemplateTest(APIViewTestCases.APIViewTestCase):
|
class PowerPortTemplateTest(APIViewTestCases.GraphQLTestCase, APIViewTestCases.APIViewTestCase):
|
||||||
model = PowerPortTemplate
|
model = PowerPortTemplate
|
||||||
brief_fields = ['display', 'id', 'name', 'url']
|
brief_fields = ['display', 'id', 'name', 'url']
|
||||||
bulk_update_data = {
|
bulk_update_data = {
|
||||||
@ -569,7 +569,7 @@ class PowerPortTemplateTest(APIViewTestCases.APIViewTestCase):
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
class PowerOutletTemplateTest(APIViewTestCases.APIViewTestCase):
|
class PowerOutletTemplateTest(APIViewTestCases.GraphQLTestCase, APIViewTestCases.APIViewTestCase):
|
||||||
model = PowerOutletTemplate
|
model = PowerOutletTemplate
|
||||||
brief_fields = ['display', 'id', 'name', 'url']
|
brief_fields = ['display', 'id', 'name', 'url']
|
||||||
bulk_update_data = {
|
bulk_update_data = {
|
||||||
@ -606,7 +606,7 @@ class PowerOutletTemplateTest(APIViewTestCases.APIViewTestCase):
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
class InterfaceTemplateTest(APIViewTestCases.APIViewTestCase):
|
class InterfaceTemplateTest(APIViewTestCases.GraphQLTestCase, APIViewTestCases.APIViewTestCase):
|
||||||
model = InterfaceTemplate
|
model = InterfaceTemplate
|
||||||
brief_fields = ['display', 'id', 'name', 'url']
|
brief_fields = ['display', 'id', 'name', 'url']
|
||||||
bulk_update_data = {
|
bulk_update_data = {
|
||||||
@ -646,7 +646,7 @@ class InterfaceTemplateTest(APIViewTestCases.APIViewTestCase):
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
class FrontPortTemplateTest(APIViewTestCases.APIViewTestCase):
|
class FrontPortTemplateTest(APIViewTestCases.GraphQLTestCase, APIViewTestCases.APIViewTestCase):
|
||||||
model = FrontPortTemplate
|
model = FrontPortTemplate
|
||||||
brief_fields = ['display', 'id', 'name', 'url']
|
brief_fields = ['display', 'id', 'name', 'url']
|
||||||
bulk_update_data = {
|
bulk_update_data = {
|
||||||
@ -717,7 +717,7 @@ class FrontPortTemplateTest(APIViewTestCases.APIViewTestCase):
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
class RearPortTemplateTest(APIViewTestCases.APIViewTestCase):
|
class RearPortTemplateTest(APIViewTestCases.GraphQLTestCase, APIViewTestCases.APIViewTestCase):
|
||||||
model = RearPortTemplate
|
model = RearPortTemplate
|
||||||
brief_fields = ['display', 'id', 'name', 'url']
|
brief_fields = ['display', 'id', 'name', 'url']
|
||||||
bulk_update_data = {
|
bulk_update_data = {
|
||||||
@ -757,7 +757,7 @@ class RearPortTemplateTest(APIViewTestCases.APIViewTestCase):
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
class DeviceBayTemplateTest(APIViewTestCases.APIViewTestCase):
|
class DeviceBayTemplateTest(APIViewTestCases.GraphQLTestCase, APIViewTestCases.APIViewTestCase):
|
||||||
model = DeviceBayTemplate
|
model = DeviceBayTemplate
|
||||||
brief_fields = ['display', 'id', 'name', 'url']
|
brief_fields = ['display', 'id', 'name', 'url']
|
||||||
bulk_update_data = {
|
bulk_update_data = {
|
||||||
@ -797,7 +797,7 @@ class DeviceBayTemplateTest(APIViewTestCases.APIViewTestCase):
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
class DeviceRoleTest(APIViewTestCases.APIViewTestCase):
|
class DeviceRoleTest(APIViewTestCases.GraphQLTestCase, APIViewTestCases.APIViewTestCase):
|
||||||
model = DeviceRole
|
model = DeviceRole
|
||||||
brief_fields = ['device_count', 'display', 'id', 'name', 'slug', 'url', 'virtualmachine_count']
|
brief_fields = ['device_count', 'display', 'id', 'name', 'slug', 'url', 'virtualmachine_count']
|
||||||
create_data = [
|
create_data = [
|
||||||
@ -832,7 +832,7 @@ class DeviceRoleTest(APIViewTestCases.APIViewTestCase):
|
|||||||
DeviceRole.objects.bulk_create(device_roles)
|
DeviceRole.objects.bulk_create(device_roles)
|
||||||
|
|
||||||
|
|
||||||
class PlatformTest(APIViewTestCases.APIViewTestCase):
|
class PlatformTest(APIViewTestCases.GraphQLTestCase, APIViewTestCases.APIViewTestCase):
|
||||||
model = Platform
|
model = Platform
|
||||||
brief_fields = ['device_count', 'display', 'id', 'name', 'slug', 'url', 'virtualmachine_count']
|
brief_fields = ['device_count', 'display', 'id', 'name', 'slug', 'url', 'virtualmachine_count']
|
||||||
create_data = [
|
create_data = [
|
||||||
@ -864,7 +864,7 @@ class PlatformTest(APIViewTestCases.APIViewTestCase):
|
|||||||
Platform.objects.bulk_create(platforms)
|
Platform.objects.bulk_create(platforms)
|
||||||
|
|
||||||
|
|
||||||
class DeviceTest(APIViewTestCases.APIViewTestCase):
|
class DeviceTest(APIViewTestCases.GraphQLTestCase, APIViewTestCases.APIViewTestCase):
|
||||||
model = Device
|
model = Device
|
||||||
brief_fields = ['display', 'id', 'name', 'url']
|
brief_fields = ['display', 'id', 'name', 'url']
|
||||||
bulk_update_data = {
|
bulk_update_data = {
|
||||||
@ -1219,7 +1219,7 @@ class InterfaceTest(Mixins.ComponentTraceMixin, APIViewTestCases.APIViewTestCase
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
class FrontPortTest(APIViewTestCases.APIViewTestCase):
|
class FrontPortTest(APIViewTestCases.GraphQLTestCase, APIViewTestCases.APIViewTestCase):
|
||||||
model = FrontPort
|
model = FrontPort
|
||||||
brief_fields = ['_occupied', 'cable', 'device', 'display', 'id', 'name', 'url']
|
brief_fields = ['_occupied', 'cable', 'device', 'display', 'id', 'name', 'url']
|
||||||
bulk_update_data = {
|
bulk_update_data = {
|
||||||
@ -1277,7 +1277,7 @@ class FrontPortTest(APIViewTestCases.APIViewTestCase):
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
class RearPortTest(APIViewTestCases.APIViewTestCase):
|
class RearPortTest(APIViewTestCases.GraphQLTestCase, APIViewTestCases.APIViewTestCase):
|
||||||
model = RearPort
|
model = RearPort
|
||||||
brief_fields = ['_occupied', 'cable', 'device', 'display', 'id', 'name', 'url']
|
brief_fields = ['_occupied', 'cable', 'device', 'display', 'id', 'name', 'url']
|
||||||
bulk_update_data = {
|
bulk_update_data = {
|
||||||
@ -1319,7 +1319,7 @@ class RearPortTest(APIViewTestCases.APIViewTestCase):
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
class DeviceBayTest(APIViewTestCases.APIViewTestCase):
|
class DeviceBayTest(APIViewTestCases.GraphQLTestCase, APIViewTestCases.APIViewTestCase):
|
||||||
model = DeviceBay
|
model = DeviceBay
|
||||||
brief_fields = ['device', 'display', 'id', 'name', 'url']
|
brief_fields = ['device', 'display', 'id', 'name', 'url']
|
||||||
bulk_update_data = {
|
bulk_update_data = {
|
||||||
@ -1382,7 +1382,7 @@ class DeviceBayTest(APIViewTestCases.APIViewTestCase):
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
class InventoryItemTest(APIViewTestCases.APIViewTestCase):
|
class InventoryItemTest(APIViewTestCases.GraphQLTestCase, APIViewTestCases.APIViewTestCase):
|
||||||
model = InventoryItem
|
model = InventoryItem
|
||||||
brief_fields = ['_depth', 'device', 'display', 'id', 'name', 'url']
|
brief_fields = ['_depth', 'device', 'display', 'id', 'name', 'url']
|
||||||
bulk_update_data = {
|
bulk_update_data = {
|
||||||
@ -1420,7 +1420,7 @@ class InventoryItemTest(APIViewTestCases.APIViewTestCase):
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
class CableTest(APIViewTestCases.APIViewTestCase):
|
class CableTest(APIViewTestCases.GraphQLTestCase, APIViewTestCases.APIViewTestCase):
|
||||||
model = Cable
|
model = Cable
|
||||||
brief_fields = ['display', 'id', 'label', 'url']
|
brief_fields = ['display', 'id', 'label', 'url']
|
||||||
bulk_update_data = {
|
bulk_update_data = {
|
||||||
@ -1525,10 +1525,12 @@ class ConnectedDeviceTest(APITestCase):
|
|||||||
self.assertEqual(response.data['name'], self.device1.name)
|
self.assertEqual(response.data['name'], self.device1.name)
|
||||||
|
|
||||||
|
|
||||||
class VirtualChassisTest(APIViewTestCases.APIViewTestCase):
|
class VirtualChassisTest(APIViewTestCases.GraphQLTestCase, APIViewTestCases.APIViewTestCase):
|
||||||
model = VirtualChassis
|
model = VirtualChassis
|
||||||
brief_fields = ['id', 'master', 'member_count', 'name', 'url']
|
brief_fields = ['id', 'master', 'member_count', 'name', 'url']
|
||||||
|
|
||||||
|
graphql_base_name_plural = 'virtual_chassis_list'
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def setUpTestData(cls):
|
def setUpTestData(cls):
|
||||||
site = Site.objects.create(name='Test Site', slug='test-site')
|
site = Site.objects.create(name='Test Site', slug='test-site')
|
||||||
@ -1605,7 +1607,7 @@ class VirtualChassisTest(APIViewTestCases.APIViewTestCase):
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class PowerPanelTest(APIViewTestCases.APIViewTestCase):
|
class PowerPanelTest(APIViewTestCases.GraphQLTestCase, APIViewTestCases.APIViewTestCase):
|
||||||
model = PowerPanel
|
model = PowerPanel
|
||||||
brief_fields = ['display', 'id', 'name', 'powerfeed_count', 'url']
|
brief_fields = ['display', 'id', 'name', 'powerfeed_count', 'url']
|
||||||
|
|
||||||
@ -1654,7 +1656,7 @@ class PowerPanelTest(APIViewTestCases.APIViewTestCase):
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class PowerFeedTest(APIViewTestCases.APIViewTestCase):
|
class PowerFeedTest(APIViewTestCases.GraphQLTestCase, APIViewTestCases.APIViewTestCase):
|
||||||
model = PowerFeed
|
model = PowerFeed
|
||||||
brief_fields = ['_occupied', 'cable', 'display', 'id', 'name', 'url']
|
brief_fields = ['_occupied', 'cable', 'display', 'id', 'name', 'url']
|
||||||
bulk_update_data = {
|
bulk_update_data = {
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import graphene
|
import graphene
|
||||||
|
|
||||||
from circuits.graphql.schema import CircuitsQuery
|
from circuits.graphql.schema import CircuitsQuery
|
||||||
|
from dcim.graphql.schema import DCIMQuery
|
||||||
from extras.graphql.schema import ExtrasQuery
|
from extras.graphql.schema import ExtrasQuery
|
||||||
from ipam.graphql.schema import IPAMQuery
|
from ipam.graphql.schema import IPAMQuery
|
||||||
from tenancy.graphql.schema import TenancyQuery
|
from tenancy.graphql.schema import TenancyQuery
|
||||||
@ -9,6 +10,7 @@ from virtualization.graphql.schema import VirtualizationQuery
|
|||||||
|
|
||||||
class Query(
|
class Query(
|
||||||
CircuitsQuery,
|
CircuitsQuery,
|
||||||
|
DCIMQuery,
|
||||||
ExtrasQuery,
|
ExtrasQuery,
|
||||||
IPAMQuery,
|
IPAMQuery,
|
||||||
TenancyQuery,
|
TenancyQuery,
|
||||||
|
Loading…
Reference in New Issue
Block a user