2017-02-01 14:34:19 -05:00
|
|
|
from rest_framework.viewsets import ModelViewSet
|
2016-03-01 11:23:03 -05:00
|
|
|
|
2016-12-15 15:32:58 -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
|
2017-01-31 15:35:09 -05:00
|
|
|
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
|
2017-01-31 15:35:09 -05:00
|
|
|
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
|
2017-01-31 15:35:09 -05:00
|
|
|
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
|
2017-01-31 15:35:09 -05:00
|
|
|
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
|
2017-01-31 15:35:09 -05:00
|
|
|
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
|
2017-01-31 15:35:09 -05:00
|
|
|
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
|
|
|
|
|
|
|
|
2016-12-15 15:32:58 -05:00
|
|
|
#
|
|
|
|
# Services
|
|
|
|
#
|
|
|
|
|
2017-02-01 14:34:19 -05:00
|
|
|
class ServiceViewSet(WritableSerializerMixin, ModelViewSet):
|
2017-01-27 16:19:38 -05:00
|
|
|
queryset = Service.objects.select_related('device')
|
2016-12-15 15:32:58 -05:00
|
|
|
serializer_class = serializers.ServiceSerializer
|
2017-02-01 14:34:19 -05:00
|
|
|
write_serializer_class = serializers.WritableServiceSerializer
|