types.py 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. import graphene
  2. from ipam import filtersets, models
  3. from netbox.graphql.scalars import BigInt
  4. from netbox.graphql.types import OrganizationalObjectType, PrimaryObjectType
  5. __all__ = (
  6. 'ASNType',
  7. 'AggregateType',
  8. 'FHRPGroupType',
  9. 'FHRPGroupAssignmentType',
  10. 'IPAddressType',
  11. 'IPRangeType',
  12. 'PrefixType',
  13. 'RIRType',
  14. 'RoleType',
  15. 'RouteTargetType',
  16. 'ServiceType',
  17. 'VLANType',
  18. 'VLANGroupType',
  19. 'VRFType',
  20. )
  21. class ASNType(PrimaryObjectType):
  22. asn = graphene.Field(BigInt)
  23. class Meta:
  24. model = models.ASN
  25. fields = '__all__'
  26. filterset_class = filtersets.ASNFilterSet
  27. class AggregateType(PrimaryObjectType):
  28. class Meta:
  29. model = models.Aggregate
  30. fields = '__all__'
  31. filterset_class = filtersets.AggregateFilterSet
  32. class FHRPGroupType(PrimaryObjectType):
  33. class Meta:
  34. model = models.FHRPGroup
  35. fields = '__all__'
  36. filterset_class = filtersets.FHRPGroupFilterSet
  37. def resolve_auth_type(self, info):
  38. return self.auth_type or None
  39. class FHRPGroupAssignmentType(PrimaryObjectType):
  40. class Meta:
  41. model = models.FHRPGroupAssignment
  42. fields = '__all__'
  43. filterset_class = filtersets.FHRPGroupAssignmentFilterSet
  44. class IPAddressType(PrimaryObjectType):
  45. class Meta:
  46. model = models.IPAddress
  47. fields = '__all__'
  48. filterset_class = filtersets.IPAddressFilterSet
  49. def resolve_role(self, info):
  50. return self.role or None
  51. class IPRangeType(PrimaryObjectType):
  52. class Meta:
  53. model = models.IPRange
  54. fields = '__all__'
  55. filterset_class = filtersets.IPRangeFilterSet
  56. def resolve_role(self, info):
  57. return self.role or None
  58. class PrefixType(PrimaryObjectType):
  59. class Meta:
  60. model = models.Prefix
  61. fields = '__all__'
  62. filterset_class = filtersets.PrefixFilterSet
  63. class RIRType(OrganizationalObjectType):
  64. class Meta:
  65. model = models.RIR
  66. fields = '__all__'
  67. filterset_class = filtersets.RIRFilterSet
  68. class RoleType(OrganizationalObjectType):
  69. class Meta:
  70. model = models.Role
  71. fields = '__all__'
  72. filterset_class = filtersets.RoleFilterSet
  73. class RouteTargetType(PrimaryObjectType):
  74. class Meta:
  75. model = models.RouteTarget
  76. fields = '__all__'
  77. filterset_class = filtersets.RouteTargetFilterSet
  78. class ServiceType(PrimaryObjectType):
  79. class Meta:
  80. model = models.Service
  81. fields = '__all__'
  82. filterset_class = filtersets.ServiceFilterSet
  83. class VLANType(PrimaryObjectType):
  84. class Meta:
  85. model = models.VLAN
  86. fields = '__all__'
  87. filterset_class = filtersets.VLANFilterSet
  88. class VLANGroupType(OrganizationalObjectType):
  89. class Meta:
  90. model = models.VLANGroup
  91. fields = '__all__'
  92. filterset_class = filtersets.VLANGroupFilterSet
  93. class VRFType(PrimaryObjectType):
  94. class Meta:
  95. model = models.VRF
  96. fields = '__all__'
  97. filterset_class = filtersets.VRFFilterSet