1 from django.forms import widgets
2 from rest_framework import serializers
3 from core.models import *
6 class RoleSerializer(serializers.HyperlinkedModelSerializer):
7 # HyperlinkedModelSerializer doesn't include the id by default
8 id = serializers.Field()
17 class UserSerializer(serializers.HyperlinkedModelSerializer):
18 # HyperlinkedModelSerializer doesn't include the id by default
19 id = serializers.Field()
20 site = serializers.HyperlinkedRelatedField(view_name='site-detail')
21 slice_memberships = serializers.HyperlinkedRelatedField(view_name='slice-membership-detail')
22 site_privileges = serializers.HyperlinkedRelatedField(view_name='site-privilege-detail')
40 class KeySerializer(serializers.HyperlinkedModelSerializer):
41 id = serializers.Field()
42 user = serializers.HyperlinkedRelatedField(view_name='user-detail')
53 class SliceSerializer(serializers.HyperlinkedModelSerializer):
54 # HyperlinkedModelSerializer doesn't include the id by default
55 id = serializers.Field()
56 site = serializers.HyperlinkedRelatedField(view_name='site-detail')
57 slivers = serializers.HyperlinkedRelatedField(view_name='sliver-detail')
76 class SliceMembershipSerializer(serializers.HyperlinkedModelSerializer):
77 id = serializers.Field()
78 slice = serializers.HyperlinkedRelatedField(view_name='slice-detail')
79 user = serializers.HyperlinkedRelatedField(view_name='user-detail')
80 role = serializers.HyperlinkedRelatedField(view_name='role-detail')
88 class SiteSerializer(serializers.HyperlinkedModelSerializer):
90 #Experimenting with whether to use ids, hyperlinks, or nested includes
91 #slices = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
92 #slices = serializers.RelatedField(many=True, read_only=True)
93 #slices = SliceSerializer(many=True)
94 # HyperlinkedModelSerializer doesn't include the id by default
95 id = serializers.Field()
96 slices = serializers.HyperlinkedRelatedField(many=True, read_only=True,view_name='slice-detail')
115 class SitePrivilegeSerializer(serializers.HyperlinkedModelSerializer):
116 id = serializers.Field()
117 site = serializers.HyperlinkedRelatedField(view_name='site-detail')
118 user = serializers.HyperlinkedRelatedField(view_name='user-detail')
119 role = serializers.HyperlinkedRelatedField(view_name='role-detail')
121 model = SitePrivilege
127 class DeploymentSerializer(serializers.HyperlinkedModelSerializer):
129 # HyperlinkedModelSerializer doesn't include the id by default
130 id = serializers.Field()
131 sites = serializers.HyperlinkedRelatedField(view_name='deploymentnetwork-detail')
139 class SliverSerializer(serializers.HyperlinkedModelSerializer):
140 # HyperlinkedModelSerializer doesn't include the id by default
141 id = serializers.Field()
142 image = serializers.HyperlinkedRelatedField(view_name='image-detail')
143 key = serializers.HyperlinkedRelatedField(view_name='key-detail')
144 slice = serializers.HyperlinkedRelatedField(view_name='slice-detail')
145 deployment_network = serializers.HyperlinkedRelatedField(view_name='deployment_network-detail')
146 node = serializers.HyperlinkedRelatedField(view_name='node-detail')
149 #slice = serializers.PrimaryKeyRelatedField(read_only=True)
164 class NodeSerializer(serializers.HyperlinkedModelSerializer):
165 # HyperlinkedModelSerializer doesn't include the id by default
166 id = serializers.Field()
172 class ImageSerializer(serializers.HyperlinkedModelSerializer):
173 # HyperlinkedModelSerializer doesn't include the id by default
174 id = serializers.Field()
184 Role: RoleSerializer,
185 User: UserSerializer,
187 Site: SiteSerializer,
188 SitePrivilege: SitePrivilegeSerializer,
189 Slice: SliceSerializer,
190 SliceMembership: SliceMembershipSerializer,
191 Node: NodeSerializer,
192 Sliver: SliverSerializer,
193 Deployment: DeploymentSerializer,
194 Image: ImageSerializer,