views.py 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. from rest_framework.routers import APIRootView
  2. from circuits import filtersets
  3. from circuits.models import *
  4. from dcim.api.views import PassThroughPortMixin
  5. from netbox.api.viewsets import NetBoxModelViewSet
  6. from . import serializers
  7. class CircuitsRootView(APIRootView):
  8. """
  9. Circuits API root view
  10. """
  11. def get_view_name(self):
  12. return 'Circuits'
  13. #
  14. # Providers
  15. #
  16. class ProviderViewSet(NetBoxModelViewSet):
  17. queryset = Provider.objects.all()
  18. serializer_class = serializers.ProviderSerializer
  19. filterset_class = filtersets.ProviderFilterSet
  20. #
  21. # Circuit Types
  22. #
  23. class CircuitTypeViewSet(NetBoxModelViewSet):
  24. queryset = CircuitType.objects.all()
  25. serializer_class = serializers.CircuitTypeSerializer
  26. filterset_class = filtersets.CircuitTypeFilterSet
  27. #
  28. # Circuits
  29. #
  30. class CircuitViewSet(NetBoxModelViewSet):
  31. queryset = Circuit.objects.all()
  32. serializer_class = serializers.CircuitSerializer
  33. filterset_class = filtersets.CircuitFilterSet
  34. #
  35. # Circuit Terminations
  36. #
  37. class CircuitTerminationViewSet(PassThroughPortMixin, NetBoxModelViewSet):
  38. queryset = CircuitTermination.objects.all()
  39. serializer_class = serializers.CircuitTerminationSerializer
  40. filterset_class = filtersets.CircuitTerminationFilterSet
  41. #
  42. # Circuit Groups
  43. #
  44. class CircuitGroupViewSet(NetBoxModelViewSet):
  45. queryset = CircuitGroup.objects.all()
  46. serializer_class = serializers.CircuitGroupSerializer
  47. filterset_class = filtersets.CircuitGroupFilterSet
  48. #
  49. # Circuit Group Assignments
  50. #
  51. class CircuitGroupAssignmentViewSet(NetBoxModelViewSet):
  52. queryset = CircuitGroupAssignment.objects.all()
  53. serializer_class = serializers.CircuitGroupAssignmentSerializer
  54. filterset_class = filtersets.CircuitGroupAssignmentFilterSet
  55. #
  56. # Provider accounts
  57. #
  58. class ProviderAccountViewSet(NetBoxModelViewSet):
  59. queryset = ProviderAccount.objects.all()
  60. serializer_class = serializers.ProviderAccountSerializer
  61. filterset_class = filtersets.ProviderAccountFilterSet
  62. #
  63. # Provider networks
  64. #
  65. class ProviderNetworkViewSet(NetBoxModelViewSet):
  66. queryset = ProviderNetwork.objects.all()
  67. serializer_class = serializers.ProviderNetworkSerializer
  68. filterset_class = filtersets.ProviderNetworkFilterSet
  69. #
  70. # Virtual circuit types
  71. #
  72. class VirtualCircuitTypeViewSet(NetBoxModelViewSet):
  73. queryset = VirtualCircuitType.objects.all()
  74. serializer_class = serializers.VirtualCircuitTypeSerializer
  75. filterset_class = filtersets.VirtualCircuitTypeFilterSet
  76. #
  77. # Virtual circuits
  78. #
  79. class VirtualCircuitViewSet(NetBoxModelViewSet):
  80. queryset = VirtualCircuit.objects.all()
  81. serializer_class = serializers.VirtualCircuitSerializer
  82. filterset_class = filtersets.VirtualCircuitFilterSet
  83. #
  84. # Virtual circuit terminations
  85. #
  86. class VirtualCircuitTerminationViewSet(PassThroughPortMixin, NetBoxModelViewSet):
  87. queryset = VirtualCircuitTermination.objects.all()
  88. serializer_class = serializers.VirtualCircuitTerminationSerializer
  89. filterset_class = filtersets.VirtualCircuitTerminationFilterSet