7
7
from netbox .api .serializers import NetBoxModelSerializer
8
8
from dcim .api .nested_serializers import NestedSiteSerializer , NestedDeviceSerializer
9
9
from tenancy .api .nested_serializers import NestedTenantSerializer
10
- from ipam .api .nested_serializers import NestedIPAddressSerializer , NestedASNSerializer
10
+ from ipam .api .nested_serializers import NestedIPAddressSerializer , NestedASNSerializer , NestedPrefixSerializer
11
11
12
12
13
13
from netbox_bgp .models import (
@@ -30,7 +30,7 @@ def to_representation(self, value):
30
30
31
31
class RoutingPolicySerializer (NetBoxModelSerializer ):
32
32
class Meta :
33
- model = RoutingPolicy
33
+ model = RoutingPolicy
34
34
fields = '__all__'
35
35
36
36
@@ -39,8 +39,8 @@ class NestedRoutingPolicySerializer(WritableNestedSerializer):
39
39
40
40
class Meta :
41
41
model = RoutingPolicy
42
- fields = ['id' , 'url' , 'name' , 'description' ]
43
-
42
+ fields = ['id' , 'url' , 'name' , 'display' , ' description' ]
43
+ validators = []
44
44
45
45
class BGPPeerGroupSerializer (NetBoxModelSerializer ):
46
46
import_policies = SerializedPKRelatedField (
@@ -147,17 +147,14 @@ class Meta:
147
147
'value' , 'site' , 'role'
148
148
]
149
149
150
+ class NestedCommunitySerializer (WritableNestedSerializer ):
151
+ url = HyperlinkedIdentityField (view_name = 'plugins:netbox_bgp:community' )
150
152
151
- class RoutingPolicyRuleSerializer (NetBoxModelSerializer ):
152
153
class Meta :
153
- model = RoutingPolicyRule
154
- fields = '__all__'
155
-
156
-
157
- class PrefixListSerializer (NetBoxModelSerializer ):
158
- class Meta :
159
- model = PrefixList
160
- fields = '__all__'
154
+ model = Community
155
+ fields = [
156
+ 'id' , 'url' , 'display' , 'value'
157
+ ]
161
158
162
159
163
160
class NestedPrefixListSerializer (WritableNestedSerializer ):
@@ -167,9 +164,36 @@ class Meta:
167
164
model = PrefixList
168
165
fields = ['id' , 'url' , 'display' , 'name' ]
169
166
167
+ class PrefixListSerializer (NetBoxModelSerializer ):
168
+ class Meta :
169
+ model = PrefixList
170
+ fields = '__all__'
171
+
172
+ class RoutingPolicyRuleSerializer (NetBoxModelSerializer ):
173
+ match_ip_address = SerializedPKRelatedField (
174
+ queryset = PrefixList .objects .all (),
175
+ serializer = NestedPrefixListSerializer ,
176
+ required = False ,
177
+ allow_null = True ,
178
+ many = True
179
+ )
180
+ routing_policy = NestedRoutingPolicySerializer ()
181
+ match_community = SerializedPKRelatedField (
182
+ queryset = Community .objects .all (),
183
+ serializer = NestedCommunitySerializer ,
184
+ required = False ,
185
+ allow_null = True ,
186
+ many = True
187
+ )
188
+
189
+
190
+ class Meta :
191
+ model = RoutingPolicyRule
192
+ fields = '__all__'
170
193
171
194
class PrefixListRuleSerializer (NetBoxModelSerializer ):
172
- prefix_list = NestedPrefixListSerializer ()
195
+ prefix_list = NestedPrefixListSerializer ()
196
+ prefix = NestedPrefixSerializer (required = False , allow_null = True )
173
197
174
198
class Meta :
175
199
model = PrefixListRule
0 commit comments