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 SliceSerializer(serializers.HyperlinkedModelSerializer):
41 # HyperlinkedModelSerializer doesn't include the id by default
42 id = serializers.Field()
43 site = serializers.HyperlinkedRelatedField(view_name='site-detail')
44 slivers = serializers.HyperlinkedRelatedField(view_name='sliver-detail')
63 class SliceMembershipSerializer(serializers.HyperlinkedModelSerializer):
64 id = serializers.Field()
65 slice = serializers.HyperlinkedRelatedField(view_name='slice-detail')
66 user = serializers.HyperlinkedRelatedField(view_name='user-detail')
67 role = serializers.HyperlinkedRelatedField(view_name='role-detail')
75 class SiteSerializer(serializers.HyperlinkedModelSerializer):
77 #Experimenting with whether to use ids, hyperlinks, or nested includes
78 #slices = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
79 #slices = serializers.RelatedField(many=True, read_only=True)
80 #slices = SliceSerializer(many=True)
81 # HyperlinkedModelSerializer doesn't include the id by default
82 id = serializers.Field()
83 slices = serializers.HyperlinkedRelatedField(many=True, read_only=True,view_name='slice-detail')
102 class SitePrivilegeSerializer(serializers.HyperlinkedModelSerializer):
103 id = serializers.Field()
104 site = serializers.HyperlinkedRelatedField(view_name='site-detail')
105 user = serializers.HyperlinkedRelatedField(view_name='user-detail')
106 role = serializers.HyperlinkedRelatedField(view_name='role-detail')
108 model = SitePrivilege
114 class DeploymentSerializer(serializers.HyperlinkedModelSerializer):
116 # HyperlinkedModelSerializer doesn't include the id by default
117 id = serializers.Field()
118 sites = serializers.HyperlinkedRelatedField(view_name='deploymentnetwork-detail')
126 class SliverSerializer(serializers.HyperlinkedModelSerializer):
127 # HyperlinkedModelSerializer doesn't include the id by default
128 id = serializers.Field()
129 image = serializers.HyperlinkedRelatedField(view_name='image-detail')
130 key = serializers.HyperlinkedRelatedField(view_name='key-detail')
131 slice = serializers.HyperlinkedRelatedField(view_name='slice-detail')
132 deployment_network = serializers.HyperlinkedRelatedField(view_name='deployment_network-detail')
133 node = serializers.HyperlinkedRelatedField(view_name='node-detail')
136 #slice = serializers.PrimaryKeyRelatedField(read_only=True)
151 class NodeSerializer(serializers.HyperlinkedModelSerializer):
152 # HyperlinkedModelSerializer doesn't include the id by default
153 id = serializers.Field()
159 class ImageSerializer(serializers.HyperlinkedModelSerializer):
160 # HyperlinkedModelSerializer doesn't include the id by default
161 id = serializers.Field()
171 Role: RoleSerializer,
172 User: UserSerializer,
173 Site: SiteSerializer,
174 SitePrivilege: SitePrivilegeSerializer,
175 Slice: SliceSerializer,
176 SliceMembership: SliceMembershipSerializer,
177 Node: NodeSerializer,
178 Sliver: SliverSerializer,
179 Deployment: DeploymentSerializer,
180 Image: ImageSerializer,