9856 update types

This commit is contained in:
Arthur 2024-02-26 08:20:32 -08:00
parent 6bb9d68f60
commit ce003b2b1c
3 changed files with 114 additions and 44 deletions

View File

@ -237,47 +237,47 @@ class DeviceType(ConfigContextMixin, ImageAttachmentsMixin, ContactsMixin, NetBo
@strawberry_django.field @strawberry_django.field
def interfaces(self) -> List[Annotated["InterfaceType", strawberry.lazy('dcim.graphql.types')]]: def interfaces(self) -> List[Annotated["InterfaceType", strawberry.lazy('dcim.graphql.types')]]:
return self.clusters.all() return self.interaces.all()
@strawberry_django.field @strawberry_django.field
def rearports(self) -> List[Annotated["RearPortType", strawberry.lazy('dcim.graphql.types')]]: def rearports(self) -> List[Annotated["RearPortType", strawberry.lazy('dcim.graphql.types')]]:
return self.clusters.all() return self.rearports.all()
@strawberry_django.field @strawberry_django.field
def consoleports(self) -> List[Annotated["ConsolePortType", strawberry.lazy('dcim.graphql.types')]]: def consoleports(self) -> List[Annotated["ConsolePortType", strawberry.lazy('dcim.graphql.types')]]:
return self.clusters.all() return self.consoleports.all()
@strawberry_django.field @strawberry_django.field
def powerports(self) -> List[Annotated["PowerPortType", strawberry.lazy('dcim.graphql.types')]]: def powerports(self) -> List[Annotated["PowerPortType", strawberry.lazy('dcim.graphql.types')]]:
return self.clusters.all() return self.powerports.all()
@strawberry_django.field @strawberry_django.field
def cabletermination_set(self) -> List[Annotated["CableTerminationType", strawberry.lazy('dcim.graphql.types')]]: def cabletermination_set(self) -> List[Annotated["CableTerminationType", strawberry.lazy('dcim.graphql.types')]]:
return self.clusters.all() return self.cabletermination_set.all()
@strawberry_django.field @strawberry_django.field
def consoleserverports(self) -> List[Annotated["ConsoleServerPortType", strawberry.lazy('dcim.graphql.types')]]: def consoleserverports(self) -> List[Annotated["ConsoleServerPortType", strawberry.lazy('dcim.graphql.types')]]:
return self.clusters.all() return self.consoleserverports.all()
@strawberry_django.field @strawberry_django.field
def poweroutlets(self) -> List[Annotated["PowerOutletType", strawberry.lazy('dcim.graphql.types')]]: def poweroutlets(self) -> List[Annotated["PowerOutletType", strawberry.lazy('dcim.graphql.types')]]:
return self.clusters.all() return self.poweroutlets.all()
@strawberry_django.field @strawberry_django.field
def frontports(self) -> List[Annotated["FrontPortType", strawberry.lazy('dcim.graphql.types')]]: def frontports(self) -> List[Annotated["FrontPortType", strawberry.lazy('dcim.graphql.types')]]:
return self.clusters.all() return self.frontports.all()
@strawberry_django.field @strawberry_django.field
def modulebays(self) -> List[Annotated["ModuleBayType", strawberry.lazy('dcim.graphql.types')]]: def modulebays(self) -> List[Annotated["ModuleBayType", strawberry.lazy('dcim.graphql.types')]]:
return self.clusters.all() return self.modulebays.all()
@strawberry_django.field @strawberry_django.field
def services(self) -> List[Annotated["ServiceType", strawberry.lazy('ipam.graphql.types')]]: def services(self) -> List[Annotated["ServiceType", strawberry.lazy('ipam.graphql.types')]]:
return self.clusters.all() return self.services.all()
@strawberry_django.field @strawberry_django.field
def inventoryitems(self) -> List[Annotated["InventoryItemType", strawberry.lazy('dcim.graphql.types')]]: def inventoryitems(self) -> List[Annotated["InventoryItemType", strawberry.lazy('dcim.graphql.types')]]:
return self.clusters.all() return self.inventoryitems.all()
@strawberry_django.field @strawberry_django.field
def vdcs(self) -> List[Annotated["VirtualDeviceContextType", strawberry.lazy('dcim.graphql.types')]]: def vdcs(self) -> List[Annotated["VirtualDeviceContextType", strawberry.lazy('dcim.graphql.types')]]:
@ -310,6 +310,26 @@ class DeviceBayTemplateType(ComponentTemplateObjectType):
class InventoryItemTemplateType(ComponentTemplateObjectType): class InventoryItemTemplateType(ComponentTemplateObjectType):
_name: str _name: str
@strawberry_django.field
def parent(self) -> List[Annotated["InventoryItemTemplateType", strawberry.lazy('dcim.graphql.types')]]:
return self.parent
@strawberry_django.field
def child_items(self) -> List[Annotated["InventoryItemTemplateType", strawberry.lazy('dcim.graphql.types')]]:
return self.child_items.all()
@strawberry_django.field
def component(self) -> List[Annotated[Union[
Annotated["ConsolePortType", strawberry.lazy('dcim.graphql.types')],
Annotated["ConsoleServerPortType", strawberry.lazy('dcim.graphql.types')],
Annotated["FrontPortType", strawberry.lazy('dcim.graphql.types')],
Annotated["InterfaceType", strawberry.lazy('dcim.graphql.types')],
Annotated["PowerOutletType", strawberry.lazy('dcim.graphql.types')],
Annotated["PowerPortType", strawberry.lazy('dcim.graphql.types')],
Annotated["RearPortType", strawberry.lazy('dcim.graphql.types')],
], strawberry.union("InventoryItemComponentType")]]:
return self.component
@strawberry_django.type( @strawberry_django.type(
models.DeviceRole, models.DeviceRole,
@ -426,21 +446,36 @@ class FrontPortTemplateType(ComponentTemplateObjectType):
filters=InterfaceFilter filters=InterfaceFilter
) )
class InterfaceType(IPAddressesMixin, ComponentObjectType, CabledObjectMixin, PathEndpointMixin): class InterfaceType(IPAddressesMixin, ComponentObjectType, CabledObjectMixin, PathEndpointMixin):
mac_address: str
wwn: str
def resolve_poe_mode(self, info): @strawberry_django.field
return self.poe_mode or None def vdcs(self) -> List[Annotated["VirtualDeviceContextType", strawberry.lazy('dcim.graphql.types')]]:
return self.vdcs.all()
def resolve_poe_type(self, info): @strawberry_django.field
return self.poe_type or None def tagged_vlans(self) -> List[Annotated["VLANType", strawberry.lazy('ipam.graphql.types')]]:
return self.tagged_vlans.all()
def resolve_mode(self, info): @strawberry_django.field
return self.mode or None def bridge_interfaces(self) -> List[Annotated["InterfaceType", strawberry.lazy('dcim.graphql.types')]]:
return self.bridge_interfaces.all()
def resolve_rf_role(self, info): @strawberry_django.field
return self.rf_role or None def wireless_lans(self) -> List[Annotated["WirelessLANType", strawberry.lazy('wireless.graphql.types')]]:
return self.wireless_lans.all()
def resolve_rf_channel(self, info): @strawberry_django.field
return self.rf_channel or None def member_interfaces(self) -> List[Annotated["InterfaceType", strawberry.lazy('dcim.graphql.types')]]:
return self.member_interfaces.all()
@strawberry_django.field
def child_interfaces(self) -> List[Annotated["InterfaceType", strawberry.lazy('dcim.graphql.types')]]:
return self.child_interfaces.all()
@strawberry_django.field
def ip_addresses(self) -> List[Annotated["IPAddressType", strawberry.lazy('ipam.graphql.types')]]:
return self.ip_addresses.all()
@strawberry_django.type( @strawberry_django.type(
@ -451,14 +486,9 @@ class InterfaceType(IPAddressesMixin, ComponentObjectType, CabledObjectMixin, Pa
class InterfaceTemplateType(ComponentTemplateObjectType): class InterfaceTemplateType(ComponentTemplateObjectType):
_name: str _name: str
def resolve_poe_mode(self, info): @strawberry_django.field
return self.poe_mode or None def bridge_interfaces(self) -> List[Annotated["InterfaceTemplateType", strawberry.lazy('dcim.graphql.types')]]:
return self.bridge_interfaces.all()
def resolve_poe_type(self, info):
return self.poe_type or None
def resolve_rf_role(self, info):
return self.rf_role or None
@strawberry_django.type( @strawberry_django.type(
@ -472,12 +502,19 @@ class InventoryItemType(ComponentObjectType):
@strawberry_django.type( @strawberry_django.type(
models.InventoryItemRole, models.InventoryItemRole,
# fields='__all__', fields='__all__',
exclude=('color',), # bug - temp
filters=InventoryItemRoleFilter filters=InventoryItemRoleFilter
) )
class InventoryItemRoleType(OrganizationalObjectType): class InventoryItemRoleType(OrganizationalObjectType):
pass color: str
@strawberry_django.field
def inventory_items(self) -> List[Annotated["InventoryItemType", strawberry.lazy('dcim.graphql.types')]]:
return self.inventory_items.all()
@strawberry_django.field
def inventory_item_templates(self) -> List[Annotated["InventoryItemTemplateType", strawberry.lazy('dcim.graphql.types')]]:
return self.inventory_item_templates.all()
@strawberry_django.type( @strawberry_django.type(

View File

@ -97,8 +97,9 @@ class AggregateType(NetBoxObjectType, BaseIPAddressFamilyType):
) )
class FHRPGroupType(NetBoxObjectType): class FHRPGroupType(NetBoxObjectType):
def resolve_auth_type(self, info): @strawberry_django.field
return self.auth_type or None def fhrpgroupassignment_set(self) -> List[Annotated["FHRPGroupAssignmentType", strawberry.lazy('ipam.graphql.types')]]:
return self.fhrpgroupassignment_set.all()
@strawberry_django.type( @strawberry_django.type(
@ -123,10 +124,27 @@ class FHRPGroupAssignmentType(BaseObjectType):
filters=IPAddressFilter filters=IPAddressFilter
) )
class IPAddressType(NetBoxObjectType, BaseIPAddressFamilyType): class IPAddressType(NetBoxObjectType, BaseIPAddressFamilyType):
# assigned_object = graphene.Field('ipam.graphql.gfk_mixins.IPAddressAssignmentType') address: str
def resolve_role(self, info): @strawberry_django.field
return self.role or None def nat_outside(self) -> Annotated["IPAddressType", strawberry.lazy('ipam.graphql.types')]:
return self.nat_outside
@strawberry_django.field
def tunnel_terminations(self) -> List[Annotated["TunnelTerminationType", strawberry.lazy('vpn.graphql.types')]]:
return self.tunnel_terminations.all()
@strawberry_django.field
def services(self) -> List[Annotated["ServiceType", strawberry.lazy('ipam.graphql.types')]]:
return self.services.all()
@strawberry_django.field
def assigned_object(self) -> Annotated[Union[
Annotated["InterfaceType", strawberry.lazy('dcim.graphql.types')],
Annotated["FHRPGroupType", strawberry.lazy('ipam.graphql.types')],
Annotated["VMInterfaceType", strawberry.lazy('virtualization.graphql.types')],
], strawberry.union("IPAddressAssignmentType")]:
return self.assigned_object
@strawberry_django.type( @strawberry_django.type(
@ -136,9 +154,8 @@ class IPAddressType(NetBoxObjectType, BaseIPAddressFamilyType):
filters=IPRangeFilter filters=IPRangeFilter
) )
class IPRangeType(NetBoxObjectType): class IPRangeType(NetBoxObjectType):
start_address: str
def resolve_role(self, info): end_address: str
return self.role or None
@strawberry_django.type( @strawberry_django.type(

View File

@ -55,7 +55,10 @@ class TunnelType(NetBoxObjectType):
filters=IKEProposalFilter filters=IKEProposalFilter
) )
class IKEProposalType(OrganizationalObjectType): class IKEProposalType(OrganizationalObjectType):
pass
@strawberry_django.field
def ike_policies(self) -> List[Annotated["IKEPolicyType", strawberry.lazy('vpn.graphql.types')]]:
return self.ike_policies.all()
@strawberry_django.type( @strawberry_django.type(
@ -80,7 +83,10 @@ class IKEPolicyType(OrganizationalObjectType):
filters=IPSecProposalFilter filters=IPSecProposalFilter
) )
class IPSecProposalType(OrganizationalObjectType): class IPSecProposalType(OrganizationalObjectType):
pass
@strawberry_django.field
def ipsec_policies(self) -> List[Annotated["IPSecPolicyType", strawberry.lazy('vpn.graphql.types')]]:
return self.ipsec_policies.all()
@strawberry_django.type( @strawberry_django.type(
@ -89,7 +95,14 @@ class IPSecProposalType(OrganizationalObjectType):
filters=IPSecPolicyFilter filters=IPSecPolicyFilter
) )
class IPSecPolicyType(OrganizationalObjectType): class IPSecPolicyType(OrganizationalObjectType):
pass
@strawberry_django.field
def proposals(self) -> List[Annotated["IKEProposalType", strawberry.lazy('vpn.graphql.types')]]:
return self.proposals.all()
@strawberry_django.field
def ipsec_profiles(self) -> List[Annotated["IPSecProposalType", strawberry.lazy('vpn.graphql.types')]]:
return self.ipsec_profiles.all()
@strawberry_django.type( @strawberry_django.type(
@ -98,7 +111,10 @@ class IPSecPolicyType(OrganizationalObjectType):
filters=IPSecProfileFilter filters=IPSecProfileFilter
) )
class IPSecProfileType(OrganizationalObjectType): class IPSecProfileType(OrganizationalObjectType):
pass
@strawberry_django.field
def tunnels(self) -> List[Annotated["TunnelType", strawberry.lazy('vpn.graphql.types')]]:
return self.tunnels.all()
@strawberry_django.type( @strawberry_django.type(