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
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 18:35 +0000
1from django.contrib.contenttypes.models import ContentType
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
8from .ip import IPAddressSerializer
10__all__ = (
11 'FHRPGroupAssignmentSerializer',
12 'FHRPGroupSerializer',
13)
16class FHRPGroupSerializer(PrimaryModelSerializer):
17 ip_addresses = IPAddressSerializer(nested=True, many=True, read_only=True)
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')
28class FHRPGroupAssignmentSerializer(NetBoxModelSerializer):
29 group = FHRPGroupSerializer(nested=True)
30 interface_type = ContentTypeField(
31 queryset=ContentType.objects.all()
32 )
33 interface = GFKSerializerField(read_only=True)
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')