Coverage for vpn/api/serializers_/crypto.py: 100%
44 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 netbox.api.fields import ChoiceField, SerializedPKRelatedField
2from netbox.api.serializers import PrimaryModelSerializer
3from vpn.choices import *
4from vpn.models import IKEPolicy, IKEProposal, IPSecPolicy, IPSecProfile, IPSecProposal
6__all__ = (
7 'IKEPolicySerializer',
8 'IKEProposalSerializer',
9 'IPSecPolicySerializer',
10 'IPSecProfileSerializer',
11 'IPSecProposalSerializer',
12)
15class IKEProposalSerializer(PrimaryModelSerializer):
16 authentication_method = ChoiceField(
17 choices=AuthenticationMethodChoices
18 )
19 encryption_algorithm = ChoiceField(
20 choices=EncryptionAlgorithmChoices
21 )
22 authentication_algorithm = ChoiceField(
23 choices=AuthenticationAlgorithmChoices,
24 required=False
25 )
26 group = ChoiceField(
27 choices=DHGroupChoices
28 )
30 class Meta:
31 model = IKEProposal
32 fields = (
33 'id', 'url', 'display_url', 'display', 'name', 'description', 'authentication_method',
34 'encryption_algorithm', 'authentication_algorithm', 'group', 'sa_lifetime', 'owner', 'comments', 'tags',
35 'custom_fields', 'created', 'last_updated',
36 )
37 brief_fields = ('id', 'url', 'display', 'name', 'description')
40class IKEPolicySerializer(PrimaryModelSerializer):
41 version = ChoiceField(
42 choices=IKEVersionChoices
43 )
44 mode = ChoiceField(
45 choices=IKEModeChoices,
46 required=False
47 )
48 proposals = SerializedPKRelatedField(
49 queryset=IKEProposal.objects.all(),
50 serializer=IKEProposalSerializer,
51 nested=True,
52 required=False,
53 many=True
54 )
56 class Meta:
57 model = IKEPolicy
58 fields = (
59 'id', 'url', 'display_url', 'display', 'name', 'description', 'version', 'mode', 'proposals',
60 'preshared_key', 'owner', 'comments', 'tags', 'custom_fields', 'created', 'last_updated',
61 )
62 brief_fields = ('id', 'url', 'display', 'name', 'description')
65class IPSecProposalSerializer(PrimaryModelSerializer):
66 encryption_algorithm = ChoiceField(
67 choices=EncryptionAlgorithmChoices,
68 required=False
69 )
70 authentication_algorithm = ChoiceField(
71 choices=AuthenticationAlgorithmChoices,
72 required=False
73 )
75 class Meta:
76 model = IPSecProposal
77 fields = (
78 'id', 'url', 'display_url', 'display', 'name', 'description', 'encryption_algorithm',
79 'authentication_algorithm', 'sa_lifetime_seconds', 'sa_lifetime_data', 'owner', 'comments', 'tags',
80 'custom_fields', 'created', 'last_updated',
81 )
82 brief_fields = ('id', 'url', 'display', 'name', 'description')
85class IPSecPolicySerializer(PrimaryModelSerializer):
86 proposals = SerializedPKRelatedField(
87 queryset=IPSecProposal.objects.all(),
88 serializer=IPSecProposalSerializer,
89 nested=True,
90 required=False,
91 many=True
92 )
93 pfs_group = ChoiceField(
94 choices=DHGroupChoices,
95 required=False
96 )
98 class Meta:
99 model = IPSecPolicy
100 fields = (
101 'id', 'url', 'display_url', 'display', 'name', 'description', 'proposals', 'pfs_group', 'owner', 'comments',
102 'tags', 'custom_fields', 'created', 'last_updated',
103 )
104 brief_fields = ('id', 'url', 'display', 'name', 'description')
107class IPSecProfileSerializer(PrimaryModelSerializer):
108 mode = ChoiceField(
109 choices=IPSecModeChoices
110 )
111 ike_policy = IKEPolicySerializer(
112 nested=True
113 )
114 ipsec_policy = IPSecPolicySerializer(
115 nested=True
116 )
118 class Meta:
119 model = IPSecProfile
120 fields = (
121 'id', 'url', 'display_url', 'display', 'name', 'description', 'mode', 'ike_policy', 'ipsec_policy', 'owner',
122 'comments', 'tags', 'custom_fields', 'created', 'last_updated',
123 )
124 brief_fields = ('id', 'url', 'display', 'name', 'description')