Rename base Graphene types to match base models

This commit is contained in:
jeremystretch 2021-08-03 14:14:36 -04:00
parent ea86321da8
commit 1518a460d5
6 changed files with 85 additions and 52 deletions

View File

@ -1,5 +1,5 @@
from circuits import filtersets, models from circuits import filtersets, models
from netbox.graphql.types import BaseObjectType, ObjectType, PrimaryObjectType from netbox.graphql.types import BaseObjectType, OrganizationalObjectType, PrimaryObjectType
__all__ = ( __all__ = (
'CircuitTerminationType', 'CircuitTerminationType',
@ -26,7 +26,7 @@ class CircuitType(PrimaryObjectType):
filterset_class = filtersets.CircuitFilterSet filterset_class = filtersets.CircuitFilterSet
class CircuitTypeType(ObjectType): class CircuitTypeType(OrganizationalObjectType):
class Meta: class Meta:
model = models.CircuitType model = models.CircuitType

View File

@ -1,10 +1,11 @@
from dcim import filtersets, models from dcim import filtersets, models
from extras.graphql.mixins import ImageAttachmentsMixin from extras.graphql.mixins import CustomFieldsMixin, ImageAttachmentsMixin, TagsMixin
from ipam.graphql.mixins import IPAddressesMixin, VLANGroupsMixin from ipam.graphql.mixins import IPAddressesMixin, VLANGroupsMixin
from netbox.graphql.types import BaseObjectType, ObjectType, PrimaryObjectType, TaggedObjectType from netbox.graphql.types import BaseObjectType, OrganizationalObjectType, PrimaryObjectType
__all__ = ( __all__ = (
'CableType', 'CableType',
'ComponentObjectType',
'ConsolePortType', 'ConsolePortType',
'ConsolePortTemplateType', 'ConsolePortTemplateType',
'ConsoleServerPortType', 'ConsoleServerPortType',
@ -40,6 +41,37 @@ __all__ = (
) )
#
# Base types
#
class ComponentObjectType(
CustomFieldsMixin,
TagsMixin,
BaseObjectType
):
"""
Base type for device/VM components
"""
class Meta:
abstract = True
class ComponentTemplateObjectType(
BaseObjectType
):
"""
Base type for device/VM components
"""
class Meta:
abstract = True
#
# Model types
#
class CableType(PrimaryObjectType): class CableType(PrimaryObjectType):
class Meta: class Meta:
@ -54,7 +86,7 @@ class CableType(PrimaryObjectType):
return self.length_unit or None return self.length_unit or None
class ConsolePortType(TaggedObjectType): class ConsolePortType(ComponentObjectType):
class Meta: class Meta:
model = models.ConsolePort model = models.ConsolePort
@ -65,7 +97,7 @@ class ConsolePortType(TaggedObjectType):
return self.type or None return self.type or None
class ConsolePortTemplateType(BaseObjectType): class ConsolePortTemplateType(ComponentTemplateObjectType):
class Meta: class Meta:
model = models.ConsolePortTemplate model = models.ConsolePortTemplate
@ -76,7 +108,7 @@ class ConsolePortTemplateType(BaseObjectType):
return self.type or None return self.type or None
class ConsoleServerPortType(TaggedObjectType): class ConsoleServerPortType(ComponentObjectType):
class Meta: class Meta:
model = models.ConsoleServerPort model = models.ConsoleServerPort
@ -87,7 +119,7 @@ class ConsoleServerPortType(TaggedObjectType):
return self.type or None return self.type or None
class ConsoleServerPortTemplateType(BaseObjectType): class ConsoleServerPortTemplateType(ComponentTemplateObjectType):
class Meta: class Meta:
model = models.ConsoleServerPortTemplate model = models.ConsoleServerPortTemplate
@ -109,7 +141,7 @@ class DeviceType(ImageAttachmentsMixin, PrimaryObjectType):
return self.face or None return self.face or None
class DeviceBayType(TaggedObjectType): class DeviceBayType(ComponentObjectType):
class Meta: class Meta:
model = models.DeviceBay model = models.DeviceBay
@ -117,7 +149,7 @@ class DeviceBayType(TaggedObjectType):
filterset_class = filtersets.DeviceBayFilterSet filterset_class = filtersets.DeviceBayFilterSet
class DeviceBayTemplateType(BaseObjectType): class DeviceBayTemplateType(ComponentTemplateObjectType):
class Meta: class Meta:
model = models.DeviceBayTemplate model = models.DeviceBayTemplate
@ -125,7 +157,7 @@ class DeviceBayTemplateType(BaseObjectType):
filterset_class = filtersets.DeviceBayTemplateFilterSet filterset_class = filtersets.DeviceBayTemplateFilterSet
class DeviceRoleType(ObjectType): class DeviceRoleType(OrganizationalObjectType):
class Meta: class Meta:
model = models.DeviceRole model = models.DeviceRole
@ -144,7 +176,7 @@ class DeviceTypeType(PrimaryObjectType):
return self.subdevice_role or None return self.subdevice_role or None
class FrontPortType(TaggedObjectType): class FrontPortType(ComponentObjectType):
class Meta: class Meta:
model = models.FrontPort model = models.FrontPort
@ -152,7 +184,7 @@ class FrontPortType(TaggedObjectType):
filterset_class = filtersets.FrontPortFilterSet filterset_class = filtersets.FrontPortFilterSet
class FrontPortTemplateType(BaseObjectType): class FrontPortTemplateType(ComponentTemplateObjectType):
class Meta: class Meta:
model = models.FrontPortTemplate model = models.FrontPortTemplate
@ -160,7 +192,7 @@ class FrontPortTemplateType(BaseObjectType):
filterset_class = filtersets.FrontPortTemplateFilterSet filterset_class = filtersets.FrontPortTemplateFilterSet
class InterfaceType(IPAddressesMixin, TaggedObjectType): class InterfaceType(IPAddressesMixin, ComponentObjectType):
class Meta: class Meta:
model = models.Interface model = models.Interface
@ -171,7 +203,7 @@ class InterfaceType(IPAddressesMixin, TaggedObjectType):
return self.mode or None return self.mode or None
class InterfaceTemplateType(BaseObjectType): class InterfaceTemplateType(ComponentTemplateObjectType):
class Meta: class Meta:
model = models.InterfaceTemplate model = models.InterfaceTemplate
@ -179,7 +211,7 @@ class InterfaceTemplateType(BaseObjectType):
filterset_class = filtersets.InterfaceTemplateFilterSet filterset_class = filtersets.InterfaceTemplateFilterSet
class InventoryItemType(TaggedObjectType): class InventoryItemType(ComponentObjectType):
class Meta: class Meta:
model = models.InventoryItem model = models.InventoryItem
@ -187,7 +219,7 @@ class InventoryItemType(TaggedObjectType):
filterset_class = filtersets.InventoryItemFilterSet filterset_class = filtersets.InventoryItemFilterSet
class LocationType(VLANGroupsMixin, ImageAttachmentsMixin, ObjectType): class LocationType(VLANGroupsMixin, ImageAttachmentsMixin, OrganizationalObjectType):
class Meta: class Meta:
model = models.Location model = models.Location
@ -195,7 +227,7 @@ class LocationType(VLANGroupsMixin, ImageAttachmentsMixin, ObjectType):
filterset_class = filtersets.LocationFilterSet filterset_class = filtersets.LocationFilterSet
class ManufacturerType(ObjectType): class ManufacturerType(OrganizationalObjectType):
class Meta: class Meta:
model = models.Manufacturer model = models.Manufacturer
@ -203,7 +235,7 @@ class ManufacturerType(ObjectType):
filterset_class = filtersets.ManufacturerFilterSet filterset_class = filtersets.ManufacturerFilterSet
class PlatformType(ObjectType): class PlatformType(OrganizationalObjectType):
class Meta: class Meta:
model = models.Platform model = models.Platform
@ -219,7 +251,7 @@ class PowerFeedType(PrimaryObjectType):
filterset_class = filtersets.PowerFeedFilterSet filterset_class = filtersets.PowerFeedFilterSet
class PowerOutletType(TaggedObjectType): class PowerOutletType(ComponentObjectType):
class Meta: class Meta:
model = models.PowerOutlet model = models.PowerOutlet
@ -233,7 +265,7 @@ class PowerOutletType(TaggedObjectType):
return self.type or None return self.type or None
class PowerOutletTemplateType(BaseObjectType): class PowerOutletTemplateType(ComponentTemplateObjectType):
class Meta: class Meta:
model = models.PowerOutletTemplate model = models.PowerOutletTemplate
@ -255,7 +287,7 @@ class PowerPanelType(PrimaryObjectType):
filterset_class = filtersets.PowerPanelFilterSet filterset_class = filtersets.PowerPanelFilterSet
class PowerPortType(TaggedObjectType): class PowerPortType(ComponentObjectType):
class Meta: class Meta:
model = models.PowerPort model = models.PowerPort
@ -266,7 +298,7 @@ class PowerPortType(TaggedObjectType):
return self.type or None return self.type or None
class PowerPortTemplateType(BaseObjectType): class PowerPortTemplateType(ComponentTemplateObjectType):
class Meta: class Meta:
model = models.PowerPortTemplate model = models.PowerPortTemplate
@ -299,7 +331,7 @@ class RackReservationType(PrimaryObjectType):
filterset_class = filtersets.RackReservationFilterSet filterset_class = filtersets.RackReservationFilterSet
class RackRoleType(ObjectType): class RackRoleType(OrganizationalObjectType):
class Meta: class Meta:
model = models.RackRole model = models.RackRole
@ -307,7 +339,7 @@ class RackRoleType(ObjectType):
filterset_class = filtersets.RackRoleFilterSet filterset_class = filtersets.RackRoleFilterSet
class RearPortType(TaggedObjectType): class RearPortType(ComponentObjectType):
class Meta: class Meta:
model = models.RearPort model = models.RearPort
@ -315,7 +347,7 @@ class RearPortType(TaggedObjectType):
filterset_class = filtersets.RearPortFilterSet filterset_class = filtersets.RearPortFilterSet
class RearPortTemplateType(BaseObjectType): class RearPortTemplateType(ComponentTemplateObjectType):
class Meta: class Meta:
model = models.RearPortTemplate model = models.RearPortTemplate
@ -323,7 +355,7 @@ class RearPortTemplateType(BaseObjectType):
filterset_class = filtersets.RearPortTemplateFilterSet filterset_class = filtersets.RearPortTemplateFilterSet
class RegionType(VLANGroupsMixin, ObjectType): class RegionType(VLANGroupsMixin, OrganizationalObjectType):
class Meta: class Meta:
model = models.Region model = models.Region
@ -339,7 +371,7 @@ class SiteType(VLANGroupsMixin, ImageAttachmentsMixin, PrimaryObjectType):
filterset_class = filtersets.SiteFilterSet filterset_class = filtersets.SiteFilterSet
class SiteGroupType(VLANGroupsMixin, ObjectType): class SiteGroupType(VLANGroupsMixin, OrganizationalObjectType):
class Meta: class Meta:
model = models.SiteGroup model = models.SiteGroup

View File

@ -1,5 +1,5 @@
from ipam import filtersets, models from ipam import filtersets, models
from netbox.graphql.types import ObjectType, PrimaryObjectType from netbox.graphql.types import OrganizationalObjectType, PrimaryObjectType
__all__ = ( __all__ = (
'AggregateType', 'AggregateType',
@ -54,7 +54,7 @@ class PrefixType(PrimaryObjectType):
filterset_class = filtersets.PrefixFilterSet filterset_class = filtersets.PrefixFilterSet
class RIRType(ObjectType): class RIRType(OrganizationalObjectType):
class Meta: class Meta:
model = models.RIR model = models.RIR
@ -62,7 +62,7 @@ class RIRType(ObjectType):
filterset_class = filtersets.RIRFilterSet filterset_class = filtersets.RIRFilterSet
class RoleType(ObjectType): class RoleType(OrganizationalObjectType):
class Meta: class Meta:
model = models.Role model = models.Role
@ -94,7 +94,7 @@ class VLANType(PrimaryObjectType):
filterset_class = filtersets.VLANFilterSet filterset_class = filtersets.VLANFilterSet
class VLANGroupType(ObjectType): class VLANGroupType(OrganizationalObjectType):
class Meta: class Meta:
model = models.VLANGroup model = models.VLANGroup

View File

@ -5,8 +5,8 @@ from extras.graphql.mixins import CustomFieldsMixin, JournalEntriesMixin, TagsMi
__all__ = ( __all__ = (
'BaseObjectType', 'BaseObjectType',
'ObjectType', 'OrganizationalObjectType',
'TaggedObjectType', 'PrimaryObjectType',
) )
@ -27,25 +27,25 @@ class BaseObjectType(DjangoObjectType):
return queryset.restrict(info.context.user, 'view') return queryset.restrict(info.context.user, 'view')
class ObjectType(CustomFieldsMixin, BaseObjectType): class OrganizationalObjectType(
CustomFieldsMixin,
BaseObjectType
):
""" """
Extends BaseObjectType with support for custom fields. Base type for organizational models
""" """
class Meta: class Meta:
abstract = True abstract = True
class TaggedObjectType(CustomFieldsMixin, TagsMixin, BaseObjectType): class PrimaryObjectType(
CustomFieldsMixin,
JournalEntriesMixin,
TagsMixin,
BaseObjectType
):
""" """
Extends BaseObjectType with support for custom fields and tags Base type for primary models
"""
class Meta:
abstract = True
class PrimaryObjectType(CustomFieldsMixin, JournalEntriesMixin, TagsMixin, BaseObjectType):
"""
Extends BaseObjectType with support for custom fields, tags, and journal entries.
""" """
class Meta: class Meta:
abstract = True abstract = True

View File

@ -1,5 +1,5 @@
from tenancy import filtersets, models from tenancy import filtersets, models
from netbox.graphql.types import ObjectType, PrimaryObjectType from netbox.graphql.types import OrganizationalObjectType, PrimaryObjectType
__all__ = ( __all__ = (
'TenantType', 'TenantType',
@ -15,7 +15,7 @@ class TenantType(PrimaryObjectType):
filterset_class = filtersets.TenantFilterSet filterset_class = filtersets.TenantFilterSet
class TenantGroupType(ObjectType): class TenantGroupType(OrganizationalObjectType):
class Meta: class Meta:
model = models.TenantGroup model = models.TenantGroup

View File

@ -1,6 +1,7 @@
from dcim.graphql.types import ComponentObjectType
from ipam.graphql.mixins import IPAddressesMixin, VLANGroupsMixin from ipam.graphql.mixins import IPAddressesMixin, VLANGroupsMixin
from virtualization import filtersets, models from virtualization import filtersets, models
from netbox.graphql.types import ObjectType, PrimaryObjectType, TaggedObjectType from netbox.graphql.types import OrganizationalObjectType, PrimaryObjectType
__all__ = ( __all__ = (
'ClusterType', 'ClusterType',
@ -19,7 +20,7 @@ class ClusterType(VLANGroupsMixin, PrimaryObjectType):
filterset_class = filtersets.ClusterFilterSet filterset_class = filtersets.ClusterFilterSet
class ClusterGroupType(VLANGroupsMixin, ObjectType): class ClusterGroupType(VLANGroupsMixin, OrganizationalObjectType):
class Meta: class Meta:
model = models.ClusterGroup model = models.ClusterGroup
@ -27,7 +28,7 @@ class ClusterGroupType(VLANGroupsMixin, ObjectType):
filterset_class = filtersets.ClusterGroupFilterSet filterset_class = filtersets.ClusterGroupFilterSet
class ClusterTypeType(ObjectType): class ClusterTypeType(OrganizationalObjectType):
class Meta: class Meta:
model = models.ClusterType model = models.ClusterType
@ -43,7 +44,7 @@ class VirtualMachineType(PrimaryObjectType):
filterset_class = filtersets.VirtualMachineFilterSet filterset_class = filtersets.VirtualMachineFilterSet
class VMInterfaceType(IPAddressesMixin, TaggedObjectType): class VMInterfaceType(IPAddressesMixin, ComponentObjectType):
class Meta: class Meta:
model = models.VMInterface model = models.VMInterface