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')
36 class KeySerializer(serializers.HyperlinkedModelSerializer):
37 id = serializers.Field()
38 user = serializers.HyperlinkedRelatedField(view_name='user-detail')
49 class SliceSerializer(serializers.HyperlinkedModelSerializer):
50 # HyperlinkedModelSerializer doesn't include the id by default
51 id = serializers.Field()
52 site = serializers.HyperlinkedRelatedField(view_name='site-detail')
53 slivers = serializers.HyperlinkedRelatedField(view_name='sliver-detail')
54 subnet= serializers.HyperlinkedRelatedField(view_name='subnet-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 SubnetSerializer(serializers.HyperlinkedModelSerializer):
87 id = serializers.Field()
88 slice = serializers.HyperlinkedRelatedField(view_name='slice-detail')
99 class SiteSerializer(serializers.HyperlinkedModelSerializer):
101 #Experimenting with whether to use ids, hyperlinks, or nested includes
102 #slices = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
103 #slices = serializers.RelatedField(many=True, read_only=True)
104 #slices = SliceSerializer(many=True)
105 # HyperlinkedModelSerializer doesn't include the id by default
106 id = serializers.Field()
107 slices = serializers.HyperlinkedRelatedField(many=True, read_only=True,view_name='slice-detail')
126 class SitePrivilegeSerializer(serializers.HyperlinkedModelSerializer):
127 id = serializers.Field()
128 site = serializers.HyperlinkedRelatedField(view_name='site-detail')
129 user = serializers.HyperlinkedRelatedField(view_name='user-detail')
130 role = serializers.HyperlinkedRelatedField(view_name='role-detail')
132 model = SitePrivilege
138 class DeploymentNetworkSerializer(serializers.HyperlinkedModelSerializer):
140 # HyperlinkedModelSerializer doesn't include the id by default
141 id = serializers.Field()
142 sites = serializers.HyperlinkedRelatedField(view_name='deploymentnetwork-detail')
144 model = DeploymentNetwork
150 class SliverSerializer(serializers.HyperlinkedModelSerializer):
151 # HyperlinkedModelSerializer doesn't include the id by default
152 id = serializers.Field()
153 flavor = serializers.HyperlinkedRelatedField(view_name='flavor-detail')
154 image = serializers.HyperlinkedRelatedField(view_name='image-detail')
155 key = serializers.HyperlinkedRelatedField(view_name='key-detail')
156 slice = serializers.HyperlinkedRelatedField(view_name='slice-detail')
157 deployment_network = serializers.HyperlinkedRelatedField(view_name='deployment_network-detail')
158 node = serializers.HyperlinkedRelatedField(view_name='node-detail')
161 #slice = serializers.PrimaryKeyRelatedField(read_only=True)
175 class NodeSerializer(serializers.HyperlinkedModelSerializer):
176 # HyperlinkedModelSerializer doesn't include the id by default
177 id = serializers.Field()
183 class ImageSerializer(serializers.HyperlinkedModelSerializer):
184 # HyperlinkedModelSerializer doesn't include the id by default
185 id = serializers.Field()
194 class FlavorSerializer(serializers.HyperlinkedModelSerializer):
195 # HyperlinkedModelSerializer doesn't include the id by default
196 id = serializers.Field()
207 Role: RoleSerializer,
208 User: UserSerializer,
210 Site: SiteSerializer,
211 SitePrivilege: SitePrivilegeSerializer,
212 Slice: SliceSerializer,
213 SliceMembership: SliceMembershipSerializer,
214 Subnet: SubnetSerializer,
215 Node: NodeSerializer,
216 Sliver: SliverSerializer,
217 DeploymentNetwork: DeploymentNetworkSerializer,
218 Image: ImageSerializer,
219 Flavor: FlavorSerializer,