diff --git a/netbox/dcim/tests/test_apis.py b/netbox/dcim/tests/test_apis.py index 22128ba29..8b0d8ca53 100644 --- a/netbox/dcim/tests/test_apis.py +++ b/netbox/dcim/tests/test_apis.py @@ -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) diff --git a/netbox/ipam/api/serializers.py b/netbox/ipam/api/serializers.py index bda8b1076..bdcab381c 100644 --- a/netbox/ipam/api/serializers.py +++ b/netbox/ipam/api/serializers.py @@ -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): diff --git a/netbox/ipam/api/views.py b/netbox/ipam/api/views.py index 30a15e218..baa1050cd 100644 --- a/netbox/ipam/api/views.py +++ b/netbox/ipam/api/views.py @@ -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