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()
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')
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')
55 subnets = serializers.HyperlinkedRelatedField(view_name='subnet-detail')
75 class SliceMembershipSerializer(serializers.HyperlinkedModelSerializer):
76 id = serializers.Field()
77 slice = serializers.HyperlinkedRelatedField(view_name='slice-detail')
78 user = serializers.HyperlinkedRelatedField(view_name='user-detail')
79 role = serializers.HyperlinkedRelatedField(view_name='role-detail')
87 class SubnetSerializer(serializers.HyperlinkedModelSerializer):
88 id = serializers.Field()
89 slice = serializers.HyperlinkedRelatedField(view_name='slice-detail')
100 class SiteSerializer(serializers.HyperlinkedModelSerializer):
102 #Experimenting with whether to use ids, hyperlinks, or nested includes
103 #slices = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
104 #slices = serializers.RelatedField(many=True, read_only=True)
105 #slices = SliceSerializer(many=True)
106 # HyperlinkedModelSerializer doesn't include the id by default
107 id = serializers.Field()
108 slices = serializers.HyperlinkedRelatedField(many=True, read_only=True,view_name='slice-detail')
109 deployment_networks = serializers.HyperlinkedRelatedField(many=True, read_only=True,view_name='deploymentnetwork-detail')
116 'deployment_networks',
129 class SitePrivilegeSerializer(serializers.HyperlinkedModelSerializer):
130 id = serializers.Field()
131 site = serializers.HyperlinkedRelatedField(view_name='site-detail')
132 user = serializers.HyperlinkedRelatedField(view_name='user-detail')
133 role = serializers.HyperlinkedRelatedField(view_name='role-detail')
135 model = SitePrivilege
141 class DeploymentNetworkSerializer(serializers.HyperlinkedModelSerializer):
143 # HyperlinkedModelSerializer doesn't include the id by default
144 id = serializers.Field()
145 sites = serializers.HyperlinkedRelatedField(view_name='deploymentnetwork-detail')
147 model = DeploymentNetwork
153 class SliverSerializer(serializers.HyperlinkedModelSerializer):
154 # HyperlinkedModelSerializer doesn't include the id by default
155 id = serializers.Field()
156 flavor = serializers.HyperlinkedRelatedField(view_name='flavor-detail')
157 image = serializers.HyperlinkedRelatedField(view_name='image-detail')
158 key = serializers.HyperlinkedRelatedField(view_name='key-detail')
159 slice = serializers.HyperlinkedRelatedField(view_name='slice-detail')
160 deployment_network = serializers.HyperlinkedRelatedField(view_name='deployment_network-detail')
161 node = serializers.HyperlinkedRelatedField(view_name='node-detail')
164 #slice = serializers.PrimaryKeyRelatedField(read_only=True)
175 'deployment_network',
178 class NodeSerializer(serializers.HyperlinkedModelSerializer):
179 # HyperlinkedModelSerializer doesn't include the id by default
180 id = serializers.Field()
186 class ImageSerializer(serializers.HyperlinkedModelSerializer):
187 # HyperlinkedModelSerializer doesn't include the id by default
188 id = serializers.Field()
197 class FlavorSerializer(serializers.HyperlinkedModelSerializer):
198 # HyperlinkedModelSerializer doesn't include the id by default
199 id = serializers.Field()
210 Role: RoleSerializer,
211 User: UserSerializer,
213 Site: SiteSerializer,
214 SitePrivilege: SitePrivilegeSerializer,
215 Slice: SliceSerializer,
216 SliceMembership: SliceMembershipSerializer,
217 Subnet: SubnetSerializer,
218 Node: NodeSerializer,
219 Sliver: SliverSerializer,
220 DeploymentNetwork: DeploymentNetworkSerializer,
221 Image: ImageSerializer,
222 Flavor: FlavorSerializer,