1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

126 lines
3.2 KiB
Python
Raw Normal View History

2016-03-01 11:23:03 -05:00
from rest_framework import generics
2016-05-17 16:54:34 -04:00
from ipam.models import VRF, Role, RIR, Aggregate, Prefix, IPAddress, VLAN
2016-06-28 16:01:48 -04:00
from ipam.filters import AggregateFilter, PrefixFilter, IPAddressFilter, VLANFilter, VRFFilter
2016-05-18 16:20:30 -04:00
from . import serializers
2016-03-01 11:23:03 -05:00
class VRFListView(generics.ListAPIView):
"""
List all VRFs
"""
queryset = VRF.objects.all()
2016-05-18 16:20:30 -04:00
serializer_class = serializers.VRFSerializer
2016-06-28 16:01:48 -04:00
filter_class = VRFFilter
2016-03-01 11:23:03 -05:00
class VRFDetailView(generics.RetrieveAPIView):
"""
Retrieve a single VRF
"""
queryset = VRF.objects.all()
2016-05-18 16:20:30 -04:00
serializer_class = serializers.VRFSerializer
2016-03-01 11:23:03 -05:00
class RoleListView(generics.ListAPIView):
"""
List all roles
"""
queryset = Role.objects.all()
2016-05-18 16:20:30 -04:00
serializer_class = serializers.RoleSerializer
2016-03-01 11:23:03 -05:00
class RoleDetailView(generics.RetrieveAPIView):
"""
Retrieve a single role
"""
queryset = Role.objects.all()
2016-05-18 16:20:30 -04:00
serializer_class = serializers.RoleSerializer
2016-03-01 11:23:03 -05:00
class RIRListView(generics.ListAPIView):
"""
List all RIRs
"""
queryset = RIR.objects.all()
2016-05-18 16:20:30 -04:00
serializer_class = serializers.RIRSerializer
2016-03-01 11:23:03 -05:00
class RIRDetailView(generics.RetrieveAPIView):
"""
Retrieve a single RIR
"""
queryset = RIR.objects.all()
2016-05-18 16:20:30 -04:00
serializer_class = serializers.RIRSerializer
2016-03-01 11:23:03 -05:00
class AggregateListView(generics.ListAPIView):
"""
List aggregates (filterable)
"""
queryset = Aggregate.objects.select_related('rir')
2016-05-18 16:20:30 -04:00
serializer_class = serializers.AggregateSerializer
2016-03-01 11:23:03 -05:00
filter_class = AggregateFilter
class AggregateDetailView(generics.RetrieveAPIView):
"""
Retrieve a single aggregate
"""
queryset = Aggregate.objects.select_related('rir')
2016-05-18 16:20:30 -04:00
serializer_class = serializers.AggregateSerializer
2016-03-01 11:23:03 -05:00
class PrefixListView(generics.ListAPIView):
"""
List prefixes (filterable)
"""
2016-05-17 16:54:34 -04:00
queryset = Prefix.objects.select_related('site', 'vrf', 'vlan', 'role')
2016-05-18 16:20:30 -04:00
serializer_class = serializers.PrefixSerializer
2016-03-01 11:23:03 -05:00
filter_class = PrefixFilter
class PrefixDetailView(generics.RetrieveAPIView):
"""
Retrieve a single prefix
"""
2016-05-17 16:54:34 -04:00
queryset = Prefix.objects.select_related('site', 'vrf', 'vlan', 'role')
2016-05-18 16:20:30 -04:00
serializer_class = serializers.PrefixSerializer
2016-03-01 11:23:03 -05:00
class IPAddressListView(generics.ListAPIView):
"""
List IP addresses (filterable)
"""
queryset = IPAddress.objects.select_related('vrf', 'interface__device', 'nat_inside')\
.prefetch_related('nat_outside')
2016-05-18 16:20:30 -04:00
serializer_class = serializers.IPAddressSerializer
2016-03-01 11:23:03 -05:00
filter_class = IPAddressFilter
class IPAddressDetailView(generics.RetrieveAPIView):
"""
Retrieve a single IP address
"""
queryset = IPAddress.objects.select_related('vrf', 'interface__device', 'nat_inside')\
.prefetch_related('nat_outside')
2016-05-18 16:20:30 -04:00
serializer_class = serializers.IPAddressSerializer
2016-03-01 11:23:03 -05:00
class VLANListView(generics.ListAPIView):
"""
List VLANs (filterable)
"""
2016-05-17 16:54:34 -04:00
queryset = VLAN.objects.select_related('site', 'role')
2016-05-18 16:20:30 -04:00
serializer_class = serializers.VLANSerializer
2016-03-01 11:23:03 -05:00
filter_class = VLANFilter
class VLANDetailView(generics.RetrieveAPIView):
"""
Retrieve a single VLAN
"""
2016-05-17 16:54:34 -04:00
queryset = VLAN.objects.select_related('site', 'role')
2016-05-18 16:20:30 -04:00
serializer_class = serializers.VLANSerializer