1 from django.forms import widgets
2 from rest_framework import serializers
3 from plstackapi.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')
37 class KeySerializer(serializers.HyperlinkedModelSerializer):
38 id = serializers.Field()
39 user = serializers.HyperlinkedRelatedField(view_name='user-detail')
50 class SliceSerializer(serializers.HyperlinkedModelSerializer):
51 # HyperlinkedModelSerializer doesn't include the id by default
52 id = serializers.Field()
53 site = serializers.HyperlinkedRelatedField(view_name='site-detail')
54 slivers = serializers.HyperlinkedRelatedField(view_name='sliver-detail')
73 class SliceMembershipSerializer(serializers.HyperlinkedModelSerializer):
74 id = serializers.Field()
75 slice = serializers.HyperlinkedRelatedField(view_name='slice-detail')
76 user = serializers.HyperlinkedRelatedField(view_name='user-detail')
77 role = serializers.HyperlinkedRelatedField(view_name='role-detail')
85 class SiteSerializer(serializers.HyperlinkedModelSerializer):
87 #Experimenting with whether to use ids, hyperlinks, or nested includes
88 #slices = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
89 #slices = serializers.RelatedField(many=True, read_only=True)
90 #slices = SliceSerializer(many=True)
91 # HyperlinkedModelSerializer doesn't include the id by default
92 id = serializers.Field()
93 slices = serializers.HyperlinkedRelatedField(many=True, read_only=True,view_name='slice-detail')
112 class SitePrivilegeSerializer(serializers.HyperlinkedModelSerializer):
113 id = serializers.Field()
114 site = serializers.HyperlinkedRelatedField(view_name='site-detail')
115 user = serializers.HyperlinkedRelatedField(view_name='user-detail')
116 role = serializers.HyperlinkedRelatedField(view_name='role-detail')
118 model = SitePrivilege
124 class DeploymentNetworkSerializer(serializers.HyperlinkedModelSerializer):
126 # HyperlinkedModelSerializer doesn't include the id by default
127 id = serializers.Field()
128 sites = serializers.HyperlinkedRelatedField(view_name='deploymentnetwork-detail')
130 model = DeploymentNetwork
136 class SliverSerializer(serializers.HyperlinkedModelSerializer):
137 # HyperlinkedModelSerializer doesn't include the id by default
138 id = serializers.Field()
139 image = serializers.HyperlinkedRelatedField(view_name='image-detail')
140 key = serializers.HyperlinkedRelatedField(view_name='key-detail')
141 slice = serializers.HyperlinkedRelatedField(view_name='slice-detail')
142 deployment_network = serializers.HyperlinkedRelatedField(view_name='deployment_network-detail')
143 node = serializers.HyperlinkedRelatedField(view_name='node-detail')
146 #slice = serializers.PrimaryKeyRelatedField(read_only=True)
161 class NodeSerializer(serializers.HyperlinkedModelSerializer):
162 # HyperlinkedModelSerializer doesn't include the id by default
163 id = serializers.Field()
169 class ImageSerializer(serializers.HyperlinkedModelSerializer):
170 # HyperlinkedModelSerializer doesn't include the id by default
171 id = serializers.Field()
181 Role: RoleSerializer,
182 PLUser: UserSerializer,
184 Site: SiteSerializer,
185 SitePrivilege: SitePrivilegeSerializer,
186 Slice: SliceSerializer,
187 SliceMembership: SliceMembershipSerializer,
188 Subnet: SubnetSerializer,
189 Node: NodeSerializer,
190 Sliver: SliverSerializer,
191 DeploymentNetwork: DeploymentNetworkSerializer,
192 Image: ImageSerializer,