enable users
[plstackapi.git] / plstackapi / planetstack / serializers.py
1 from django.forms import widgets
2 from rest_framework import serializers
3 from plstackapi.planetstack.models import *
4
5
6 class RoleSerializer(serializers.HyperlinkedModelSerializer):
7     
8     class Meta:
9         model = Role
10         fields = ('id', 
11                   'role_id',
12                   'role_type')
13
14
15 class 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
35 class SliceSerializer(serializers.HyperlinkedModelSerializer):
36
37     site = serializers.HyperlinkedRelatedField(view_name='site-detail')
38
39     class Meta:
40         model = Slice
41         fields = ('id',
42                   'url',
43                   'name',
44                   'instantiation',
45                   'omf_friendly',
46                   'description',
47                   'slice_url',
48                   'site',
49                   'updated',
50                   'created')
51
52 class 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')
59     deployment_networks = serializers.HyperlinkedRelatedField(many=True, read_only=True,view_name='sitedeploymentnetwork-detail')
60
61     class Meta:
62         model = Site
63         fields = ('id',
64                   'url',
65                   'name',
66                   'deployment_networks',
67                   'slices',
68                   'site_url',
69                   'enabled',
70                   'longitude',
71                   'latitude',
72                   'login_base',
73                   'tenant_id',
74                   'is_public',
75                   'abbreviated_name',
76                   'updated',
77                   'created')
78
79 class DeploymentNetworkSerializer(serializers.HyperlinkedModelSerializer):
80
81     sites = serializers.HyperlinkedRelatedField(view_name='sitedeploymentnetwork-detail')
82     class Meta:
83         model = DeploymentNetwork
84         fields = ('id',
85                   'name',
86                   'sites'
87                  )
88
89 class 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
100 class 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',
108                   'name')
109
110 class NodeSerializer(serializers.ModelSerializer):
111
112     class Meta:
113         model = Node
114         fields = ('id',
115                  'name')
116
117 class ImageSerializer(serializers.ModelSerializer):
118
119     class Meta:
120         model = Image
121         fields = ('id',
122                   'image_id',
123                   'name',
124                   'disk_format',
125                   'container_format')
126
127 class FlavorSerializer(serializers.ModelSerializer):
128
129     class Meta:
130         model = Flavor
131         fields = ('id',
132                   'flavor_id',
133                   'name',
134                   'memory_mb',
135                   'disk_gb',
136                   'vcpus')
137
138 serializerLookUp = { 
139                  Role: RoleSerializer,
140                  Site: SiteSerializer,
141                  Slice: SliceSerializer,
142                  Node: NodeSerializer,
143                  Sliver: SliverSerializer,
144                  DeploymentNetwork: DeploymentNetworkSerializer,
145                  SiteDeploymentNetwork: SiteDeploymentNetworkSerializer,
146                  Image: ImageSerializer,
147                  Flavor: FlavorSerializer, 
148                  None: None,
149                 }
150