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

View File

@ -2,6 +2,7 @@ from rest_framework import serializers
from dcim.api.serializers import SiteNestedSerializer, InterfaceNestedSerializer
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):
tenant = TenantNestedSerializer()
class Meta:
model = VRF
fields = ['id', 'name', 'rd', 'enforce_unique', 'description']
fields = ['id', 'name', 'rd', 'tenant', 'enforce_unique', 'description']
class VRFNestedSerializer(VRFSerializer):
@ -98,11 +100,12 @@ class VLANGroupNestedSerializer(VLANGroupSerializer):
class VLANSerializer(serializers.ModelSerializer):
site = SiteNestedSerializer()
group = VLANGroupNestedSerializer()
tenant = TenantNestedSerializer()
role = RoleNestedSerializer()
class Meta:
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):

View File

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