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='siteprivilege-detail')
38 class SliceSerializer(serializers.HyperlinkedModelSerializer):
39 # HyperlinkedModelSerializer doesn't include the id by default
40 id = serializers.Field()
41 site = serializers.HyperlinkedRelatedField(view_name='site-detail')
42 slivers = serializers.HyperlinkedRelatedField(view_name='sliver-detail')
61 class SliceMembershipSerializer(serializers.HyperlinkedModelSerializer):
62 id = serializers.Field()
63 slice = serializers.HyperlinkedRelatedField(view_name='slice-detail')
64 user = serializers.HyperlinkedRelatedField(view_name='user-detail')
65 role = serializers.HyperlinkedRelatedField(view_name='role-detail')
67 model = SliceMembership
73 class SiteSerializer(serializers.HyperlinkedModelSerializer):
75 #Experimenting with whether to use ids, hyperlinks, or nested includes
76 #slices = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
77 #slices = serializers.RelatedField(many=True, read_only=True)
78 #slices = SliceSerializer(many=True)
79 # HyperlinkedModelSerializer doesn't include the id by default
80 id = serializers.Field()
81 slices = serializers.HyperlinkedRelatedField(many=True, read_only=True,view_name='slice-detail')
100 class SitePrivilegeSerializer(serializers.HyperlinkedModelSerializer):
101 id = serializers.Field()
102 site = serializers.HyperlinkedRelatedField(view_name='site-detail')
103 user = serializers.HyperlinkedRelatedField(view_name='user-detail')
104 role = serializers.HyperlinkedRelatedField(view_name='role-detail')
106 model = SitePrivilege
112 class DeploymentSerializer(serializers.HyperlinkedModelSerializer):
114 # HyperlinkedModelSerializer doesn't include the id by default
115 id = serializers.Field()
116 sites = serializers.HyperlinkedRelatedField(view_name='site-detail')
124 class SliverSerializer(serializers.HyperlinkedModelSerializer):
125 # HyperlinkedModelSerializer doesn't include the id by default
126 id = serializers.Field()
127 image = serializers.HyperlinkedRelatedField(view_name='image-detail')
128 slice = serializers.HyperlinkedRelatedField(view_name='slice-detail')
129 deployment = serializers.HyperlinkedRelatedField(view_name='deployment-detail')
130 node = serializers.HyperlinkedRelatedField(view_name='node-detail')
133 #slice = serializers.PrimaryKeyRelatedField(read_only=True)
147 class NodeSerializer(serializers.HyperlinkedModelSerializer):
148 # HyperlinkedModelSerializer doesn't include the id by default
149 id = serializers.Field()
155 class ImageSerializer(serializers.HyperlinkedModelSerializer):
156 # HyperlinkedModelSerializer doesn't include the id by default
157 id = serializers.Field()
167 Role: RoleSerializer,
168 User: UserSerializer,
169 Site: SiteSerializer,
170 SitePrivilege: SitePrivilegeSerializer,
171 Slice: SliceSerializer,
172 SliceMembership: SliceMembershipSerializer,
173 Node: NodeSerializer,
174 Sliver: SliverSerializer,
175 Deployment: DeploymentSerializer,
176 Image: ImageSerializer,