From 1518a460d58a5af23eb5ed5ab5dd08ad7186c822 Mon Sep 17 00:00:00 2001 From: jeremystretch Date: Tue, 3 Aug 2021 14:14:36 -0400 Subject: [PATCH] Rename base Graphene types to match base models --- netbox/circuits/graphql/types.py | 4 +- netbox/dcim/graphql/types.py | 84 ++++++++++++++++++-------- netbox/ipam/graphql/types.py | 8 +-- netbox/netbox/graphql/types.py | 28 ++++----- netbox/tenancy/graphql/types.py | 4 +- netbox/virtualization/graphql/types.py | 9 +-- 6 files changed, 85 insertions(+), 52 deletions(-) diff --git a/netbox/circuits/graphql/types.py b/netbox/circuits/graphql/types.py index ede59f855..c359acf49 100644 --- a/netbox/circuits/graphql/types.py +++ b/netbox/circuits/graphql/types.py @@ -1,5 +1,5 @@ from circuits import filtersets, models -from netbox.graphql.types import BaseObjectType, ObjectType, PrimaryObjectType +from netbox.graphql.types import BaseObjectType, OrganizationalObjectType, PrimaryObjectType __all__ = ( 'CircuitTerminationType', @@ -26,7 +26,7 @@ class CircuitType(PrimaryObjectType): filterset_class = filtersets.CircuitFilterSet -class CircuitTypeType(ObjectType): +class CircuitTypeType(OrganizationalObjectType): class Meta: model = models.CircuitType diff --git a/netbox/dcim/graphql/types.py b/netbox/dcim/graphql/types.py index be2de1621..c9e538e6e 100644 --- a/netbox/dcim/graphql/types.py +++ b/netbox/dcim/graphql/types.py @@ -1,10 +1,11 @@ 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 netbox.graphql.types import BaseObjectType, ObjectType, PrimaryObjectType, TaggedObjectType +from netbox.graphql.types import BaseObjectType, OrganizationalObjectType, PrimaryObjectType __all__ = ( 'CableType', + 'ComponentObjectType', 'ConsolePortType', 'ConsolePortTemplateType', '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 Meta: @@ -54,7 +86,7 @@ class CableType(PrimaryObjectType): return self.length_unit or None -class ConsolePortType(TaggedObjectType): +class ConsolePortType(ComponentObjectType): class Meta: model = models.ConsolePort @@ -65,7 +97,7 @@ class ConsolePortType(TaggedObjectType): return self.type or None -class ConsolePortTemplateType(BaseObjectType): +class ConsolePortTemplateType(ComponentTemplateObjectType): class Meta: model = models.ConsolePortTemplate @@ -76,7 +108,7 @@ class ConsolePortTemplateType(BaseObjectType): return self.type or None -class ConsoleServerPortType(TaggedObjectType): +class ConsoleServerPortType(ComponentObjectType): class Meta: model = models.ConsoleServerPort @@ -87,7 +119,7 @@ class ConsoleServerPortType(TaggedObjectType): return self.type or None -class ConsoleServerPortTemplateType(BaseObjectType): +class ConsoleServerPortTemplateType(ComponentTemplateObjectType): class Meta: model = models.ConsoleServerPortTemplate @@ -109,7 +141,7 @@ class DeviceType(ImageAttachmentsMixin, PrimaryObjectType): return self.face or None -class DeviceBayType(TaggedObjectType): +class DeviceBayType(ComponentObjectType): class Meta: model = models.DeviceBay @@ -117,7 +149,7 @@ class DeviceBayType(TaggedObjectType): filterset_class = filtersets.DeviceBayFilterSet -class DeviceBayTemplateType(BaseObjectType): +class DeviceBayTemplateType(ComponentTemplateObjectType): class Meta: model = models.DeviceBayTemplate @@ -125,7 +157,7 @@ class DeviceBayTemplateType(BaseObjectType): filterset_class = filtersets.DeviceBayTemplateFilterSet -class DeviceRoleType(ObjectType): +class DeviceRoleType(OrganizationalObjectType): class Meta: model = models.DeviceRole @@ -144,7 +176,7 @@ class DeviceTypeType(PrimaryObjectType): return self.subdevice_role or None -class FrontPortType(TaggedObjectType): +class FrontPortType(ComponentObjectType): class Meta: model = models.FrontPort @@ -152,7 +184,7 @@ class FrontPortType(TaggedObjectType): filterset_class = filtersets.FrontPortFilterSet -class FrontPortTemplateType(BaseObjectType): +class FrontPortTemplateType(ComponentTemplateObjectType): class Meta: model = models.FrontPortTemplate @@ -160,7 +192,7 @@ class FrontPortTemplateType(BaseObjectType): filterset_class = filtersets.FrontPortTemplateFilterSet -class InterfaceType(IPAddressesMixin, TaggedObjectType): +class InterfaceType(IPAddressesMixin, ComponentObjectType): class Meta: model = models.Interface @@ -171,7 +203,7 @@ class InterfaceType(IPAddressesMixin, TaggedObjectType): return self.mode or None -class InterfaceTemplateType(BaseObjectType): +class InterfaceTemplateType(ComponentTemplateObjectType): class Meta: model = models.InterfaceTemplate @@ -179,7 +211,7 @@ class InterfaceTemplateType(BaseObjectType): filterset_class = filtersets.InterfaceTemplateFilterSet -class InventoryItemType(TaggedObjectType): +class InventoryItemType(ComponentObjectType): class Meta: model = models.InventoryItem @@ -187,7 +219,7 @@ class InventoryItemType(TaggedObjectType): filterset_class = filtersets.InventoryItemFilterSet -class LocationType(VLANGroupsMixin, ImageAttachmentsMixin, ObjectType): +class LocationType(VLANGroupsMixin, ImageAttachmentsMixin, OrganizationalObjectType): class Meta: model = models.Location @@ -195,7 +227,7 @@ class LocationType(VLANGroupsMixin, ImageAttachmentsMixin, ObjectType): filterset_class = filtersets.LocationFilterSet -class ManufacturerType(ObjectType): +class ManufacturerType(OrganizationalObjectType): class Meta: model = models.Manufacturer @@ -203,7 +235,7 @@ class ManufacturerType(ObjectType): filterset_class = filtersets.ManufacturerFilterSet -class PlatformType(ObjectType): +class PlatformType(OrganizationalObjectType): class Meta: model = models.Platform @@ -219,7 +251,7 @@ class PowerFeedType(PrimaryObjectType): filterset_class = filtersets.PowerFeedFilterSet -class PowerOutletType(TaggedObjectType): +class PowerOutletType(ComponentObjectType): class Meta: model = models.PowerOutlet @@ -233,7 +265,7 @@ class PowerOutletType(TaggedObjectType): return self.type or None -class PowerOutletTemplateType(BaseObjectType): +class PowerOutletTemplateType(ComponentTemplateObjectType): class Meta: model = models.PowerOutletTemplate @@ -255,7 +287,7 @@ class PowerPanelType(PrimaryObjectType): filterset_class = filtersets.PowerPanelFilterSet -class PowerPortType(TaggedObjectType): +class PowerPortType(ComponentObjectType): class Meta: model = models.PowerPort @@ -266,7 +298,7 @@ class PowerPortType(TaggedObjectType): return self.type or None -class PowerPortTemplateType(BaseObjectType): +class PowerPortTemplateType(ComponentTemplateObjectType): class Meta: model = models.PowerPortTemplate @@ -299,7 +331,7 @@ class RackReservationType(PrimaryObjectType): filterset_class = filtersets.RackReservationFilterSet -class RackRoleType(ObjectType): +class RackRoleType(OrganizationalObjectType): class Meta: model = models.RackRole @@ -307,7 +339,7 @@ class RackRoleType(ObjectType): filterset_class = filtersets.RackRoleFilterSet -class RearPortType(TaggedObjectType): +class RearPortType(ComponentObjectType): class Meta: model = models.RearPort @@ -315,7 +347,7 @@ class RearPortType(TaggedObjectType): filterset_class = filtersets.RearPortFilterSet -class RearPortTemplateType(BaseObjectType): +class RearPortTemplateType(ComponentTemplateObjectType): class Meta: model = models.RearPortTemplate @@ -323,7 +355,7 @@ class RearPortTemplateType(BaseObjectType): filterset_class = filtersets.RearPortTemplateFilterSet -class RegionType(VLANGroupsMixin, ObjectType): +class RegionType(VLANGroupsMixin, OrganizationalObjectType): class Meta: model = models.Region @@ -339,7 +371,7 @@ class SiteType(VLANGroupsMixin, ImageAttachmentsMixin, PrimaryObjectType): filterset_class = filtersets.SiteFilterSet -class SiteGroupType(VLANGroupsMixin, ObjectType): +class SiteGroupType(VLANGroupsMixin, OrganizationalObjectType): class Meta: model = models.SiteGroup diff --git a/netbox/ipam/graphql/types.py b/netbox/ipam/graphql/types.py index 03f9e2d1f..c822dab6b 100644 --- a/netbox/ipam/graphql/types.py +++ b/netbox/ipam/graphql/types.py @@ -1,5 +1,5 @@ from ipam import filtersets, models -from netbox.graphql.types import ObjectType, PrimaryObjectType +from netbox.graphql.types import OrganizationalObjectType, PrimaryObjectType __all__ = ( 'AggregateType', @@ -54,7 +54,7 @@ class PrefixType(PrimaryObjectType): filterset_class = filtersets.PrefixFilterSet -class RIRType(ObjectType): +class RIRType(OrganizationalObjectType): class Meta: model = models.RIR @@ -62,7 +62,7 @@ class RIRType(ObjectType): filterset_class = filtersets.RIRFilterSet -class RoleType(ObjectType): +class RoleType(OrganizationalObjectType): class Meta: model = models.Role @@ -94,7 +94,7 @@ class VLANType(PrimaryObjectType): filterset_class = filtersets.VLANFilterSet -class VLANGroupType(ObjectType): +class VLANGroupType(OrganizationalObjectType): class Meta: model = models.VLANGroup diff --git a/netbox/netbox/graphql/types.py b/netbox/netbox/graphql/types.py index a7eb0e669..275ed0235 100644 --- a/netbox/netbox/graphql/types.py +++ b/netbox/netbox/graphql/types.py @@ -5,8 +5,8 @@ from extras.graphql.mixins import CustomFieldsMixin, JournalEntriesMixin, TagsMi __all__ = ( 'BaseObjectType', - 'ObjectType', - 'TaggedObjectType', + 'OrganizationalObjectType', + 'PrimaryObjectType', ) @@ -27,25 +27,25 @@ class BaseObjectType(DjangoObjectType): 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: abstract = True -class TaggedObjectType(CustomFieldsMixin, TagsMixin, BaseObjectType): +class PrimaryObjectType( + CustomFieldsMixin, + JournalEntriesMixin, + TagsMixin, + BaseObjectType +): """ - Extends BaseObjectType with support for custom fields and tags - """ - class Meta: - abstract = True - - -class PrimaryObjectType(CustomFieldsMixin, JournalEntriesMixin, TagsMixin, BaseObjectType): - """ - Extends BaseObjectType with support for custom fields, tags, and journal entries. + Base type for primary models """ class Meta: abstract = True diff --git a/netbox/tenancy/graphql/types.py b/netbox/tenancy/graphql/types.py index 2d6b388ae..6f1e27274 100644 --- a/netbox/tenancy/graphql/types.py +++ b/netbox/tenancy/graphql/types.py @@ -1,5 +1,5 @@ from tenancy import filtersets, models -from netbox.graphql.types import ObjectType, PrimaryObjectType +from netbox.graphql.types import OrganizationalObjectType, PrimaryObjectType __all__ = ( 'TenantType', @@ -15,7 +15,7 @@ class TenantType(PrimaryObjectType): filterset_class = filtersets.TenantFilterSet -class TenantGroupType(ObjectType): +class TenantGroupType(OrganizationalObjectType): class Meta: model = models.TenantGroup diff --git a/netbox/virtualization/graphql/types.py b/netbox/virtualization/graphql/types.py index 676f8d82c..3f1304a61 100644 --- a/netbox/virtualization/graphql/types.py +++ b/netbox/virtualization/graphql/types.py @@ -1,6 +1,7 @@ +from dcim.graphql.types import ComponentObjectType from ipam.graphql.mixins import IPAddressesMixin, VLANGroupsMixin from virtualization import filtersets, models -from netbox.graphql.types import ObjectType, PrimaryObjectType, TaggedObjectType +from netbox.graphql.types import OrganizationalObjectType, PrimaryObjectType __all__ = ( 'ClusterType', @@ -19,7 +20,7 @@ class ClusterType(VLANGroupsMixin, PrimaryObjectType): filterset_class = filtersets.ClusterFilterSet -class ClusterGroupType(VLANGroupsMixin, ObjectType): +class ClusterGroupType(VLANGroupsMixin, OrganizationalObjectType): class Meta: model = models.ClusterGroup @@ -27,7 +28,7 @@ class ClusterGroupType(VLANGroupsMixin, ObjectType): filterset_class = filtersets.ClusterGroupFilterSet -class ClusterTypeType(ObjectType): +class ClusterTypeType(OrganizationalObjectType): class Meta: model = models.ClusterType @@ -43,7 +44,7 @@ class VirtualMachineType(PrimaryObjectType): filterset_class = filtersets.VirtualMachineFilterSet -class VMInterfaceType(IPAddressesMixin, TaggedObjectType): +class VMInterfaceType(IPAddressesMixin, ComponentObjectType): class Meta: model = models.VMInterface