add conntected_enpoints property to graphql

This commit is contained in:
Sebastian Himmler 2023-02-24 06:36:39 +01:00 committed by Jeremy Stretch
parent 0744ff2fa0
commit 67499cbf06
2 changed files with 15 additions and 7 deletions

View File

@ -10,3 +10,11 @@ class CabledObjectMixin:
def resolve_link_peers(self, info): def resolve_link_peers(self, info):
return self.link_peers return self.link_peers
class PathEndpointMixin:
connected_endpoints = graphene.List('dcim.graphql.gfk_mixins.LinkPeerType')
def resolve_connected_endpoints(self, info):
# Handle empty values
return self.connected_endpoints or None

View File

@ -7,7 +7,7 @@ from extras.graphql.mixins import (
from ipam.graphql.mixins import IPAddressesMixin, VLANGroupsMixin from ipam.graphql.mixins import IPAddressesMixin, VLANGroupsMixin
from netbox.graphql.scalars import BigInt from netbox.graphql.scalars import BigInt
from netbox.graphql.types import BaseObjectType, OrganizationalObjectType, NetBoxObjectType from netbox.graphql.types import BaseObjectType, OrganizationalObjectType, NetBoxObjectType
from .mixins import CabledObjectMixin from .mixins import CabledObjectMixin, PathEndpointMixin
__all__ = ( __all__ = (
'CableType', 'CableType',
@ -117,7 +117,7 @@ class CableTerminationType(NetBoxObjectType):
filterset_class = filtersets.CableTerminationFilterSet filterset_class = filtersets.CableTerminationFilterSet
class ConsolePortType(ComponentObjectType, CabledObjectMixin): class ConsolePortType(ComponentObjectType, CabledObjectMixin, PathEndpointMixin):
class Meta: class Meta:
model = models.ConsolePort model = models.ConsolePort
@ -139,7 +139,7 @@ class ConsolePortTemplateType(ComponentTemplateObjectType):
return self.type or None return self.type or None
class ConsoleServerPortType(ComponentObjectType, CabledObjectMixin): class ConsoleServerPortType(ComponentObjectType, CabledObjectMixin, PathEndpointMixin):
class Meta: class Meta:
model = models.ConsoleServerPort model = models.ConsoleServerPort
@ -241,7 +241,7 @@ class FrontPortTemplateType(ComponentTemplateObjectType):
filterset_class = filtersets.FrontPortTemplateFilterSet filterset_class = filtersets.FrontPortTemplateFilterSet
class InterfaceType(IPAddressesMixin, ComponentObjectType, CabledObjectMixin): class InterfaceType(IPAddressesMixin, ComponentObjectType, CabledObjectMixin, PathEndpointMixin):
class Meta: class Meta:
model = models.Interface model = models.Interface
@ -354,7 +354,7 @@ class PlatformType(OrganizationalObjectType):
filterset_class = filtersets.PlatformFilterSet filterset_class = filtersets.PlatformFilterSet
class PowerFeedType(NetBoxObjectType, CabledObjectMixin): class PowerFeedType(NetBoxObjectType, CabledObjectMixin, PathEndpointMixin):
class Meta: class Meta:
model = models.PowerFeed model = models.PowerFeed
@ -362,7 +362,7 @@ class PowerFeedType(NetBoxObjectType, CabledObjectMixin):
filterset_class = filtersets.PowerFeedFilterSet filterset_class = filtersets.PowerFeedFilterSet
class PowerOutletType(ComponentObjectType, CabledObjectMixin): class PowerOutletType(ComponentObjectType, CabledObjectMixin, PathEndpointMixin):
class Meta: class Meta:
model = models.PowerOutlet model = models.PowerOutlet
@ -398,7 +398,7 @@ class PowerPanelType(NetBoxObjectType, ContactsMixin):
filterset_class = filtersets.PowerPanelFilterSet filterset_class = filtersets.PowerPanelFilterSet
class PowerPortType(ComponentObjectType, CabledObjectMixin): class PowerPortType(ComponentObjectType, CabledObjectMixin, PathEndpointMixin):
class Meta: class Meta:
model = models.PowerPort model = models.PowerPort