mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
- Introduces a new `vpn` app with the following models: - Tunnel - TunnelTermination - IKEProposal - IKEPolicy - IPSecProposal - IPSecPolicy - IPSecProfile
This commit is contained in:
74
netbox/vpn/api/views.py
Normal file
74
netbox/vpn/api/views.py
Normal file
@@ -0,0 +1,74 @@
|
||||
from rest_framework.routers import APIRootView
|
||||
|
||||
from netbox.api.viewsets import NetBoxModelViewSet
|
||||
from utilities.utils import count_related
|
||||
from vpn import filtersets
|
||||
from vpn.models import *
|
||||
from . import serializers
|
||||
|
||||
__all__ = (
|
||||
'IKEPolicyViewSet',
|
||||
'IKEProposalViewSet',
|
||||
'IPSecPolicyViewSet',
|
||||
'IPSecProfileViewSet',
|
||||
'IPSecProposalViewSet',
|
||||
'TunnelTerminationViewSet',
|
||||
'TunnelViewSet',
|
||||
'VPNRootView',
|
||||
)
|
||||
|
||||
|
||||
class VPNRootView(APIRootView):
|
||||
"""
|
||||
VPN API root view
|
||||
"""
|
||||
def get_view_name(self):
|
||||
return 'VPN'
|
||||
|
||||
|
||||
#
|
||||
# Viewsets
|
||||
#
|
||||
|
||||
class TunnelViewSet(NetBoxModelViewSet):
|
||||
queryset = Tunnel.objects.prefetch_related('ipsec_profile', 'tenant').annotate(
|
||||
terminations_count=count_related(TunnelTermination, 'tunnel')
|
||||
)
|
||||
serializer_class = serializers.TunnelSerializer
|
||||
filterset_class = filtersets.TunnelFilterSet
|
||||
|
||||
|
||||
class TunnelTerminationViewSet(NetBoxModelViewSet):
|
||||
queryset = TunnelTermination.objects.prefetch_related('tunnel')
|
||||
serializer_class = serializers.TunnelTerminationSerializer
|
||||
filterset_class = filtersets.TunnelTerminationFilterSet
|
||||
|
||||
|
||||
class IKEProposalViewSet(NetBoxModelViewSet):
|
||||
queryset = IKEProposal.objects.all()
|
||||
serializer_class = serializers.IKEProposalSerializer
|
||||
filterset_class = filtersets.IKEProposalFilterSet
|
||||
|
||||
|
||||
class IKEPolicyViewSet(NetBoxModelViewSet):
|
||||
queryset = IKEPolicy.objects.all()
|
||||
serializer_class = serializers.IKEPolicySerializer
|
||||
filterset_class = filtersets.IKEPolicyFilterSet
|
||||
|
||||
|
||||
class IPSecProposalViewSet(NetBoxModelViewSet):
|
||||
queryset = IPSecProposal.objects.all()
|
||||
serializer_class = serializers.IPSecProposalSerializer
|
||||
filterset_class = filtersets.IPSecProposalFilterSet
|
||||
|
||||
|
||||
class IPSecPolicyViewSet(NetBoxModelViewSet):
|
||||
queryset = IPSecPolicy.objects.all()
|
||||
serializer_class = serializers.IPSecPolicySerializer
|
||||
filterset_class = filtersets.IPSecPolicyFilterSet
|
||||
|
||||
|
||||
class IPSecProfileViewSet(NetBoxModelViewSet):
|
||||
queryset = IPSecProfile.objects.all()
|
||||
serializer_class = serializers.IPSecProfileSerializer
|
||||
filterset_class = filtersets.IPSecProfileFilterSet
|
Reference in New Issue
Block a user