Extended IPAM API to support tenancy

This commit is contained in:
Jeremy Stretch 2016-07-27 13:37:55 -04:00
parent e4960873f3
commit 2981ead41b
3 changed files with 15 additions and 6 deletions

View File

@ -15,6 +15,7 @@ class SiteTest(APITestCase):
'id', 'id',
'name', 'name',
'slug', 'slug',
'tenant',
'facility', 'facility',
'asn', 'asn',
'physical_address', 'physical_address',
@ -40,6 +41,7 @@ class SiteTest(APITestCase):
'display_name', 'display_name',
'site', 'site',
'group', 'group',
'tenant',
'u_height', 'u_height',
'comments' 'comments'
] ]
@ -115,6 +117,7 @@ class RackTest(APITestCase):
'display_name', 'display_name',
'site', 'site',
'group', 'group',
'tenant',
'u_height', 'u_height',
'comments' 'comments'
] ]
@ -126,6 +129,7 @@ class RackTest(APITestCase):
'display_name', 'display_name',
'site', 'site',
'group', 'group',
'tenant',
'u_height', 'u_height',
'comments', 'comments',
'front_units', 'front_units',
@ -311,6 +315,7 @@ class DeviceTest(APITestCase):
'display_name', 'display_name',
'device_type', 'device_type',
'device_role', 'device_role',
'tenant',
'platform', 'platform',
'serial', 'serial',
'rack', 'rack',
@ -388,6 +393,7 @@ class DeviceTest(APITestCase):
'rack_name', 'rack_name',
'serial', 'serial',
'status', 'status',
'tenant',
] ]
response = self.client.get(endpoint) response = self.client.get(endpoint)

View File

@ -2,6 +2,7 @@ from rest_framework import serializers
from dcim.api.serializers import SiteNestedSerializer, InterfaceNestedSerializer from dcim.api.serializers import SiteNestedSerializer, InterfaceNestedSerializer
from ipam.models import VRF, Role, RIR, Aggregate, Prefix, IPAddress, VLAN, VLANGroup from ipam.models import VRF, Role, RIR, Aggregate, Prefix, IPAddress, VLAN, VLANGroup
from tenancy.api.serializers import TenantNestedSerializer
# #
@ -9,10 +10,11 @@ from ipam.models import VRF, Role, RIR, Aggregate, Prefix, IPAddress, VLAN, VLAN
# #
class VRFSerializer(serializers.ModelSerializer): class VRFSerializer(serializers.ModelSerializer):
tenant = TenantNestedSerializer()
class Meta: class Meta:
model = VRF model = VRF
fields = ['id', 'name', 'rd', 'enforce_unique', 'description'] fields = ['id', 'name', 'rd', 'tenant', 'enforce_unique', 'description']
class VRFNestedSerializer(VRFSerializer): class VRFNestedSerializer(VRFSerializer):
@ -98,11 +100,12 @@ class VLANGroupNestedSerializer(VLANGroupSerializer):
class VLANSerializer(serializers.ModelSerializer): class VLANSerializer(serializers.ModelSerializer):
site = SiteNestedSerializer() site = SiteNestedSerializer()
group = VLANGroupNestedSerializer() group = VLANGroupNestedSerializer()
tenant = TenantNestedSerializer()
role = RoleNestedSerializer() role = RoleNestedSerializer()
class Meta: class Meta:
model = VLAN model = VLAN
fields = ['id', 'site', 'group', 'vid', 'name', 'status', 'role', 'description', 'display_name'] fields = ['id', 'site', 'group', 'vid', 'name', 'tenant', 'status', 'role', 'description', 'display_name']
class VLANNestedSerializer(VLANSerializer): class VLANNestedSerializer(VLANSerializer):

View File

@ -14,7 +14,7 @@ class VRFListView(generics.ListAPIView):
""" """
List all VRFs List all VRFs
""" """
queryset = VRF.objects.all() queryset = VRF.objects.select_related('tenant')
serializer_class = serializers.VRFSerializer serializer_class = serializers.VRFSerializer
filter_class = filters.VRFFilter filter_class = filters.VRFFilter
@ -23,7 +23,7 @@ class VRFDetailView(generics.RetrieveAPIView):
""" """
Retrieve a single VRF Retrieve a single VRF
""" """
queryset = VRF.objects.all() queryset = VRF.objects.select_related('tenant')
serializer_class = serializers.VRFSerializer serializer_class = serializers.VRFSerializer
@ -161,7 +161,7 @@ class VLANListView(generics.ListAPIView):
""" """
List VLANs (filterable) List VLANs (filterable)
""" """
queryset = VLAN.objects.select_related('site', 'role') queryset = VLAN.objects.select_related('site', 'tenant', 'role')
serializer_class = serializers.VLANSerializer serializer_class = serializers.VLANSerializer
filter_class = filters.VLANFilter filter_class = filters.VLANFilter
@ -170,5 +170,5 @@ class VLANDetailView(generics.RetrieveAPIView):
""" """
Retrieve a single VLAN Retrieve a single VLAN
""" """
queryset = VLAN.objects.select_related('site', 'role') queryset = VLAN.objects.select_related('site', 'tenant', 'role')
serializer_class = serializers.VLANSerializer serializer_class = serializers.VLANSerializer