enable images
[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 = ('role_id',
11                   'role_type')
12
13 class 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
29 class 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')
36     deployment_networks = serializers.HyperlinkedRelatedField(many=True, read_only=True,view_name='sitedeploymentnetwork-detail')
37
38     class Meta:
39         model = Site
40         fields = ('url',
41                   'name',
42                   'deployment_networks',
43                   'slices',
44                   'site_url',
45                   'enabled',
46                   'longitude',
47                   'latitude',
48                   'login_base',
49                   'tenant_id',
50                   'is_public',
51                   'abbreviated_name',
52                   'updated',
53                   'created')
54
55 class DeploymentNetworkSerializer(serializers.HyperlinkedModelSerializer):
56
57     sites = serializers.HyperlinkedRelatedField(view_name='sitedeploymentnetwork-detail')
58     class Meta:
59         model = DeploymentNetwork
60         fields = ('name',
61                   'sites'
62                  )
63
64 class 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
75 class 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',
83                   'name')
84
85 class NodeSerializer(serializers.ModelSerializer):
86
87     class Meta:
88         model = Node
89         fields = ('id',
90                  'name')
91
92 class ImageSerializer(serializers.ModelSerializer):
93
94     class Meta:
95         model = Image
96         fields = ('image_id',
97                   'name',
98                   'disk_format',
99                   'container_format')
100
101 class FlavorSerializer(serializers.ModelSerializer):
102
103     class Meta:
104         model = Flavor
105         fields = ('flavor_id',
106                   'name',
107                   'memory_mb',
108                   'disk_gb',
109                   'vcpus')
110
111 serializerLookUp = { 
112                  Role: RoleSerializer,
113                  Site: SiteSerializer,
114                  Slice: SliceSerializer,
115                  Node: NodeSerializer,
116                  Sliver: SliverSerializer,
117                  DeploymentNetwork: DeploymentNetworkSerializer,
118                  SiteDeploymentNetwork: SiteDeploymentNetworkSerializer,
119                  Image: ImageSerializer,
120                  Flavor: FlavorSerializer, 
121                  None: None,
122                 }
123