Repository navigation
Expand file tree
/
Copy pathserializers.py
More file actions
82 lines (55 loc) · 2.34 KB
/
Copy pathserializers.py
File metadata and controls
82 lines (55 loc) · 2.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
from rest_framework import serializers
from models import *
class CloudSerializer(serializers.ModelSerializer):
class Meta:
model = Cloud
exclude = ('creator', 'updated_on')
class SubnetSerializer(serializers.ModelSerializer):
class Meta:
model = Subnet
class NetworkSerializer(serializers.ModelSerializer):
subnets = SubnetSerializer(many=True, read_only=True)
class Meta:
model = Network
exclude = ('creator', 'created_on', 'updated_on',)
class RouterSerializer(serializers.ModelSerializer):
class Meta:
model = Router
exclude = ('creator', 'created_on', 'updated_on',)
class TenantListSerializer(serializers.ModelSerializer):
class Meta:
model = Tenant
fields = ('id', 'tenant_name', 'enabled', 'description')
class TenantSerializer(serializers.ModelSerializer):
networks = NetworkSerializer(many=True, read_only=True)
class Meta:
model = Tenant
exclude = ('creator', 'created_on', 'updated_on',)
class TrafficListSerializer(serializers.ModelSerializer):
class Meta:
model = Traffic
exclude = ('creator', 'updated_on',)
class TrafficSerializer(serializers.ModelSerializer):
class Meta:
model = Traffic
exclude = ('creator', 'updated_on',)
class TrafficNetworksMapSerializer(serializers.ModelSerializer):
class Meta:
model = TrafficNetworksMap
fields = ("network", "ip_range_start", "ip_range_end", "endpoint_count")
class TrafficRetrieveSerializer(serializers.ModelSerializer):
tenants = TenantSerializer(many=True, required=False)
selected_networks = serializers.SerializerMethodField()
class Meta:
model = Traffic
exclude = ('creator', 'updated_on',)
def get_selected_networks(self, traffic):
objs = traffic.selected_networks.through.objects.filter(traffic=traffic)
serializer = TrafficNetworksMapSerializer(objs, many=True)
return serializer.data
class EndpointSerializer(serializers.ModelSerializer):
network_id = serializers.IntegerField(source='network.id', read_only=True)
network_name = serializers.CharField(source="network.network_name", read_only=True)
class Meta:
model = Endpoint
fields = ('id', 'network_id', 'network_name', 'endpoint_id', 'name', 'status', 'ip_address', 'is_selected')