From c3565f841a32d9121a47576d7c9e5a58346398fd Mon Sep 17 00:00:00 2001 From: rmanyari Date: Wed, 1 Mar 2023 10:20:32 -0700 Subject: [PATCH] Closes #11851: Add family field to IPAddress queries in GraphQL --- netbox/ipam/graphql/types.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/netbox/ipam/graphql/types.py b/netbox/ipam/graphql/types.py index b8f6221bc..cdc2e667a 100644 --- a/netbox/ipam/graphql/types.py +++ b/netbox/ipam/graphql/types.py @@ -64,14 +64,30 @@ class FHRPGroupAssignmentType(BaseObjectType): filterset_class = filtersets.FHRPGroupAssignmentFilterSet +class IPAddressFamilyType(graphene.ObjectType): + + value = graphene.Int() + label = graphene.String() + + def __init__(self, value): + self.value = value + self.label = 'IPv4' if value == 4 else 'IPv6' + + class IPAddressType(NetBoxObjectType): assigned_object = graphene.Field('ipam.graphql.gfk_mixins.IPAddressAssignmentType') + family = graphene.Field(IPAddressFamilyType) class Meta: model = models.IPAddress exclude = ('assigned_object_type', 'assigned_object_id') filterset_class = filtersets.IPAddressFilterSet + def resolve_family(self, _): + # Note that self, is an instance of models.IPAddress + # thus resolves to the address family value. + return IPAddressFamilyType(self.family) + def resolve_role(self, info): return self.role or None