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

View File

@ -97,8 +97,9 @@ class AggregateType(NetBoxObjectType, BaseIPAddressFamilyType):
)
class FHRPGroupType(NetBoxObjectType):
def resolve_auth_type(self, info):
return self.auth_type or None
@strawberry_django.field
def fhrpgroupassignment_set(self) -> List[Annotated["FHRPGroupAssignmentType", strawberry.lazy('ipam.graphql.types')]]:
return self.fhrpgroupassignment_set.all()
@strawberry_django.type(
@ -123,10 +124,27 @@ class FHRPGroupAssignmentType(BaseObjectType):
filters=IPAddressFilter
)
class IPAddressType(NetBoxObjectType, BaseIPAddressFamilyType):
# assigned_object = graphene.Field('ipam.graphql.gfk_mixins.IPAddressAssignmentType')
address: str
def resolve_role(self, info):
return self.role or None
@strawberry_django.field
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(
@ -136,9 +154,8 @@ class IPAddressType(NetBoxObjectType, BaseIPAddressFamilyType):
filters=IPRangeFilter
)
class IPRangeType(NetBoxObjectType):
def resolve_role(self, info):
return self.role or None
start_address: str
end_address: str
@strawberry_django.type(

View File

@ -55,7 +55,10 @@ class TunnelType(NetBoxObjectType):
filters=IKEProposalFilter
)
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(
@ -80,7 +83,10 @@ class IKEPolicyType(OrganizationalObjectType):
filters=IPSecProposalFilter
)
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(
@ -89,7 +95,14 @@ class IPSecProposalType(OrganizationalObjectType):
filters=IPSecPolicyFilter
)
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(
@ -98,7 +111,10 @@ class IPSecPolicyType(OrganizationalObjectType):
filters=IPSecProfileFilter
)
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(