blob: 81a4ba84d5ba53a404c234a4f1804a98a1993c69 [file] [log] [blame]
Tony Mack7130ac32013-03-22 21:58:00 -04001from django.forms import widgets
2from rest_framework import serializers
Tony Mack0e17ee22013-04-06 20:04:02 -04003from plstackapi.planetstack.models import *
Tony Mack7130ac32013-03-22 21:58:00 -04004
5
Tony Macka28f1cd2013-04-07 20:02:31 -04006class RoleSerializer(serializers.HyperlinkedModelSerializer):
Tony Macka2dfb372013-04-09 11:02:32 -04007 # HyperlinkedModelSerializer doesn't include the id by default
8 id = serializers.Field()
9
Tony Macka28f1cd2013-04-07 20:02:31 -040010 class Meta:
11 model = Role
Tony Mack879d14a2013-04-09 09:34:19 -040012 fields = ('id',
13 'role_id',
Tony Macka28f1cd2013-04-07 20:02:31 -040014 'role_type')
15
Tony Mack5cc16ba2013-04-09 10:30:45 -040016
17class UserSerializer(serializers.HyperlinkedModelSerializer):
Tony Macka2dfb372013-04-09 11:02:32 -040018 # HyperlinkedModelSerializer doesn't include the id by default
19 id = serializers.Field()
Tony Mack5cc16ba2013-04-09 10:30:45 -040020 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')
23 class Meta:
24 model = User
25 fields = ('id',
26 'user_id',
27 'firstname',
28 'lastname',
29 'email',
30 'phone',
31 'user_url',
32 'is_admin',
33 'site',
34 'slice_memberships',
35 'site_privileges')
36
37
38
Tony Mack7130ac32013-03-22 21:58:00 -040039class SliceSerializer(serializers.HyperlinkedModelSerializer):
Tony Macka2dfb372013-04-09 11:02:32 -040040 # HyperlinkedModelSerializer doesn't include the id by default
41 id = serializers.Field()
Tony Mack7130ac32013-03-22 21:58:00 -040042 site = serializers.HyperlinkedRelatedField(view_name='site-detail')
43
44 class Meta:
45 model = Slice
Tony Mack879d14a2013-04-09 09:34:19 -040046 fields = ('id',
47 'url',
Tony Mack7130ac32013-03-22 21:58:00 -040048 'name',
49 'instantiation',
50 'omf_friendly',
51 'description',
52 'slice_url',
53 'site',
54 'updated',
55 'created')
56
57class SiteSerializer(serializers.HyperlinkedModelSerializer):
58
59 #Experimenting with whether to use ids, hyperlinks, or nested includes
60 #slices = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
61 #slices = serializers.RelatedField(many=True, read_only=True)
62 #slices = SliceSerializer(many=True)
Tony Macka2dfb372013-04-09 11:02:32 -040063 # HyperlinkedModelSerializer doesn't include the id by default
64 id = serializers.Field()
Tony Mack7130ac32013-03-22 21:58:00 -040065 slices = serializers.HyperlinkedRelatedField(many=True, read_only=True,view_name='slice-detail')
Tony Mack6bdc4752013-04-09 01:05:37 -040066 deployment_networks = serializers.HyperlinkedRelatedField(many=True, read_only=True,view_name='sitedeploymentnetwork-detail')
Tony Mack7130ac32013-03-22 21:58:00 -040067
68 class Meta:
69 model = Site
Tony Mack879d14a2013-04-09 09:34:19 -040070 fields = ('id',
71 'url',
Tony Mack7130ac32013-03-22 21:58:00 -040072 'name',
Tony Macke1ed6c72013-04-09 00:34:37 -040073 'deployment_networks',
Tony Mack7130ac32013-03-22 21:58:00 -040074 'slices',
75 'site_url',
76 'enabled',
77 'longitude',
78 'latitude',
79 'login_base',
Tony Macke87bffa2013-04-08 23:18:04 -040080 'tenant_id',
Tony Mack7130ac32013-03-22 21:58:00 -040081 'is_public',
82 'abbreviated_name',
83 'updated',
84 'created')
85
86class DeploymentNetworkSerializer(serializers.HyperlinkedModelSerializer):
87
Tony Macka2dfb372013-04-09 11:02:32 -040088 # HyperlinkedModelSerializer doesn't include the id by default
89 id = serializers.Field()
Tony Mack7130ac32013-03-22 21:58:00 -040090 sites = serializers.HyperlinkedRelatedField(view_name='sitedeploymentnetwork-detail')
91 class Meta:
92 model = DeploymentNetwork
Tony Mack879d14a2013-04-09 09:34:19 -040093 fields = ('id',
94 'name',
Tony Mack7130ac32013-03-22 21:58:00 -040095 'sites'
96 )
97
98class SiteDeploymentNetworkSerializer(serializers.HyperlinkedModelSerializer):
Tony Macka2dfb372013-04-09 11:02:32 -040099 # HyperlinkedModelSerializer doesn't include the id by default
100 id = serializers.Field()
Tony Mack7130ac32013-03-22 21:58:00 -0400101 site = serializers.HyperlinkedRelatedField(view_name='site-detail')
102 deploymentNetwork = serializers.HyperlinkedRelatedField(view_name='deploymentnetwork-detail')
103
104 class Meta:
105 model = SiteDeploymentNetwork
Tony Macka2dfb372013-04-09 11:02:32 -0400106 fields = ('id',
107 'url',
Tony Mack7130ac32013-03-22 21:58:00 -0400108 'site',
109 'deploymentNetwork')
110
Tony Macka2dfb372013-04-09 11:02:32 -0400111class SliverSerializer(serializers.HyperlinkedModelSerializer):
112 # HyperlinkedModelSerializer doesn't include the id by default
113 id = serializers.Field()
Tony Mack7130ac32013-03-22 21:58:00 -0400114 slice = serializers.RelatedField(read_only=True)
115 #slice = serializers.PrimaryKeyRelatedField(read_only=True)
116
117 class Meta:
118 model = Sliver
119 fields = ('id',
120 'slice',
Tony Mack53310082013-04-09 09:26:12 -0400121 'name')
Tony Mack7130ac32013-03-22 21:58:00 -0400122
Tony Macka2dfb372013-04-09 11:02:32 -0400123class NodeSerializer(serializers.HyperlinkedModelSerializer):
124 # HyperlinkedModelSerializer doesn't include the id by default
125 id = serializers.Field()
Tony Mack7130ac32013-03-22 21:58:00 -0400126 class Meta:
127 model = Node
128 fields = ('id',
129 'name')
130
Tony Macka2dfb372013-04-09 11:02:32 -0400131class ImageSerializer(serializers.HyperlinkedModelSerializer):
132 # HyperlinkedModelSerializer doesn't include the id by default
133 id = serializers.Field()
Tony Mack53310082013-04-09 09:26:12 -0400134 class Meta:
135 model = Image
Tony Mack879d14a2013-04-09 09:34:19 -0400136 fields = ('id',
137 'image_id',
Tony Mack53310082013-04-09 09:26:12 -0400138 'name',
139 'disk_format',
140 'container_format')
141
Tony Macka2dfb372013-04-09 11:02:32 -0400142class FlavorSerializer(serializers.HyperlinkedModelSerializer):
143 # HyperlinkedModelSerializer doesn't include the id by default
144 id = serializers.Field()
Tony Mack53310082013-04-09 09:26:12 -0400145 class Meta:
146 model = Flavor
Tony Mack879d14a2013-04-09 09:34:19 -0400147 fields = ('id',
148 'flavor_id',
Tony Mack53310082013-04-09 09:26:12 -0400149 'name',
150 'memory_mb',
151 'disk_gb',
152 'vcpus')
Tony Mack7130ac32013-03-22 21:58:00 -0400153
Tony Macka28f1cd2013-04-07 20:02:31 -0400154serializerLookUp = {
155 Role: RoleSerializer,
Tony Macka2dfb372013-04-09 11:02:32 -0400156 User: UserSerializer,
Tony Macka28f1cd2013-04-07 20:02:31 -0400157 Site: SiteSerializer,
Tony Mack7130ac32013-03-22 21:58:00 -0400158 Slice: SliceSerializer,
159 Node: NodeSerializer,
160 Sliver: SliverSerializer,
161 DeploymentNetwork: DeploymentNetworkSerializer,
162 SiteDeploymentNetwork: SiteDeploymentNetworkSerializer,
Tony Mack53310082013-04-09 09:26:12 -0400163 Image: ImageSerializer,
164 Flavor: FlavorSerializer,
Tony Mack7130ac32013-03-22 21:58:00 -0400165 None: None,
166 }
Tony Mack53310082013-04-09 09:26:12 -0400167