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

102 lines
2.7 KiB
Python
Raw Normal View History

from rest_framework.viewsets import ModelViewSet
2016-03-01 11:23:03 -05:00
from ipam.models import Aggregate, IPAddress, Prefix, RIR, Role, Service, VLAN, VLANGroup, VRF
2016-07-15 13:26:54 -04:00
from ipam import filters
2017-01-24 17:12:16 -05:00
from extras.api.views import CustomFieldModelViewSet
2017-01-27 14:36:13 -05:00
from utilities.api import WritableSerializerMixin
2016-05-18 16:20:30 -04:00
from . import serializers
2016-03-01 11:23:03 -05:00
2016-07-15 13:26:54 -04:00
#
# VRFs
#
2017-01-27 14:36:13 -05:00
class VRFViewSet(WritableSerializerMixin, CustomFieldModelViewSet):
2017-01-24 17:12:16 -05:00
queryset = VRF.objects.select_related('tenant')
2016-05-18 16:20:30 -04:00
serializer_class = serializers.VRFSerializer
write_serializer_class = serializers.WritableVRFSerializer
2016-07-15 13:26:54 -04:00
filter_class = filters.VRFFilter
2016-03-01 11:23:03 -05:00
2016-07-15 13:26:54 -04:00
#
# Roles
#
2017-01-24 17:12:16 -05:00
class RoleViewSet(ModelViewSet):
2016-03-01 11:23:03 -05:00
queryset = Role.objects.all()
2016-05-18 16:20:30 -04:00
serializer_class = serializers.RoleSerializer
2016-03-01 11:23:03 -05:00
2016-07-15 13:26:54 -04:00
#
# RIRs
#
2017-01-24 17:12:16 -05:00
class RIRViewSet(ModelViewSet):
2016-03-01 11:23:03 -05:00
queryset = RIR.objects.all()
2016-05-18 16:20:30 -04:00
serializer_class = serializers.RIRSerializer
2016-03-01 11:23:03 -05:00
2016-07-15 13:26:54 -04:00
#
# Aggregates
#
2017-01-27 14:36:13 -05:00
class AggregateViewSet(WritableSerializerMixin, CustomFieldModelViewSet):
2017-01-24 17:12:16 -05:00
queryset = Aggregate.objects.select_related('rir')
2016-05-18 16:20:30 -04:00
serializer_class = serializers.AggregateSerializer
write_serializer_class = serializers.WritableAggregateSerializer
2016-07-15 13:26:54 -04:00
filter_class = filters.AggregateFilter
2016-03-01 11:23:03 -05:00
2016-07-15 13:26:54 -04:00
#
# Prefixes
#
2017-01-27 14:36:13 -05:00
class PrefixViewSet(WritableSerializerMixin, CustomFieldModelViewSet):
2017-01-24 17:12:16 -05:00
queryset = Prefix.objects.select_related('site', 'vrf__tenant', 'tenant', 'vlan', 'role')
2016-05-18 16:20:30 -04:00
serializer_class = serializers.PrefixSerializer
write_serializer_class = serializers.WritablePrefixSerializer
2016-07-15 13:26:54 -04:00
filter_class = filters.PrefixFilter
2016-03-01 11:23:03 -05:00
2016-07-15 13:26:54 -04:00
#
# IP addresses
#
2017-01-27 14:36:13 -05:00
class IPAddressViewSet(WritableSerializerMixin, CustomFieldModelViewSet):
2017-01-24 17:12:16 -05:00
queryset = IPAddress.objects.select_related('vrf__tenant', 'tenant', 'interface__device', 'nat_inside')
2016-05-18 16:20:30 -04:00
serializer_class = serializers.IPAddressSerializer
write_serializer_class = serializers.WritableIPAddressSerializer
2016-07-15 13:26:54 -04:00
filter_class = filters.IPAddressFilter
2016-03-01 11:23:03 -05:00
2016-07-15 13:26:54 -04:00
#
# VLAN groups
#
2017-01-27 14:36:13 -05:00
class VLANGroupViewSet(WritableSerializerMixin, ModelViewSet):
2016-07-27 14:40:19 -04:00
queryset = VLANGroup.objects.select_related('site')
2016-07-15 13:26:54 -04:00
serializer_class = serializers.VLANGroupSerializer
write_serializer_class = serializers.WritableVLANGroupSerializer
2016-07-15 13:26:54 -04:00
filter_class = filters.VLANGroupFilter
#
# VLANs
#
2017-01-27 14:36:13 -05:00
class VLANViewSet(WritableSerializerMixin, CustomFieldModelViewSet):
2017-01-24 17:12:16 -05:00
queryset = VLAN.objects.select_related('site', 'group', 'tenant', 'role')
2016-05-18 16:20:30 -04:00
serializer_class = serializers.VLANSerializer
write_serializer_class = serializers.WritableVLANSerializer
2016-07-15 13:26:54 -04:00
filter_class = filters.VLANFilter
2016-03-01 11:23:03 -05:00
#
# Services
#
class ServiceViewSet(WritableSerializerMixin, ModelViewSet):
2017-01-27 16:19:38 -05:00
queryset = Service.objects.select_related('device')
serializer_class = serializers.ServiceSerializer
write_serializer_class = serializers.WritableServiceSerializer