blob: b1ea4ec17a0a0f0c4c573c2684abf8669fbfb9b7 [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
10 fields = ('role_id',
11 'role_type')
12
Tony Mack7130ac32013-03-22 21:58:00 -040013class SliceSerializer(serializers.HyperlinkedModelSerializer):
14
15 site = serializers.HyperlinkedRelatedField(view_name='site-detail')
16
17 class Meta:
18 model = Slice
19 fields = ('url',
20 'name',
21 'instantiation',
22 'omf_friendly',
23 'description',
24 'slice_url',
25 'site',
26 'updated',
27 'created')
28
29class SiteSerializer(serializers.HyperlinkedModelSerializer):
30
31 #Experimenting with whether to use ids, hyperlinks, or nested includes
32 #slices = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
33 #slices = serializers.RelatedField(many=True, read_only=True)
34 #slices = SliceSerializer(many=True)
35 slices = serializers.HyperlinkedRelatedField(many=True, read_only=True,view_name='slice-detail')
Tony Mack6bdc4752013-04-09 01:05:37 -040036 deployment_networks = serializers.HyperlinkedRelatedField(many=True, read_only=True,view_name='sitedeploymentnetwork-detail')
Tony Mack7130ac32013-03-22 21:58:00 -040037
38 class Meta:
39 model = Site
40 fields = ('url',
41 'name',
Tony Macke1ed6c72013-04-09 00:34:37 -040042 'deployment_networks',
Tony Mack7130ac32013-03-22 21:58:00 -040043 'slices',
44 'site_url',
45 'enabled',
46 'longitude',
47 'latitude',
48 'login_base',
Tony Macke87bffa2013-04-08 23:18:04 -040049 'tenant_id',
Tony Mack7130ac32013-03-22 21:58:00 -040050 'is_public',
51 'abbreviated_name',
52 'updated',
53 'created')
54
55class DeploymentNetworkSerializer(serializers.HyperlinkedModelSerializer):
56
57 sites = serializers.HyperlinkedRelatedField(view_name='sitedeploymentnetwork-detail')
58 class Meta:
59 model = DeploymentNetwork
Tony Mack2d81e632013-04-09 02:34:10 -040060 fields = ('name',
Tony Mack7130ac32013-03-22 21:58:00 -040061 'sites'
62 )
63
64class SiteDeploymentNetworkSerializer(serializers.HyperlinkedModelSerializer):
65
66 site = serializers.HyperlinkedRelatedField(view_name='site-detail')
67 deploymentNetwork = serializers.HyperlinkedRelatedField(view_name='deploymentnetwork-detail')
68
69 class Meta:
70 model = SiteDeploymentNetwork
71 fields = ('url',
72 'site',
73 'deploymentNetwork')
74
75class SliverSerializer(serializers.ModelSerializer):
76 slice = serializers.RelatedField(read_only=True)
77 #slice = serializers.PrimaryKeyRelatedField(read_only=True)
78
79 class Meta:
80 model = Sliver
81 fields = ('id',
82 'slice',
Tony Mack53310082013-04-09 09:26:12 -040083 'name')
Tony Mack7130ac32013-03-22 21:58:00 -040084
85class NodeSerializer(serializers.ModelSerializer):
86
87 class Meta:
88 model = Node
89 fields = ('id',
90 'name')
91
Tony Mack53310082013-04-09 09:26:12 -040092class ImageSerializer(serializers.ModelSerializer):
93
94 class Meta:
95 model = Image
96 fields = ('image_id',
97 'name',
98 'disk_format',
99 'container_format')
100
101class FlavorSerializer(serializers.ModelSerializer):
102
103 class Meta:
104 model = Flavor
105 fields = ('flavor_id',
106 'name',
107 'memory_mb',
108 'disk_gb',
109 'vcpus')
Tony Mack7130ac32013-03-22 21:58:00 -0400110
Tony Macka28f1cd2013-04-07 20:02:31 -0400111serializerLookUp = {
112 Role: RoleSerializer,
113 Site: SiteSerializer,
Tony Mack7130ac32013-03-22 21:58:00 -0400114 Slice: SliceSerializer,
115 Node: NodeSerializer,
116 Sliver: SliverSerializer,
117 DeploymentNetwork: DeploymentNetworkSerializer,
118 SiteDeploymentNetwork: SiteDeploymentNetworkSerializer,
Tony Mack53310082013-04-09 09:26:12 -0400119 Image: ImageSerializer,
120 Flavor: FlavorSerializer,
Tony Mack7130ac32013-03-22 21:58:00 -0400121 None: None,
122 }
Tony Mack53310082013-04-09 09:26:12 -0400123