Coverage for ipam/api/serializers_/fhrpgroups.py: 100%

21 statements  

« prev     ^ index     » next       coverage.py v7.15.2, created at 2026-10-10 18:35 +0000

1from django.contrib.contenttypes.models import ContentType 

2 

3from ipam.models import FHRPGroup, FHRPGroupAssignment 

4from netbox.api.fields import ContentTypeField 

5from netbox.api.gfk_fields import GFKSerializerField 

6from netbox.api.serializers import NetBoxModelSerializer, PrimaryModelSerializer 

7 

8from .ip import IPAddressSerializer 

9 

10__all__ = ( 

11 'FHRPGroupAssignmentSerializer', 

12 'FHRPGroupSerializer', 

13) 

14 

15 

16class FHRPGroupSerializer(PrimaryModelSerializer): 

17 ip_addresses = IPAddressSerializer(nested=True, many=True, read_only=True) 

18 

19 class Meta: 

20 model = FHRPGroup 

21 fields = [ 

22 'id', 'name', 'url', 'display_url', 'display', 'protocol', 'group_id', 'auth_type', 'auth_key', 

23 'description', 'owner', 'comments', 'tags', 'custom_fields', 'created', 'last_updated', 'ip_addresses', 

24 ] 

25 brief_fields = ('id', 'url', 'display', 'protocol', 'group_id', 'description') 

26 

27 

28class FHRPGroupAssignmentSerializer(NetBoxModelSerializer): 

29 group = FHRPGroupSerializer(nested=True) 

30 interface_type = ContentTypeField( 

31 queryset=ContentType.objects.all() 

32 ) 

33 interface = GFKSerializerField(read_only=True) 

34 

35 class Meta: 

36 model = FHRPGroupAssignment 

37 fields = [ 

38 'id', 'url', 'display', 'group', 'interface_type', 'interface_id', 'interface', 

39 'priority', 'created', 'last_updated', 

40 ] 

41 brief_fields = ('id', 'url', 'display', 'group', 'interface_type', 'interface_id', 'priority')