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')
39 class KeySerializer(serializers.HyperlinkedModelSerializer):
40 id = serializers.Field()
41 user = serializers.HyperlinkedRelatedField(view_name='user-detail')
52 class SliceSerializer(serializers.HyperlinkedModelSerializer):
53 # HyperlinkedModelSerializer doesn't include the id by default
54 id = serializers.Field()
55 site = serializers.HyperlinkedRelatedField(view_name='site-detail')
56 slivers = serializers.HyperlinkedRelatedField(view_name='sliver-detail')
75 class SliceMembershipSerializer(serializers.HyperlinkedModelSerializer):
76 id = serializers.Field()
77 slice = serializers.HyperlinkedRelatedField(view_name='slice-detail')
78 user = serializers.HyperlinkedRelatedField(view_name='user-detail')
79 role = serializers.HyperlinkedRelatedField(view_name='role-detail')
87 class SiteSerializer(serializers.HyperlinkedModelSerializer):
89 #Experimenting with whether to use ids, hyperlinks, or nested includes
90 #slices = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
91 #slices = serializers.RelatedField(many=True, read_only=True)
92 #slices = SliceSerializer(many=True)
93 # HyperlinkedModelSerializer doesn't include the id by default
94 id = serializers.Field()
95 slices = serializers.HyperlinkedRelatedField(many=True, read_only=True,view_name='slice-detail')
114 class SitePrivilegeSerializer(serializers.HyperlinkedModelSerializer):
115 id = serializers.Field()
116 site = serializers.HyperlinkedRelatedField(view_name='site-detail')
117 user = serializers.HyperlinkedRelatedField(view_name='user-detail')
118 role = serializers.HyperlinkedRelatedField(view_name='role-detail')
120 model = SitePrivilege
126 class DeploymentNetworkSerializer(serializers.HyperlinkedModelSerializer):
128 # HyperlinkedModelSerializer doesn't include the id by default
129 id = serializers.Field()
130 sites = serializers.HyperlinkedRelatedField(view_name='deploymentnetwork-detail')
132 model = DeploymentNetwork
138 class SliverSerializer(serializers.HyperlinkedModelSerializer):
139 # HyperlinkedModelSerializer doesn't include the id by default
140 id = serializers.Field()
141 image = serializers.HyperlinkedRelatedField(view_name='image-detail')
142 key = serializers.HyperlinkedRelatedField(view_name='key-detail')
143 slice = serializers.HyperlinkedRelatedField(view_name='slice-detail')
144 deployment_network = serializers.HyperlinkedRelatedField(view_name='deployment_network-detail')
145 node = serializers.HyperlinkedRelatedField(view_name='node-detail')
148 #slice = serializers.PrimaryKeyRelatedField(read_only=True)
163 class NodeSerializer(serializers.HyperlinkedModelSerializer):
164 # HyperlinkedModelSerializer doesn't include the id by default
165 id = serializers.Field()
171 class ImageSerializer(serializers.HyperlinkedModelSerializer):
172 # HyperlinkedModelSerializer doesn't include the id by default
173 id = serializers.Field()
183 Role: RoleSerializer,
184 User: UserSerializer,
186 Site: SiteSerializer,
187 SitePrivilege: SitePrivilegeSerializer,
188 Slice: SliceSerializer,
189 SliceMembership: SliceMembershipSerializer,
190 Node: NodeSerializer,
191 Sliver: SliverSerializer,
192 DeploymentNetwork: DeploymentNetworkSerializer,
193 Image: ImageSerializer,