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

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 

5 

6__all__ = ( 

7 'RouteTargetSerializer', 

8 'VRFSerializer', 

9) 

10 

11 

12class RouteTargetSerializer(PrimaryModelSerializer): 

13 tenant = TenantSerializer(nested=True, required=False, allow_null=True) 

14 

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') 

22 

23 

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 ) 

38 

39 # Related object counts 

40 ipaddress_count = RelatedObjectCountField('ip_addresses') 

41 prefix_count = RelatedObjectCountField('prefixes') 

42 

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')