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()
16 class UserSerializer(serializers.HyperlinkedModelSerializer):
17 # HyperlinkedModelSerializer doesn't include the id by default
18 id = serializers.Field()
19 site = serializers.HyperlinkedRelatedField(view_name='site-detail')
20 slice_memberships = serializers.HyperlinkedRelatedField(view_name='slice-membership-detail')
21 site_privileges = serializers.HyperlinkedRelatedField(view_name='site-privilege-detail')
38 class KeySerializer(serializers.HyperlinkedModelSerializer):
39 id = serializers.Field()
40 user = serializers.HyperlinkedRelatedField(view_name='user-detail')
51 class SliceSerializer(serializers.HyperlinkedModelSerializer):
52 # HyperlinkedModelSerializer doesn't include the id by default
53 id = serializers.Field()
54 site = serializers.HyperlinkedRelatedField(view_name='site-detail')
55 slivers = serializers.HyperlinkedRelatedField(view_name='sliver-detail')
74 class SliceMembershipSerializer(serializers.HyperlinkedModelSerializer):
75 id = serializers.Field()
76 slice = serializers.HyperlinkedRelatedField(view_name='slice-detail')
77 user = serializers.HyperlinkedRelatedField(view_name='user-detail')
78 role = serializers.HyperlinkedRelatedField(view_name='role-detail')
86 class SiteSerializer(serializers.HyperlinkedModelSerializer):
88 #Experimenting with whether to use ids, hyperlinks, or nested includes
89 #slices = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
90 #slices = serializers.RelatedField(many=True, read_only=True)
91 #slices = SliceSerializer(many=True)
92 # HyperlinkedModelSerializer doesn't include the id by default
93 id = serializers.Field()
94 slices = serializers.HyperlinkedRelatedField(many=True, read_only=True,view_name='slice-detail')
113 class SitePrivilegeSerializer(serializers.HyperlinkedModelSerializer):
114 id = serializers.Field()
115 site = serializers.HyperlinkedRelatedField(view_name='site-detail')
116 user = serializers.HyperlinkedRelatedField(view_name='user-detail')
117 role = serializers.HyperlinkedRelatedField(view_name='role-detail')
119 model = SitePrivilege
125 class DeploymentNetworkSerializer(serializers.HyperlinkedModelSerializer):
127 # HyperlinkedModelSerializer doesn't include the id by default
128 id = serializers.Field()
129 sites = serializers.HyperlinkedRelatedField(view_name='deploymentnetwork-detail')
131 model = DeploymentNetwork
137 class SliverSerializer(serializers.HyperlinkedModelSerializer):
138 # HyperlinkedModelSerializer doesn't include the id by default
139 id = serializers.Field()
140 image = serializers.HyperlinkedRelatedField(view_name='image-detail')
141 key = serializers.HyperlinkedRelatedField(view_name='key-detail')
142 slice = serializers.HyperlinkedRelatedField(view_name='slice-detail')
143 deployment_network = serializers.HyperlinkedRelatedField(view_name='deployment_network-detail')
144 node = serializers.HyperlinkedRelatedField(view_name='node-detail')
147 #slice = serializers.PrimaryKeyRelatedField(read_only=True)
162 class NodeSerializer(serializers.HyperlinkedModelSerializer):
163 # HyperlinkedModelSerializer doesn't include the id by default
164 id = serializers.Field()
170 class ImageSerializer(serializers.HyperlinkedModelSerializer):
171 # HyperlinkedModelSerializer doesn't include the id by default
172 id = serializers.Field()
182 Role: RoleSerializer,
183 User: UserSerializer,
185 Site: SiteSerializer,
186 SitePrivilege: SitePrivilegeSerializer,
187 Slice: SliceSerializer,
188 SliceMembership: SliceMembershipSerializer,
189 Node: NodeSerializer,
190 Sliver: SliverSerializer,
191 DeploymentNetwork: DeploymentNetworkSerializer,
192 Image: ImageSerializer,