mirror of
https://github.com/netbox-community/netbox.git
synced 2026-03-25 10:52:44 +01:00
Standardized implementation of nested ViewSets
This commit is contained in:
@@ -2,22 +2,19 @@ from django.conf.urls import include, url
|
||||
|
||||
from rest_framework import routers
|
||||
|
||||
from .views import (
|
||||
AggregateViewSet, IPAddressViewSet, PrefixViewSet, RIRViewSet, RoleViewSet, ServiceViewSet, VLANViewSet,
|
||||
VLANGroupViewSet, VRFViewSet,
|
||||
)
|
||||
from . import views
|
||||
|
||||
|
||||
router = routers.DefaultRouter()
|
||||
router.register(r'vrfs', VRFViewSet)
|
||||
router.register(r'rirs', RIRViewSet)
|
||||
router.register(r'aggregates', AggregateViewSet)
|
||||
router.register(r'roles', RoleViewSet)
|
||||
router.register(r'prefixes', PrefixViewSet)
|
||||
router.register(r'ip-addresses', IPAddressViewSet)
|
||||
router.register(r'vlan-groups', VLANGroupViewSet)
|
||||
router.register(r'vlans', VLANViewSet)
|
||||
router.register(r'services', ServiceViewSet)
|
||||
router.register(r'vrfs', views.VRFViewSet)
|
||||
router.register(r'rirs', views.RIRViewSet)
|
||||
router.register(r'aggregates', views.AggregateViewSet)
|
||||
router.register(r'roles', views.RoleViewSet)
|
||||
router.register(r'prefixes', views.PrefixViewSet)
|
||||
router.register(r'ip-addresses', views.IPAddressViewSet)
|
||||
router.register(r'vlan-groups', views.VLANGroupViewSet)
|
||||
router.register(r'vlans', views.VLANViewSet)
|
||||
router.register(r'services', views.ServiceViewSet)
|
||||
|
||||
urlpatterns = [
|
||||
|
||||
|
||||
@@ -12,9 +12,6 @@ from . import serializers
|
||||
#
|
||||
|
||||
class VRFViewSet(CustomFieldModelViewSet):
|
||||
"""
|
||||
List and retrieve VRFs
|
||||
"""
|
||||
queryset = VRF.objects.select_related('tenant')
|
||||
serializer_class = serializers.VRFSerializer
|
||||
filter_class = filters.VRFFilter
|
||||
@@ -25,9 +22,6 @@ class VRFViewSet(CustomFieldModelViewSet):
|
||||
#
|
||||
|
||||
class RoleViewSet(ModelViewSet):
|
||||
"""
|
||||
List and retrieve prefix/VLAN roles
|
||||
"""
|
||||
queryset = Role.objects.all()
|
||||
serializer_class = serializers.RoleSerializer
|
||||
|
||||
@@ -37,9 +31,6 @@ class RoleViewSet(ModelViewSet):
|
||||
#
|
||||
|
||||
class RIRViewSet(ModelViewSet):
|
||||
"""
|
||||
List and retrieve RIRs
|
||||
"""
|
||||
queryset = RIR.objects.all()
|
||||
serializer_class = serializers.RIRSerializer
|
||||
|
||||
@@ -49,9 +40,6 @@ class RIRViewSet(ModelViewSet):
|
||||
#
|
||||
|
||||
class AggregateViewSet(CustomFieldModelViewSet):
|
||||
"""
|
||||
List and retrieve aggregates
|
||||
"""
|
||||
queryset = Aggregate.objects.select_related('rir')
|
||||
serializer_class = serializers.AggregateSerializer
|
||||
filter_class = filters.AggregateFilter
|
||||
@@ -62,9 +50,6 @@ class AggregateViewSet(CustomFieldModelViewSet):
|
||||
#
|
||||
|
||||
class PrefixViewSet(CustomFieldModelViewSet):
|
||||
"""
|
||||
List and retrieve prefixes
|
||||
"""
|
||||
queryset = Prefix.objects.select_related('site', 'vrf__tenant', 'tenant', 'vlan', 'role')
|
||||
serializer_class = serializers.PrefixSerializer
|
||||
filter_class = filters.PrefixFilter
|
||||
@@ -75,9 +60,6 @@ class PrefixViewSet(CustomFieldModelViewSet):
|
||||
#
|
||||
|
||||
class IPAddressViewSet(CustomFieldModelViewSet):
|
||||
"""
|
||||
List and retrieve IP addresses
|
||||
"""
|
||||
queryset = IPAddress.objects.select_related('vrf__tenant', 'tenant', 'interface__device', 'nat_inside')
|
||||
serializer_class = serializers.IPAddressSerializer
|
||||
filter_class = filters.IPAddressFilter
|
||||
@@ -88,9 +70,6 @@ class IPAddressViewSet(CustomFieldModelViewSet):
|
||||
#
|
||||
|
||||
class VLANGroupViewSet(ModelViewSet):
|
||||
"""
|
||||
List and retrieve VLAN groups
|
||||
"""
|
||||
queryset = VLANGroup.objects.select_related('site')
|
||||
serializer_class = serializers.VLANGroupSerializer
|
||||
filter_class = filters.VLANGroupFilter
|
||||
@@ -101,9 +80,6 @@ class VLANGroupViewSet(ModelViewSet):
|
||||
#
|
||||
|
||||
class VLANViewSet(CustomFieldModelViewSet):
|
||||
"""
|
||||
List and retrieve VLANs
|
||||
"""
|
||||
queryset = VLAN.objects.select_related('site', 'group', 'tenant', 'role')
|
||||
serializer_class = serializers.VLANSerializer
|
||||
filter_class = filters.VLANFilter
|
||||
@@ -114,9 +90,6 @@ class VLANViewSet(CustomFieldModelViewSet):
|
||||
#
|
||||
|
||||
class ServiceViewSet(ModelViewSet):
|
||||
"""
|
||||
List and retrieve services
|
||||
"""
|
||||
queryset = Service.objects.select_related('device').prefetch_related('ipaddresses')
|
||||
serializer_class = serializers.ServiceSerializer
|
||||
filter_class = filters.ServiceFilter
|
||||
|
||||
Reference in New Issue
Block a user