blob: a0a502eeb513e1a6e0b3b9432edd1eb476db76d0 [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 Mack7130ac32013-03-22 21:58:00 -040014class SliceSerializer(serializers.HyperlinkedModelSerializer):
15
16 site = serializers.HyperlinkedRelatedField(view_name='site-detail')
17
18 class Meta:
19 model = Slice
Tony Mack879d14a2013-04-09 09:34:19 -040020 fields = ('id',
21 'url',
Tony Mack7130ac32013-03-22 21:58:00 -040022 'name',
23 'instantiation',
24 'omf_friendly',
25 'description',
26 'slice_url',
27 'site',
28 'updated',
29 'created')
30
31class SiteSerializer(serializers.HyperlinkedModelSerializer):
32
33 #Experimenting with whether to use ids, hyperlinks, or nested includes
34 #slices = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
35 #slices = serializers.RelatedField(many=True, read_only=True)
36 #slices = SliceSerializer(many=True)
37 slices = serializers.HyperlinkedRelatedField(many=True, read_only=True,view_name='slice-detail')
Tony Mack6bdc4752013-04-09 01:05:37 -040038 deployment_networks = serializers.HyperlinkedRelatedField(many=True, read_only=True,view_name='sitedeploymentnetwork-detail')
Tony Mack7130ac32013-03-22 21:58:00 -040039
40 class Meta:
41 model = Site
Tony Mack879d14a2013-04-09 09:34:19 -040042 fields = ('id',
43 'url',
Tony Mack7130ac32013-03-22 21:58:00 -040044 'name',
Tony Macke1ed6c72013-04-09 00:34:37 -040045 'deployment_networks',
Tony Mack7130ac32013-03-22 21:58:00 -040046 'slices',
47 'site_url',
48 'enabled',
49 'longitude',
50 'latitude',
51 'login_base',
Tony Macke87bffa2013-04-08 23:18:04 -040052 'tenant_id',
Tony Mack7130ac32013-03-22 21:58:00 -040053 'is_public',
54 'abbreviated_name',
55 'updated',
56 'created')
57
58class DeploymentNetworkSerializer(serializers.HyperlinkedModelSerializer):
59
60 sites = serializers.HyperlinkedRelatedField(view_name='sitedeploymentnetwork-detail')
61 class Meta:
62 model = DeploymentNetwork
Tony Mack879d14a2013-04-09 09:34:19 -040063 fields = ('id',
64 'name',
Tony Mack7130ac32013-03-22 21:58:00 -040065 'sites'
66 )
67
68class SiteDeploymentNetworkSerializer(serializers.HyperlinkedModelSerializer):
69
70 site = serializers.HyperlinkedRelatedField(view_name='site-detail')
71 deploymentNetwork = serializers.HyperlinkedRelatedField(view_name='deploymentnetwork-detail')
72
73 class Meta:
74 model = SiteDeploymentNetwork
75 fields = ('url',
76 'site',
77 'deploymentNetwork')
78
79class SliverSerializer(serializers.ModelSerializer):
80 slice = serializers.RelatedField(read_only=True)
81 #slice = serializers.PrimaryKeyRelatedField(read_only=True)
82
83 class Meta:
84 model = Sliver
85 fields = ('id',
86 'slice',
Tony Mack53310082013-04-09 09:26:12 -040087 'name')
Tony Mack7130ac32013-03-22 21:58:00 -040088
89class NodeSerializer(serializers.ModelSerializer):
90
91 class Meta:
92 model = Node
93 fields = ('id',
94 'name')
95
Tony Mack53310082013-04-09 09:26:12 -040096class ImageSerializer(serializers.ModelSerializer):
97
98 class Meta:
99 model = Image
Tony Mack879d14a2013-04-09 09:34:19 -0400100 fields = ('id',
101 'image_id',
Tony Mack53310082013-04-09 09:26:12 -0400102 'name',
103 'disk_format',
104 'container_format')
105
106class FlavorSerializer(serializers.ModelSerializer):
107
108 class Meta:
109 model = Flavor
Tony Mack879d14a2013-04-09 09:34:19 -0400110 fields = ('id',
111 'flavor_id',
Tony Mack53310082013-04-09 09:26:12 -0400112 'name',
113 'memory_mb',
114 'disk_gb',
115 'vcpus')
Tony Mack7130ac32013-03-22 21:58:00 -0400116
Tony Macka28f1cd2013-04-07 20:02:31 -0400117serializerLookUp = {
118 Role: RoleSerializer,
119 Site: SiteSerializer,
Tony Mack7130ac32013-03-22 21:58:00 -0400120 Slice: SliceSerializer,
121 Node: NodeSerializer,
122 Sliver: SliverSerializer,
123 DeploymentNetwork: DeploymentNetworkSerializer,
124 SiteDeploymentNetwork: SiteDeploymentNetworkSerializer,
Tony Mack53310082013-04-09 09:26:12 -0400125 Image: ImageSerializer,
126 Flavor: FlavorSerializer,
Tony Mack7130ac32013-03-22 21:58:00 -0400127 None: None,
128 }
Tony Mack53310082013-04-09 09:26:12 -0400129