Coverage for ipam/api/serializers_/vrfs.py: 100%
21 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 18:35 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 18:35 +0000
1from ipam.models import VRF, RouteTarget
2from netbox.api.fields import RelatedObjectCountField, SerializedPKRelatedField
3from netbox.api.serializers import PrimaryModelSerializer
4from tenancy.api.serializers_.tenants import TenantSerializer
6__all__ = (
7 'RouteTargetSerializer',
8 'VRFSerializer',
9)
12class RouteTargetSerializer(PrimaryModelSerializer):
13 tenant = TenantSerializer(nested=True, required=False, allow_null=True)
15 class Meta:
16 model = RouteTarget
17 fields = [
18 'id', 'url', 'display_url', 'display', 'name', 'tenant', 'description', 'owner', 'comments', 'tags',
19 'custom_fields', 'created', 'last_updated',
20 ]
21 brief_fields = ('id', 'url', 'display', 'name', 'description')
24class VRFSerializer(PrimaryModelSerializer):
25 tenant = TenantSerializer(nested=True, required=False, allow_null=True)
26 import_targets = SerializedPKRelatedField(
27 queryset=RouteTarget.objects.all(),
28 serializer=RouteTargetSerializer,
29 required=False,
30 many=True
31 )
32 export_targets = SerializedPKRelatedField(
33 queryset=RouteTarget.objects.all(),
34 serializer=RouteTargetSerializer,
35 required=False,
36 many=True
37 )
39 # Related object counts
40 ipaddress_count = RelatedObjectCountField('ip_addresses')
41 prefix_count = RelatedObjectCountField('prefixes')
43 class Meta:
44 model = VRF
45 fields = [
46 'id', 'url', 'display_url', 'display', 'name', 'rd', 'tenant', 'enforce_unique', 'description', 'owner',
47 'comments', 'import_targets', 'export_targets', 'tags', 'custom_fields', 'created', 'last_updated',
48 'ipaddress_count', 'prefix_count',
49 ]
50 brief_fields = ('id', 'url', 'display', 'name', 'rd', 'description', 'prefix_count')