types.py 3.6 KB

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