blob: d4bbc9484f9bc819ec3159f5bc7e297e17f3eb11 [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):
7
8 class Meta:
9 model = Role
Tony Mack879d14a2013-04-09 09:34:19 -040010 fields = ('id',
11 'role_id',
Tony Macka28f1cd2013-04-07 20:02:31 -040012 'role_type')
13
Tony Mack5cc16ba2013-04-09 10:30:45 -040014
15class UserSerializer(serializers.HyperlinkedModelSerializer):
16 site = serializers.HyperlinkedRelatedField(view_name='site-detail')
17 slice_memberships = serializers.HyperlinkedRelatedField(view_name='slice-membership-detail')
18 site_privileges = serializers.HyperlinkedRelatedField(view_name='site-privilege-detail')
19 class Meta:
20 model = User
21 fields = ('id',
22 'user_id',
23 'firstname',
24 'lastname',
25 'email',
26 'phone',
27 'user_url',
28 'is_admin',
29 'site',
30 'slice_memberships',
31 'site_privileges')
32
33
34
Tony Mack7130ac32013-03-22 21:58:00 -040035class SliceSerializer(serializers.HyperlinkedModelSerializer):
36
37 site = serializers.HyperlinkedRelatedField(view_name='site-detail')
38
39 class Meta:
40 model = Slice
Tony Mack879d14a2013-04-09 09:34:19 -040041 fields = ('id',
42 'url',
Tony Mack7130ac32013-03-22 21:58:00 -040043 'name',
44 'instantiation',
45 'omf_friendly',
46 'description',
47 'slice_url',
48 'site',
49 'updated',
50 'created')
51
52class SiteSerializer(serializers.HyperlinkedModelSerializer):
53
54 #Experimenting with whether to use ids, hyperlinks, or nested includes
55 #slices = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
56 #slices = serializers.RelatedField(many=True, read_only=True)
57 #slices = SliceSerializer(many=True)
58 slices = serializers.HyperlinkedRelatedField(many=True, read_only=True,view_name='slice-detail')
Tony Mack6bdc4752013-04-09 01:05:37 -040059 deployment_networks = serializers.HyperlinkedRelatedField(many=True, read_only=True,view_name='sitedeploymentnetwork-detail')
Tony Mack7130ac32013-03-22 21:58:00 -040060
61 class Meta:
62 model = Site
Tony Mack879d14a2013-04-09 09:34:19 -040063 fields = ('id',
64 'url',
Tony Mack7130ac32013-03-22 21:58:00 -040065 'name',
Tony Macke1ed6c72013-04-09 00:34:37 -040066 'deployment_networks',
Tony Mack7130ac32013-03-22 21:58:00 -040067 'slices',
68 'site_url',
69 'enabled',
70 'longitude',
71 'latitude',
72 'login_base',
Tony Macke87bffa2013-04-08 23:18:04 -040073 'tenant_id',
Tony Mack7130ac32013-03-22 21:58:00 -040074 'is_public',
75 'abbreviated_name',
76 'updated',
77 'created')
78
79class DeploymentNetworkSerializer(serializers.HyperlinkedModelSerializer):
80
81 sites = serializers.HyperlinkedRelatedField(view_name='sitedeploymentnetwork-detail')
82 class Meta:
83 model = DeploymentNetwork
Tony Mack879d14a2013-04-09 09:34:19 -040084 fields = ('id',
85 'name',
Tony Mack7130ac32013-03-22 21:58:00 -040086 'sites'
87 )
88
89class SiteDeploymentNetworkSerializer(serializers.HyperlinkedModelSerializer):
90
91 site = serializers.HyperlinkedRelatedField(view_name='site-detail')
92 deploymentNetwork = serializers.HyperlinkedRelatedField(view_name='deploymentnetwork-detail')
93
94 class Meta:
95 model = SiteDeploymentNetwork
96 fields = ('url',
97 'site',
98 'deploymentNetwork')
99
100class SliverSerializer(serializers.ModelSerializer):
101 slice = serializers.RelatedField(read_only=True)
102 #slice = serializers.PrimaryKeyRelatedField(read_only=True)
103
104 class Meta:
105 model = Sliver
106 fields = ('id',
107 'slice',
Tony Mack53310082013-04-09 09:26:12 -0400108 'name')
Tony Mack7130ac32013-03-22 21:58:00 -0400109
110class NodeSerializer(serializers.ModelSerializer):
111
112 class Meta:
113 model = Node
114 fields = ('id',
115 'name')
116
Tony Mack53310082013-04-09 09:26:12 -0400117class ImageSerializer(serializers.ModelSerializer):
118
119 class Meta:
120 model = Image
Tony Mack879d14a2013-04-09 09:34:19 -0400121 fields = ('id',
122 'image_id',
Tony Mack53310082013-04-09 09:26:12 -0400123 'name',
124 'disk_format',
125 'container_format')
126
127class FlavorSerializer(serializers.ModelSerializer):
128
129 class Meta:
130 model = Flavor
Tony Mack879d14a2013-04-09 09:34:19 -0400131 fields = ('id',
132 'flavor_id',
Tony Mack53310082013-04-09 09:26:12 -0400133 'name',
134 'memory_mb',
135 'disk_gb',
136 'vcpus')
Tony Mack7130ac32013-03-22 21:58:00 -0400137
Tony Macka28f1cd2013-04-07 20:02:31 -0400138serializerLookUp = {
139 Role: RoleSerializer,
140 Site: SiteSerializer,
Tony Mack7130ac32013-03-22 21:58:00 -0400141 Slice: SliceSerializer,
142 Node: NodeSerializer,
143 Sliver: SliverSerializer,
144 DeploymentNetwork: DeploymentNetworkSerializer,
145 SiteDeploymentNetwork: SiteDeploymentNetworkSerializer,
Tony Mack53310082013-04-09 09:26:12 -0400146 Image: ImageSerializer,
147 Flavor: FlavorSerializer,
Tony Mack7130ac32013-03-22 21:58:00 -0400148 None: None,
149 }
Tony Mack53310082013-04-09 09:26:12 -0400150