1 from rest_framework.decorators import api_view
2 from rest_framework.response import Response
3 from rest_framework.reverse import reverse
4 from rest_framework import serializers
5 from rest_framework import generics
6 from rest_framework import status
7 from rest_framework.generics import GenericAPIView
8 from core.models import *
9 from django.forms import widgets
10 from rest_framework import filters
11 from django.conf.urls import patterns, url
14 Schema of the generator object:
15 all: Set of all Model objects
16 all_if(regex): Set of Model objects that match regex
19 plural: English plural of object name
20 camel: CamelCase version of object name
21 refs: list of references to other Model objects
22 props: list of properties minus refs
24 TODO: Deal with subnets
27 def get_REST_patterns():
29 url(r'^plstackapi/$', api_root),
31 url(r'plstackapi/serviceattributes/$', ServiceAttributeList.as_view(), name='serviceattribute-list'),
32 url(r'plstackapi/serviceattributes/(?P<pk>[a-zA-Z0-9\-]+)/$', ServiceAttributeDetail.as_view(), name ='serviceattribute-detail'),
33 # url(r'plstackapi/serviceattributes/!new/$', ServiceAttributeNew.as_view(), name ='serviceattribute-new'),
35 url(r'plstackapi/images/$', ImageList.as_view(), name='image-list'),
36 url(r'plstackapi/images/(?P<pk>[a-zA-Z0-9\-]+)/$', ImageDetail.as_view(), name ='image-detail'),
37 # url(r'plstackapi/images/!new/$', ImageNew.as_view(), name ='image-new'),
39 url(r'plstackapi/networkparameters/$', NetworkParameterList.as_view(), name='networkparameter-list'),
40 url(r'plstackapi/networkparameters/(?P<pk>[a-zA-Z0-9\-]+)/$', NetworkParameterDetail.as_view(), name ='networkparameter-detail'),
41 # url(r'plstackapi/networkparameters/!new/$', NetworkParameterNew.as_view(), name ='networkparameter-new'),
43 url(r'plstackapi/sites/$', SiteList.as_view(), name='site-list'),
44 url(r'plstackapi/sites/(?P<pk>[a-zA-Z0-9\-]+)/$', SiteDetail.as_view(), name ='site-detail'),
45 # url(r'plstackapi/sites/!new/$', SiteNew.as_view(), name ='site-new'),
47 url(r'plstackapi/slice_roles/$', SliceRoleList.as_view(), name='slicerole-list'),
48 url(r'plstackapi/slice_roles/(?P<pk>[a-zA-Z0-9\-]+)/$', SliceRoleDetail.as_view(), name ='slicerole-detail'),
49 # url(r'plstackapi/slice_roles/!new/$', SliceRoleNew.as_view(), name ='slicerole-new'),
51 url(r'plstackapi/tags/$', TagList.as_view(), name='tag-list'),
52 url(r'plstackapi/tags/(?P<pk>[a-zA-Z0-9\-]+)/$', TagDetail.as_view(), name ='tag-detail'),
53 # url(r'plstackapi/tags/!new/$', TagNew.as_view(), name ='tag-new'),
55 url(r'plstackapi/invoices/$', InvoiceList.as_view(), name='invoice-list'),
56 url(r'plstackapi/invoices/(?P<pk>[a-zA-Z0-9\-]+)/$', InvoiceDetail.as_view(), name ='invoice-detail'),
57 # url(r'plstackapi/invoices/!new/$', InvoiceNew.as_view(), name ='invoice-new'),
59 url(r'plstackapi/slice_privileges/$', SlicePrivilegeList.as_view(), name='sliceprivilege-list'),
60 url(r'plstackapi/slice_privileges/(?P<pk>[a-zA-Z0-9\-]+)/$', SlicePrivilegeDetail.as_view(), name ='sliceprivilege-detail'),
61 # url(r'plstackapi/slice_privileges/!new/$', SlicePrivilegeNew.as_view(), name ='sliceprivilege-new'),
63 url(r'plstackapi/planetstackroles/$', PlanetStackRoleList.as_view(), name='planetstackrole-list'),
64 url(r'plstackapi/planetstackroles/(?P<pk>[a-zA-Z0-9\-]+)/$', PlanetStackRoleDetail.as_view(), name ='planetstackrole-detail'),
65 # url(r'plstackapi/planetstackroles/!new/$', PlanetStackRoleNew.as_view(), name ='planetstackrole-new'),
67 url(r'plstackapi/networkslivers/$', NetworkSliverList.as_view(), name='networksliver-list'),
68 url(r'plstackapi/networkslivers/(?P<pk>[a-zA-Z0-9\-]+)/$', NetworkSliverDetail.as_view(), name ='networksliver-detail'),
69 # url(r'plstackapi/networkslivers/!new/$', NetworkSliverNew.as_view(), name ='networksliver-new'),
71 url(r'plstackapi/networkdeployments/$', NetworkDeploymentsList.as_view(), name='networkdeployments-list'),
72 url(r'plstackapi/networkdeployments/(?P<pk>[a-zA-Z0-9\-]+)/$', NetworkDeploymentsDetail.as_view(), name ='networkdeployments-detail'),
73 # url(r'plstackapi/networkdeployments/!new/$', NetworkDeploymentsNew.as_view(), name ='networkdeployments-new'),
75 url(r'plstackapi/flavors/$', FlavorList.as_view(), name='flavor-list'),
76 url(r'plstackapi/flavors/(?P<pk>[a-zA-Z0-9\-]+)/$', FlavorDetail.as_view(), name ='flavor-detail'),
77 # url(r'plstackapi/flavors/!new/$', FlavorNew.as_view(), name ='flavor-new'),
79 url(r'plstackapi/projects/$', ProjectList.as_view(), name='project-list'),
80 url(r'plstackapi/projects/(?P<pk>[a-zA-Z0-9\-]+)/$', ProjectDetail.as_view(), name ='project-detail'),
81 # url(r'plstackapi/projects/!new/$', ProjectNew.as_view(), name ='project-new'),
83 url(r'plstackapi/slices/$', SliceList.as_view(), name='slice-list'),
84 url(r'plstackapi/slices/(?P<pk>[a-zA-Z0-9\-]+)/$', SliceDetail.as_view(), name ='slice-detail'),
85 # url(r'plstackapi/slices/!new/$', SliceNew.as_view(), name ='slice-new'),
87 url(r'plstackapi/networks/$', NetworkList.as_view(), name='network-list'),
88 url(r'plstackapi/networks/(?P<pk>[a-zA-Z0-9\-]+)/$', NetworkDetail.as_view(), name ='network-detail'),
89 # url(r'plstackapi/networks/!new/$', NetworkNew.as_view(), name ='network-new'),
91 url(r'plstackapi/services/$', ServiceList.as_view(), name='service-list'),
92 url(r'plstackapi/services/(?P<pk>[a-zA-Z0-9\-]+)/$', ServiceDetail.as_view(), name ='service-detail'),
93 # url(r'plstackapi/services/!new/$', ServiceNew.as_view(), name ='service-new'),
95 url(r'plstackapi/serviceclasses/$', ServiceClassList.as_view(), name='serviceclass-list'),
96 url(r'plstackapi/serviceclasses/(?P<pk>[a-zA-Z0-9\-]+)/$', ServiceClassDetail.as_view(), name ='serviceclass-detail'),
97 # url(r'plstackapi/serviceclasses/!new/$', ServiceClassNew.as_view(), name ='serviceclass-new'),
99 url(r'plstackapi/planetstacks/$', PlanetStackList.as_view(), name='planetstack-list'),
100 url(r'plstackapi/planetstacks/(?P<pk>[a-zA-Z0-9\-]+)/$', PlanetStackDetail.as_view(), name ='planetstack-detail'),
101 # url(r'plstackapi/planetstacks/!new/$', PlanetStackNew.as_view(), name ='planetstack-new'),
103 url(r'plstackapi/charges/$', ChargeList.as_view(), name='charge-list'),
104 url(r'plstackapi/charges/(?P<pk>[a-zA-Z0-9\-]+)/$', ChargeDetail.as_view(), name ='charge-detail'),
105 # url(r'plstackapi/charges/!new/$', ChargeNew.as_view(), name ='charge-new'),
107 url(r'plstackapi/roles/$', RoleList.as_view(), name='role-list'),
108 url(r'plstackapi/roles/(?P<pk>[a-zA-Z0-9\-]+)/$', RoleDetail.as_view(), name ='role-detail'),
109 # url(r'plstackapi/roles/!new/$', RoleNew.as_view(), name ='role-new'),
111 url(r'plstackapi/usableobjects/$', UsableObjectList.as_view(), name='usableobject-list'),
112 url(r'plstackapi/usableobjects/(?P<pk>[a-zA-Z0-9\-]+)/$', UsableObjectDetail.as_view(), name ='usableobject-detail'),
113 # url(r'plstackapi/usableobjects/!new/$', UsableObjectNew.as_view(), name ='usableobject-new'),
115 url(r'plstackapi/site_roles/$', SiteRoleList.as_view(), name='siterole-list'),
116 url(r'plstackapi/site_roles/(?P<pk>[a-zA-Z0-9\-]+)/$', SiteRoleDetail.as_view(), name ='siterole-detail'),
117 # url(r'plstackapi/site_roles/!new/$', SiteRoleNew.as_view(), name ='siterole-new'),
119 url(r'plstackapi/slicecredentials/$', SliceCredentialList.as_view(), name='slicecredential-list'),
120 url(r'plstackapi/slicecredentials/(?P<pk>[a-zA-Z0-9\-]+)/$', SliceCredentialDetail.as_view(), name ='slicecredential-detail'),
121 # url(r'plstackapi/slicecredentials/!new/$', SliceCredentialNew.as_view(), name ='slicecredential-new'),
123 url(r'plstackapi/slivers/$', SliverList.as_view(), name='sliver-list'),
124 url(r'plstackapi/slivers/(?P<pk>[a-zA-Z0-9\-]+)/$', SliverDetail.as_view(), name ='sliver-detail'),
125 # url(r'plstackapi/slivers/!new/$', SliverNew.as_view(), name ='sliver-new'),
127 url(r'plstackapi/nodes/$', NodeList.as_view(), name='node-list'),
128 url(r'plstackapi/nodes/(?P<pk>[a-zA-Z0-9\-]+)/$', NodeDetail.as_view(), name ='node-detail'),
129 # url(r'plstackapi/nodes/!new/$', NodeNew.as_view(), name ='node-new'),
131 url(r'plstackapi/dashboardviews/$', DashboardViewList.as_view(), name='dashboardview-list'),
132 url(r'plstackapi/dashboardviews/(?P<pk>[a-zA-Z0-9\-]+)/$', DashboardViewDetail.as_view(), name ='dashboardview-detail'),
133 # url(r'plstackapi/dashboardviews/!new/$', DashboardViewNew.as_view(), name ='dashboardview-new'),
135 url(r'plstackapi/reservedresources/$', ReservedResourceList.as_view(), name='reservedresource-list'),
136 url(r'plstackapi/reservedresources/(?P<pk>[a-zA-Z0-9\-]+)/$', ReservedResourceDetail.as_view(), name ='reservedresource-detail'),
137 # url(r'plstackapi/reservedresources/!new/$', ReservedResourceNew.as_view(), name ='reservedresource-new'),
139 url(r'plstackapi/payments/$', PaymentList.as_view(), name='payment-list'),
140 url(r'plstackapi/payments/(?P<pk>[a-zA-Z0-9\-]+)/$', PaymentDetail.as_view(), name ='payment-detail'),
141 # url(r'plstackapi/payments/!new/$', PaymentNew.as_view(), name ='payment-new'),
143 url(r'plstackapi/networkslices/$', NetworkSliceList.as_view(), name='networkslice-list'),
144 url(r'plstackapi/networkslices/(?P<pk>[a-zA-Z0-9\-]+)/$', NetworkSliceDetail.as_view(), name ='networkslice-detail'),
145 # url(r'plstackapi/networkslices/!new/$', NetworkSliceNew.as_view(), name ='networkslice-new'),
147 url(r'plstackapi/userdashboardviews/$', UserDashboardViewList.as_view(), name='userdashboardview-list'),
148 url(r'plstackapi/userdashboardviews/(?P<pk>[a-zA-Z0-9\-]+)/$', UserDashboardViewDetail.as_view(), name ='userdashboardview-detail'),
149 # url(r'plstackapi/userdashboardviews/!new/$', UserDashboardViewNew.as_view(), name ='userdashboardview-new'),
151 url(r'plstackapi/sitedeployments/$', SiteDeploymentsList.as_view(), name='sitedeployment-list'),
152 url(r'plstackapi/sitedeployments/(?P<pk>[a-zA-Z0-9\-]+)/$', SiteDeploymentsDetail.as_view(), name ='sitedeployment-detail'),
153 # url(r'plstackapi/sitedeployments/!new/$', SiteDeploymentsNew.as_view(), name ='sitedeployment-new'),
155 url(r'plstackapi/planetstackprivileges/$', PlanetStackPrivilegeList.as_view(), name='planetstackprivilege-list'),
156 url(r'plstackapi/planetstackprivileges/(?P<pk>[a-zA-Z0-9\-]+)/$', PlanetStackPrivilegeDetail.as_view(), name ='planetstackprivilege-detail'),
157 # url(r'plstackapi/planetstackprivileges/!new/$', PlanetStackPrivilegeNew.as_view(), name ='planetstackprivilege-new'),
159 url(r'plstackapi/users/$', UserList.as_view(), name='user-list'),
160 url(r'plstackapi/users/(?P<pk>[a-zA-Z0-9\-]+)/$', UserDetail.as_view(), name ='user-detail'),
161 # url(r'plstackapi/users/!new/$', UserNew.as_view(), name ='user-new'),
163 url(r'plstackapi/deployments/$', DeploymentList.as_view(), name='deployment-list'),
164 url(r'plstackapi/deployments/(?P<pk>[a-zA-Z0-9\-]+)/$', DeploymentDetail.as_view(), name ='deployment-detail'),
165 # url(r'plstackapi/deployments/!new/$', DeploymentNew.as_view(), name ='deployment-new'),
167 url(r'plstackapi/reservations/$', ReservationList.as_view(), name='reservation-list'),
168 url(r'plstackapi/reservations/(?P<pk>[a-zA-Z0-9\-]+)/$', ReservationDetail.as_view(), name ='reservation-detail'),
169 # url(r'plstackapi/reservations/!new/$', ReservationNew.as_view(), name ='reservation-new'),
171 url(r'plstackapi/siteprivileges/$', SitePrivilegeList.as_view(), name='siteprivilege-list'),
172 url(r'plstackapi/siteprivileges/(?P<pk>[a-zA-Z0-9\-]+)/$', SitePrivilegeDetail.as_view(), name ='siteprivilege-detail'),
173 # url(r'plstackapi/siteprivileges/!new/$', SitePrivilegeNew.as_view(), name ='siteprivilege-new'),
175 url(r'plstackapi/slicedeployments/$', SliceDeploymentsList.as_view(), name='slicedeployment-list'),
176 url(r'plstackapi/slicedeployments/(?P<pk>[a-zA-Z0-9\-]+)/$', SliceDeploymentsDetail.as_view(), name ='slicedeployment-detail'),
177 # url(r'plstackapi/slicedeployments/!new/$', SliceDeploymentsNew.as_view(), name ='slicedeployment-new'),
179 url(r'plstackapi/userdeployments/$', UserDeploymentsList.as_view(), name='userdeployment-list'),
180 url(r'plstackapi/userdeployments/(?P<pk>[a-zA-Z0-9\-]+)/$', UserDeploymentsDetail.as_view(), name ='userdeployment-detail'),
181 # url(r'plstackapi/userdeployments/!new/$', UserDeploymentsNew.as_view(), name ='userdeployment-new'),
183 url(r'plstackapi/accounts/$', AccountList.as_view(), name='account-list'),
184 url(r'plstackapi/accounts/(?P<pk>[a-zA-Z0-9\-]+)/$', AccountDetail.as_view(), name ='account-detail'),
185 # url(r'plstackapi/accounts/!new/$', AccountNew.as_view(), name ='account-new'),
187 url(r'plstackapi/networkparametertypes/$', NetworkParameterTypeList.as_view(), name='networkparametertype-list'),
188 url(r'plstackapi/networkparametertypes/(?P<pk>[a-zA-Z0-9\-]+)/$', NetworkParameterTypeDetail.as_view(), name ='networkparametertype-detail'),
189 # url(r'plstackapi/networkparametertypes/!new/$', NetworkParameterTypeNew.as_view(), name ='networkparametertype-new'),
191 url(r'plstackapi/sitecredentials/$', SiteCredentialList.as_view(), name='sitecredential-list'),
192 url(r'plstackapi/sitecredentials/(?P<pk>[a-zA-Z0-9\-]+)/$', SiteCredentialDetail.as_view(), name ='sitecredential-detail'),
193 # url(r'plstackapi/sitecredentials/!new/$', SiteCredentialNew.as_view(), name ='sitecredential-new'),
195 url(r'plstackapi/deploymentprivileges/$', DeploymentPrivilegeList.as_view(), name='deploymentprivilege-list'),
196 url(r'plstackapi/deploymentprivileges/(?P<pk>[a-zA-Z0-9\-]+)/$', DeploymentPrivilegeDetail.as_view(), name ='deploymentprivilege-detail'),
197 # url(r'plstackapi/deploymentprivileges/!new/$', DeploymentPrivilegeNew.as_view(), name ='deploymentprivilege-new'),
199 url(r'plstackapi/imagedeployments/$', ImageDeploymentsList.as_view(), name='imagedeployment-list'),
200 url(r'plstackapi/imagedeployments/(?P<pk>[a-zA-Z0-9\-]+)/$', ImageDeploymentsDetail.as_view(), name ='imagedeployment-detail'),
201 # url(r'plstackapi/imagedeployments/!new/$', ImageDeploymentsNew.as_view(), name ='imagedeployment-new'),
203 url(r'plstackapi/deploymentroles/$', DeploymentRoleList.as_view(), name='deploymentrole-list'),
204 url(r'plstackapi/deploymentroles/(?P<pk>[a-zA-Z0-9\-]+)/$', DeploymentRoleDetail.as_view(), name ='deploymentrole-detail'),
205 # url(r'plstackapi/deploymentroles/!new/$', DeploymentRoleNew.as_view(), name ='deploymentrole-new'),
207 url(r'plstackapi/usercredentials/$', UserCredentialList.as_view(), name='usercredential-list'),
208 url(r'plstackapi/usercredentials/(?P<pk>[a-zA-Z0-9\-]+)/$', UserCredentialDetail.as_view(), name ='usercredential-detail'),
209 # url(r'plstackapi/usercredentials/!new/$', UserCredentialNew.as_view(), name ='usercredential-new'),
211 url(r'plstackapi/slicetags/$', SliceTagList.as_view(), name='slicetag-list'),
212 url(r'plstackapi/slicetags/(?P<pk>[a-zA-Z0-9\-]+)/$', SliceTagDetail.as_view(), name ='slicetag-detail'),
213 # url(r'plstackapi/slicetags/!new/$', SliceTagNew.as_view(), name ='slicetag-new'),
215 url(r'plstackapi/networktemplates/$', NetworkTemplateList.as_view(), name='networktemplate-list'),
216 url(r'plstackapi/networktemplates/(?P<pk>[a-zA-Z0-9\-]+)/$', NetworkTemplateDetail.as_view(), name ='networktemplate-detail'),
217 # url(r'plstackapi/networktemplates/!new/$', NetworkTemplateNew.as_view(), name ='networktemplate-new'),
219 url(r'plstackapi/routers/$', RouterList.as_view(), name='router-list'),
220 url(r'plstackapi/routers/(?P<pk>[a-zA-Z0-9\-]+)/$', RouterDetail.as_view(), name ='router-detail'),
221 # url(r'plstackapi/routers/!new/$', RouterNew.as_view(), name ='router-new'),
223 url(r'plstackapi/serviceresources/$', ServiceResourceList.as_view(), name='serviceresource-list'),
224 url(r'plstackapi/serviceresources/(?P<pk>[a-zA-Z0-9\-]+)/$', ServiceResourceDetail.as_view(), name ='serviceresource-detail'),
225 # url(r'plstackapi/serviceresources/!new/$', ServiceResourceNew.as_view(), name ='serviceresource-new'),
230 def api_root(request, format=None):
232 'serviceattributes': reverse('serviceattribute-list', request=request, format=format),
233 'images': reverse('image-list', request=request, format=format),
234 'networkparameters': reverse('networkparameter-list', request=request, format=format),
235 'sites': reverse('site-list', request=request, format=format),
236 'sliceroles': reverse('slicerole-list', request=request, format=format),
237 'tags': reverse('tag-list', request=request, format=format),
238 'invoices': reverse('invoice-list', request=request, format=format),
239 'sliceprivileges': reverse('sliceprivilege-list', request=request, format=format),
240 'planetstackroles': reverse('planetstackrole-list', request=request, format=format),
241 'networkslivers': reverse('networksliver-list', request=request, format=format),
242 'networkdeploymentses': reverse('networkdeployments-list', request=request, format=format),
243 'flavors': reverse('flavor-list', request=request, format=format),
244 'projects': reverse('project-list', request=request, format=format),
245 'slices': reverse('slice-list', request=request, format=format),
246 'networks': reverse('network-list', request=request, format=format),
247 'services': reverse('service-list', request=request, format=format),
248 'serviceclasses': reverse('serviceclass-list', request=request, format=format),
249 'planetstacks': reverse('planetstack-list', request=request, format=format),
250 'charges': reverse('charge-list', request=request, format=format),
251 'roles': reverse('role-list', request=request, format=format),
252 'usableobjects': reverse('usableobject-list', request=request, format=format),
253 'siteroles': reverse('siterole-list', request=request, format=format),
254 'slicecredentials': reverse('slicecredential-list', request=request, format=format),
255 'slivers': reverse('sliver-list', request=request, format=format),
256 'nodes': reverse('node-list', request=request, format=format),
257 'dashboardviews': reverse('dashboardview-list', request=request, format=format),
258 'reservedresources': reverse('reservedresource-list', request=request, format=format),
259 'payments': reverse('payment-list', request=request, format=format),
260 'networkslices': reverse('networkslice-list', request=request, format=format),
261 'userdashboardviews': reverse('userdashboardview-list', request=request, format=format),
262 'sitedeployments': reverse('sitedeployment-list', request=request, format=format),
263 'planetstackprivileges': reverse('planetstackprivilege-list', request=request, format=format),
264 'users': reverse('user-list', request=request, format=format),
265 'deployments': reverse('deployment-list', request=request, format=format),
266 'reservations': reverse('reservation-list', request=request, format=format),
267 'siteprivileges': reverse('siteprivilege-list', request=request, format=format),
268 'slicedeployments': reverse('slicedeployment-list', request=request, format=format),
269 'userdeployments': reverse('userdeployment-list', request=request, format=format),
270 'accounts': reverse('account-list', request=request, format=format),
271 'networkparametertypes': reverse('networkparametertype-list', request=request, format=format),
272 'sitecredentials': reverse('sitecredential-list', request=request, format=format),
273 'deploymentprivileges': reverse('deploymentprivilege-list', request=request, format=format),
274 'imagedeployments': reverse('imagedeployment-list', request=request, format=format),
275 'deploymentroles': reverse('deploymentrole-list', request=request, format=format),
276 'usercredentials': reverse('usercredential-list', request=request, format=format),
277 'slicetags': reverse('slicetag-list', request=request, format=format),
278 'networktemplates': reverse('networktemplate-list', request=request, format=format),
279 'routers': reverse('router-list', request=request, format=format),
280 'serviceresources': reverse('serviceresource-list', request=request, format=format),
284 # Based on serializers.py
288 class ServiceAttributeSerializer(serializers.HyperlinkedModelSerializer):
289 id = serializers.Field()
292 model = ServiceAttribute
293 fields = ('id','created','updated','enacted','backend_status','deleted','name','value','service',)
295 class ServiceAttributeIdSerializer(serializers.ModelSerializer):
296 id = serializers.Field()
299 model = ServiceAttribute
300 fields = ('id','created','updated','enacted','backend_status','deleted','name','value','service',)
305 class ImageSerializer(serializers.HyperlinkedModelSerializer):
306 id = serializers.Field()
310 fields = ('id','created','updated','enacted','backend_status','deleted','name','disk_format','container_format','path',)
312 class ImageIdSerializer(serializers.ModelSerializer):
313 id = serializers.Field()
317 fields = ('id','created','updated','enacted','backend_status','deleted','name','disk_format','container_format','path',)
322 class NetworkParameterSerializer(serializers.HyperlinkedModelSerializer):
323 id = serializers.Field()
326 model = NetworkParameter
327 fields = ('id','created','updated','enacted','backend_status','deleted','parameter','value','content_type','object_id',)
329 class NetworkParameterIdSerializer(serializers.ModelSerializer):
330 id = serializers.Field()
333 model = NetworkParameter
334 fields = ('id','created','updated','enacted','backend_status','deleted','parameter','value','content_type','object_id',)
339 class SiteSerializer(serializers.HyperlinkedModelSerializer):
340 id = serializers.Field()
344 fields = ('id','created','updated','enacted','backend_status','deleted','name','site_url','enabled','location','longitude','latitude','login_base','is_public','abbreviated_name',)
346 class SiteIdSerializer(serializers.ModelSerializer):
347 id = serializers.Field()
351 fields = ('id','created','updated','enacted','backend_status','deleted','name','site_url','enabled','location','longitude','latitude','login_base','is_public','abbreviated_name',)
356 class SliceRoleSerializer(serializers.HyperlinkedModelSerializer):
357 id = serializers.Field()
361 fields = ('id','created','updated','enacted','backend_status','deleted','role',)
363 class SliceRoleIdSerializer(serializers.ModelSerializer):
364 id = serializers.Field()
368 fields = ('id','created','updated','enacted','backend_status','deleted','role',)
373 class TagSerializer(serializers.HyperlinkedModelSerializer):
374 id = serializers.Field()
378 fields = ('id','created','updated','enacted','backend_status','deleted','service','name','value','content_type','object_id',)
380 class TagIdSerializer(serializers.ModelSerializer):
381 id = serializers.Field()
385 fields = ('id','created','updated','enacted','backend_status','deleted','service','name','value','content_type','object_id',)
390 class InvoiceSerializer(serializers.HyperlinkedModelSerializer):
391 id = serializers.Field()
395 fields = ('id','created','updated','enacted','backend_status','deleted','date','account',)
397 class InvoiceIdSerializer(serializers.ModelSerializer):
398 id = serializers.Field()
402 fields = ('id','created','updated','enacted','backend_status','deleted','date','account',)
407 class SlicePrivilegeSerializer(serializers.HyperlinkedModelSerializer):
408 id = serializers.Field()
411 model = SlicePrivilege
412 fields = ('id','created','updated','enacted','backend_status','deleted','user','slice','role',)
414 class SlicePrivilegeIdSerializer(serializers.ModelSerializer):
415 id = serializers.Field()
418 model = SlicePrivilege
419 fields = ('id','created','updated','enacted','backend_status','deleted','user','slice','role',)
424 class PlanetStackRoleSerializer(serializers.HyperlinkedModelSerializer):
425 id = serializers.Field()
428 model = PlanetStackRole
429 fields = ('id','created','updated','enacted','backend_status','deleted','role',)
431 class PlanetStackRoleIdSerializer(serializers.ModelSerializer):
432 id = serializers.Field()
435 model = PlanetStackRole
436 fields = ('id','created','updated','enacted','backend_status','deleted','role',)
441 class NetworkSliverSerializer(serializers.HyperlinkedModelSerializer):
442 id = serializers.Field()
445 model = NetworkSliver
446 fields = ('id','created','updated','enacted','backend_status','deleted','network','sliver','ip','port_id',)
448 class NetworkSliverIdSerializer(serializers.ModelSerializer):
449 id = serializers.Field()
452 model = NetworkSliver
453 fields = ('id','created','updated','enacted','backend_status','deleted','network','sliver','ip','port_id',)
458 class NetworkDeploymentsSerializer(serializers.HyperlinkedModelSerializer):
459 id = serializers.Field()
462 model = NetworkDeployments
463 fields = ('id','created','updated','enacted','backend_status','deleted','network','deployment','net_id','router_id','subnet_id','subnet',)
465 class NetworkDeploymentsIdSerializer(serializers.ModelSerializer):
466 id = serializers.Field()
469 model = NetworkDeployments
470 fields = ('id','created','updated','enacted','backend_status','deleted','network','deployment','net_id','router_id','subnet_id','subnet',)
475 class FlavorSerializer(serializers.HyperlinkedModelSerializer):
476 id = serializers.Field()
480 fields = ('id','created','updated','enacted','backend_status','deleted','name','description','flavor','order','default',)
482 class FlavorIdSerializer(serializers.ModelSerializer):
483 id = serializers.Field()
487 fields = ('id','created','updated','enacted','backend_status','deleted','name','description','flavor','order','default',)
492 class ProjectSerializer(serializers.HyperlinkedModelSerializer):
493 id = serializers.Field()
497 fields = ('id','created','updated','enacted','backend_status','deleted','name',)
499 class ProjectIdSerializer(serializers.ModelSerializer):
500 id = serializers.Field()
504 fields = ('id','created','updated','enacted','backend_status','deleted','name',)
509 class SliceSerializer(serializers.HyperlinkedModelSerializer):
510 id = serializers.Field()
513 networks = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='network-detail')
517 availableNetworks = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='network-detail')
521 networks = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='network-detail')
525 networks = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='network-detail')
530 fields = ('id','created','updated','enacted','backend_status','deleted','name','enabled','omf_friendly','description','slice_url','site','max_slivers','imagePreference','service','network','mountDataSets','serviceClass','creator','networks','availableNetworks','networks','networks',)
532 class SliceIdSerializer(serializers.ModelSerializer):
533 id = serializers.Field()
536 networks = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='network-detail')
540 availableNetworks = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='network-detail')
544 networks = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='network-detail')
548 networks = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='network-detail')
553 fields = ('id','created','updated','enacted','backend_status','deleted','name','enabled','omf_friendly','description','slice_url','site','max_slivers','imagePreference','service','network','mountDataSets','serviceClass','creator','networks','availableNetworks','networks','networks',)
558 class NetworkSerializer(serializers.HyperlinkedModelSerializer):
559 id = serializers.Field()
562 routers = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='router-detail')
566 availableRouters = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='router-detail')
570 routers = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='router-detail')
574 routers = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='router-detail')
579 fields = ('id','created','updated','enacted','backend_status','deleted','name','template','subnet','ports','labels','owner','guaranteedBandwidth','permitAllSlices','topologyParameters','controllerUrl','controllerParameters','network_id','router_id','subnet_id','routers','availableRouters','routers','routers',)
581 class NetworkIdSerializer(serializers.ModelSerializer):
582 id = serializers.Field()
585 routers = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='router-detail')
589 availableRouters = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='router-detail')
593 routers = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='router-detail')
597 routers = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='router-detail')
602 fields = ('id','created','updated','enacted','backend_status','deleted','name','template','subnet','ports','labels','owner','guaranteedBandwidth','permitAllSlices','topologyParameters','controllerUrl','controllerParameters','network_id','router_id','subnet_id','routers','availableRouters','routers','routers',)
607 class ServiceSerializer(serializers.HyperlinkedModelSerializer):
608 id = serializers.Field()
612 fields = ('id','created','updated','enacted','backend_status','deleted','description','enabled','name','versionNumber','published',)
614 class ServiceIdSerializer(serializers.ModelSerializer):
615 id = serializers.Field()
619 fields = ('id','created','updated','enacted','backend_status','deleted','description','enabled','name','versionNumber','published',)
624 class ServiceClassSerializer(serializers.HyperlinkedModelSerializer):
625 id = serializers.Field()
629 fields = ('id','created','updated','enacted','backend_status','deleted','name','description','commitment','membershipFee','membershipFeeMonths','upgradeRequiresApproval',)
631 class ServiceClassIdSerializer(serializers.ModelSerializer):
632 id = serializers.Field()
636 fields = ('id','created','updated','enacted','backend_status','deleted','name','description','commitment','membershipFee','membershipFeeMonths','upgradeRequiresApproval',)
641 class PlanetStackSerializer(serializers.HyperlinkedModelSerializer):
642 id = serializers.Field()
646 fields = ('id','created','updated','enacted','backend_status','deleted','description',)
648 class PlanetStackIdSerializer(serializers.ModelSerializer):
649 id = serializers.Field()
653 fields = ('id','created','updated','enacted','backend_status','deleted','description',)
658 class ChargeSerializer(serializers.HyperlinkedModelSerializer):
659 id = serializers.Field()
663 fields = ('id','created','updated','enacted','backend_status','deleted','account','slice','kind','state','date','object','amount','coreHours','invoice',)
665 class ChargeIdSerializer(serializers.ModelSerializer):
666 id = serializers.Field()
670 fields = ('id','created','updated','enacted','backend_status','deleted','account','slice','kind','state','date','object','amount','coreHours','invoice',)
675 class RoleSerializer(serializers.HyperlinkedModelSerializer):
676 id = serializers.Field()
680 fields = ('id','created','updated','enacted','backend_status','deleted','role_type','role','description','content_type',)
682 class RoleIdSerializer(serializers.ModelSerializer):
683 id = serializers.Field()
687 fields = ('id','created','updated','enacted','backend_status','deleted','role_type','role','description','content_type',)
692 class UsableObjectSerializer(serializers.HyperlinkedModelSerializer):
693 id = serializers.Field()
697 fields = ('id','created','updated','enacted','backend_status','deleted','name',)
699 class UsableObjectIdSerializer(serializers.ModelSerializer):
700 id = serializers.Field()
704 fields = ('id','created','updated','enacted','backend_status','deleted','name',)
709 class SiteRoleSerializer(serializers.HyperlinkedModelSerializer):
710 id = serializers.Field()
714 fields = ('id','created','updated','enacted','backend_status','deleted','role',)
716 class SiteRoleIdSerializer(serializers.ModelSerializer):
717 id = serializers.Field()
721 fields = ('id','created','updated','enacted','backend_status','deleted','role',)
726 class SliceCredentialSerializer(serializers.HyperlinkedModelSerializer):
727 id = serializers.Field()
730 model = SliceCredential
731 fields = ('id','created','updated','enacted','backend_status','deleted','slice','name','key_id','enc_value',)
733 class SliceCredentialIdSerializer(serializers.ModelSerializer):
734 id = serializers.Field()
737 model = SliceCredential
738 fields = ('id','created','updated','enacted','backend_status','deleted','slice','name','key_id','enc_value',)
743 class SliverSerializer(serializers.HyperlinkedModelSerializer):
744 id = serializers.Field()
747 networks = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='network-detail')
751 networks = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='network-detail')
756 fields = ('id','created','updated','enacted','backend_status','deleted','instance_id','name','instance_name','ip','image','creator','slice','node','deploymentNetwork','numberCores','flavor','userData','networks','networks',)
758 class SliverIdSerializer(serializers.ModelSerializer):
759 id = serializers.Field()
762 networks = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='network-detail')
766 networks = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='network-detail')
771 fields = ('id','created','updated','enacted','backend_status','deleted','instance_id','name','instance_name','ip','image','creator','slice','node','deploymentNetwork','numberCores','flavor','userData','networks','networks',)
776 class NodeSerializer(serializers.HyperlinkedModelSerializer):
777 id = serializers.Field()
781 fields = ('id','created','updated','enacted','backend_status','deleted','name','site','deployment',)
783 class NodeIdSerializer(serializers.ModelSerializer):
784 id = serializers.Field()
788 fields = ('id','created','updated','enacted','backend_status','deleted','name','site','deployment',)
793 class DashboardViewSerializer(serializers.HyperlinkedModelSerializer):
794 id = serializers.Field()
797 model = DashboardView
798 fields = ('id','created','updated','enacted','backend_status','deleted','name','url',)
800 class DashboardViewIdSerializer(serializers.ModelSerializer):
801 id = serializers.Field()
804 model = DashboardView
805 fields = ('id','created','updated','enacted','backend_status','deleted','name','url',)
810 class ReservedResourceSerializer(serializers.HyperlinkedModelSerializer):
811 id = serializers.Field()
814 model = ReservedResource
815 fields = ('id','created','updated','enacted','backend_status','deleted','sliver','resource','quantity','reservationSet',)
817 class ReservedResourceIdSerializer(serializers.ModelSerializer):
818 id = serializers.Field()
821 model = ReservedResource
822 fields = ('id','created','updated','enacted','backend_status','deleted','sliver','resource','quantity','reservationSet',)
827 class PaymentSerializer(serializers.HyperlinkedModelSerializer):
828 id = serializers.Field()
832 fields = ('id','created','updated','enacted','backend_status','deleted','account','amount','date',)
834 class PaymentIdSerializer(serializers.ModelSerializer):
835 id = serializers.Field()
839 fields = ('id','created','updated','enacted','backend_status','deleted','account','amount','date',)
844 class NetworkSliceSerializer(serializers.HyperlinkedModelSerializer):
845 id = serializers.Field()
849 fields = ('id','created','updated','enacted','backend_status','deleted','network','slice',)
851 class NetworkSliceIdSerializer(serializers.ModelSerializer):
852 id = serializers.Field()
856 fields = ('id','created','updated','enacted','backend_status','deleted','network','slice',)
861 class UserDashboardViewSerializer(serializers.HyperlinkedModelSerializer):
862 id = serializers.Field()
865 model = UserDashboardView
866 fields = ('id','created','updated','enacted','backend_status','deleted','user','dashboardView','order',)
868 class UserDashboardViewIdSerializer(serializers.ModelSerializer):
869 id = serializers.Field()
872 model = UserDashboardView
873 fields = ('id','created','updated','enacted','backend_status','deleted','user','dashboardView','order',)
878 class SiteDeploymentsSerializer(serializers.HyperlinkedModelSerializer):
879 id = serializers.Field()
882 model = SiteDeployments
883 fields = ('id','created','updated','enacted','backend_status','deleted','site','deployment','tenant_id',)
885 class SiteDeploymentsIdSerializer(serializers.ModelSerializer):
886 id = serializers.Field()
889 model = SiteDeployments
890 fields = ('id','created','updated','enacted','backend_status','deleted','site','deployment','tenant_id',)
895 class PlanetStackPrivilegeSerializer(serializers.HyperlinkedModelSerializer):
896 id = serializers.Field()
899 model = PlanetStackPrivilege
900 fields = ('id','created','updated','enacted','backend_status','deleted','user','planetstack','role',)
902 class PlanetStackPrivilegeIdSerializer(serializers.ModelSerializer):
903 id = serializers.Field()
906 model = PlanetStackPrivilege
907 fields = ('id','created','updated','enacted','backend_status','deleted','user','planetstack','role',)
912 class UserSerializer(serializers.HyperlinkedModelSerializer):
913 id = serializers.Field()
917 fields = ('id','password','last_login','email','username','firstname','lastname','phone','user_url','site','public_key','is_active','is_admin','is_staff','is_readonly','created','updated','enacted','backend_status','deleted','timezone',)
919 class UserIdSerializer(serializers.ModelSerializer):
920 id = serializers.Field()
924 fields = ('id','password','last_login','email','username','firstname','lastname','phone','user_url','site','public_key','is_active','is_admin','is_staff','is_readonly','created','updated','enacted','backend_status','deleted','timezone',)
929 class DeploymentSerializer(serializers.HyperlinkedModelSerializer):
930 id = serializers.Field()
933 sites = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='site-detail')
937 sites = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='site-detail')
941 flavors = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='flavor-detail')
945 flavors = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='flavor-detail')
950 fields = ('id','created','updated','enacted','backend_status','deleted','name','admin_user','admin_password','admin_tenant','auth_url','backend_type','availability_zone','accessControl','sites','sites','flavors','flavors',)
952 class DeploymentIdSerializer(serializers.ModelSerializer):
953 id = serializers.Field()
956 sites = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='site-detail')
960 sites = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='site-detail')
964 flavors = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='flavor-detail')
968 flavors = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='flavor-detail')
973 fields = ('id','created','updated','enacted','backend_status','deleted','name','admin_user','admin_password','admin_tenant','auth_url','backend_type','availability_zone','accessControl','sites','sites','flavors','flavors',)
978 class ReservationSerializer(serializers.HyperlinkedModelSerializer):
979 id = serializers.Field()
983 fields = ('id','created','updated','enacted','backend_status','deleted','startTime','slice','duration',)
985 class ReservationIdSerializer(serializers.ModelSerializer):
986 id = serializers.Field()
990 fields = ('id','created','updated','enacted','backend_status','deleted','startTime','slice','duration',)
995 class SitePrivilegeSerializer(serializers.HyperlinkedModelSerializer):
996 id = serializers.Field()
999 model = SitePrivilege
1000 fields = ('id','created','updated','enacted','backend_status','deleted','user','site','role',)
1002 class SitePrivilegeIdSerializer(serializers.ModelSerializer):
1003 id = serializers.Field()
1006 model = SitePrivilege
1007 fields = ('id','created','updated','enacted','backend_status','deleted','user','site','role',)
1012 class SliceDeploymentsSerializer(serializers.HyperlinkedModelSerializer):
1013 id = serializers.Field()
1016 model = SliceDeployments
1017 fields = ('id','created','updated','enacted','backend_status','deleted','slice','deployment','tenant_id','network_id','router_id','subnet_id',)
1019 class SliceDeploymentsIdSerializer(serializers.ModelSerializer):
1020 id = serializers.Field()
1023 model = SliceDeployments
1024 fields = ('id','created','updated','enacted','backend_status','deleted','slice','deployment','tenant_id','network_id','router_id','subnet_id',)
1029 class UserDeploymentsSerializer(serializers.HyperlinkedModelSerializer):
1030 id = serializers.Field()
1033 model = UserDeployments
1034 fields = ('id','created','updated','enacted','backend_status','deleted','user','deployment','kuser_id',)
1036 class UserDeploymentsIdSerializer(serializers.ModelSerializer):
1037 id = serializers.Field()
1040 model = UserDeployments
1041 fields = ('id','created','updated','enacted','backend_status','deleted','user','deployment','kuser_id',)
1046 class AccountSerializer(serializers.HyperlinkedModelSerializer):
1047 id = serializers.Field()
1051 fields = ('id','created','updated','enacted','backend_status','deleted','site',)
1053 class AccountIdSerializer(serializers.ModelSerializer):
1054 id = serializers.Field()
1058 fields = ('id','created','updated','enacted','backend_status','deleted','site',)
1063 class NetworkParameterTypeSerializer(serializers.HyperlinkedModelSerializer):
1064 id = serializers.Field()
1067 model = NetworkParameterType
1068 fields = ('id','created','updated','enacted','backend_status','deleted','name','description',)
1070 class NetworkParameterTypeIdSerializer(serializers.ModelSerializer):
1071 id = serializers.Field()
1074 model = NetworkParameterType
1075 fields = ('id','created','updated','enacted','backend_status','deleted','name','description',)
1080 class SiteCredentialSerializer(serializers.HyperlinkedModelSerializer):
1081 id = serializers.Field()
1084 model = SiteCredential
1085 fields = ('id','created','updated','enacted','backend_status','deleted','site','name','key_id','enc_value',)
1087 class SiteCredentialIdSerializer(serializers.ModelSerializer):
1088 id = serializers.Field()
1091 model = SiteCredential
1092 fields = ('id','created','updated','enacted','backend_status','deleted','site','name','key_id','enc_value',)
1097 class DeploymentPrivilegeSerializer(serializers.HyperlinkedModelSerializer):
1098 id = serializers.Field()
1101 model = DeploymentPrivilege
1102 fields = ('id','created','updated','enacted','backend_status','deleted','user','deployment','role',)
1104 class DeploymentPrivilegeIdSerializer(serializers.ModelSerializer):
1105 id = serializers.Field()
1108 model = DeploymentPrivilege
1109 fields = ('id','created','updated','enacted','backend_status','deleted','user','deployment','role',)
1114 class ImageDeploymentsSerializer(serializers.HyperlinkedModelSerializer):
1115 id = serializers.Field()
1118 model = ImageDeployments
1119 fields = ('id','created','updated','enacted','backend_status','deleted','image','deployment','glance_image_id',)
1121 class ImageDeploymentsIdSerializer(serializers.ModelSerializer):
1122 id = serializers.Field()
1125 model = ImageDeployments
1126 fields = ('id','created','updated','enacted','backend_status','deleted','image','deployment','glance_image_id',)
1131 class DeploymentRoleSerializer(serializers.HyperlinkedModelSerializer):
1132 id = serializers.Field()
1135 model = DeploymentRole
1136 fields = ('id','created','updated','enacted','backend_status','deleted','role',)
1138 class DeploymentRoleIdSerializer(serializers.ModelSerializer):
1139 id = serializers.Field()
1142 model = DeploymentRole
1143 fields = ('id','created','updated','enacted','backend_status','deleted','role',)
1148 class UserCredentialSerializer(serializers.HyperlinkedModelSerializer):
1149 id = serializers.Field()
1152 model = UserCredential
1153 fields = ('id','created','updated','enacted','backend_status','deleted','user','name','key_id','enc_value',)
1155 class UserCredentialIdSerializer(serializers.ModelSerializer):
1156 id = serializers.Field()
1159 model = UserCredential
1160 fields = ('id','created','updated','enacted','backend_status','deleted','user','name','key_id','enc_value',)
1165 class SliceTagSerializer(serializers.HyperlinkedModelSerializer):
1166 id = serializers.Field()
1170 fields = ('id','created','updated','enacted','backend_status','deleted','slice','name','value',)
1172 class SliceTagIdSerializer(serializers.ModelSerializer):
1173 id = serializers.Field()
1177 fields = ('id','created','updated','enacted','backend_status','deleted','slice','name','value',)
1182 class NetworkTemplateSerializer(serializers.HyperlinkedModelSerializer):
1183 id = serializers.Field()
1186 model = NetworkTemplate
1187 fields = ('id','created','updated','enacted','backend_status','deleted','name','description','guaranteedBandwidth','visibility','translation','sharedNetworkName','sharedNetworkId','topologyKind','controllerKind',)
1189 class NetworkTemplateIdSerializer(serializers.ModelSerializer):
1190 id = serializers.Field()
1193 model = NetworkTemplate
1194 fields = ('id','created','updated','enacted','backend_status','deleted','name','description','guaranteedBandwidth','visibility','translation','sharedNetworkName','sharedNetworkId','topologyKind','controllerKind',)
1199 class RouterSerializer(serializers.HyperlinkedModelSerializer):
1200 id = serializers.Field()
1204 fields = ('id','created','updated','enacted','backend_status','deleted','name','owner',)
1206 class RouterIdSerializer(serializers.ModelSerializer):
1207 id = serializers.Field()
1211 fields = ('id','created','updated','enacted','backend_status','deleted','name','owner',)
1216 class ServiceResourceSerializer(serializers.HyperlinkedModelSerializer):
1217 id = serializers.Field()
1220 model = ServiceResource
1221 fields = ('id','created','updated','enacted','backend_status','deleted','serviceClass','name','maxUnitsDeployment','maxUnitsNode','maxDuration','bucketInRate','bucketMaxSize','cost','calendarReservable',)
1223 class ServiceResourceIdSerializer(serializers.ModelSerializer):
1224 id = serializers.Field()
1227 model = ServiceResource
1228 fields = ('id','created','updated','enacted','backend_status','deleted','serviceClass','name','maxUnitsDeployment','maxUnitsNode','maxDuration','bucketInRate','bucketMaxSize','cost','calendarReservable',)
1233 serializerLookUp = {
1235 ServiceAttribute: ServiceAttributeSerializer,
1237 Image: ImageSerializer,
1239 NetworkParameter: NetworkParameterSerializer,
1241 Site: SiteSerializer,
1243 SliceRole: SliceRoleSerializer,
1247 Invoice: InvoiceSerializer,
1249 SlicePrivilege: SlicePrivilegeSerializer,
1251 PlanetStackRole: PlanetStackRoleSerializer,
1253 NetworkSliver: NetworkSliverSerializer,
1255 NetworkDeployments: NetworkDeploymentsSerializer,
1257 Flavor: FlavorSerializer,
1259 Project: ProjectSerializer,
1261 Slice: SliceSerializer,
1263 Network: NetworkSerializer,
1265 Service: ServiceSerializer,
1267 ServiceClass: ServiceClassSerializer,
1269 PlanetStack: PlanetStackSerializer,
1271 Charge: ChargeSerializer,
1273 Role: RoleSerializer,
1275 UsableObject: UsableObjectSerializer,
1277 SiteRole: SiteRoleSerializer,
1279 SliceCredential: SliceCredentialSerializer,
1281 Sliver: SliverSerializer,
1283 Node: NodeSerializer,
1285 DashboardView: DashboardViewSerializer,
1287 ReservedResource: ReservedResourceSerializer,
1289 Payment: PaymentSerializer,
1291 NetworkSlice: NetworkSliceSerializer,
1293 UserDashboardView: UserDashboardViewSerializer,
1295 SiteDeployments: SiteDeploymentsSerializer,
1297 PlanetStackPrivilege: PlanetStackPrivilegeSerializer,
1299 User: UserSerializer,
1301 Deployment: DeploymentSerializer,
1303 Reservation: ReservationSerializer,
1305 SitePrivilege: SitePrivilegeSerializer,
1307 SliceDeployments: SliceDeploymentsSerializer,
1309 UserDeployments: UserDeploymentsSerializer,
1311 Account: AccountSerializer,
1313 NetworkParameterType: NetworkParameterTypeSerializer,
1315 SiteCredential: SiteCredentialSerializer,
1317 DeploymentPrivilege: DeploymentPrivilegeSerializer,
1319 ImageDeployments: ImageDeploymentsSerializer,
1321 DeploymentRole: DeploymentRoleSerializer,
1323 UserCredential: UserCredentialSerializer,
1325 SliceTag: SliceTagSerializer,
1327 NetworkTemplate: NetworkTemplateSerializer,
1329 Router: RouterSerializer,
1331 ServiceResource: ServiceResourceSerializer,
1336 class PlanetStackRetrieveUpdateDestroyAPIView(generics.RetrieveUpdateDestroyAPIView):
1338 # To handle fine-grained field permissions, we have to check can_update
1339 # the object has been updated but before it has been saved.
1341 def update(self, request, *args, **kwargs):
\r
1342 partial = kwargs.pop('partial', False)
\r
1343 self.object = self.get_object_or_none()
\r
1345 serializer = self.get_serializer(self.object, data=request.DATA,
\r
1346 files=request.FILES, partial=partial)
\r
1348 if not serializer.is_valid():
\r
1349 print "UpdateModelMixin: not serializer.is_valid"
\r
1350 print serializer.errors
\r
1351 return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
\r
1354 self.pre_save(serializer.object)
\r
1355 except ValidationError as err:
\r
1356 # full_clean on model instance may be called in pre_save,
\r
1357 # so we have to handle eventual errors.
\r
1358 return Response(err.message_dict, status=status.HTTP_400_BAD_REQUEST)
\r
1360 if serializer.object is not None:
\r
1361 if not serializer.object.can_update(request.user):
\r
1362 return Response(status=status.HTTP_400_BAD_REQUEST)
\r
1364 if self.object is None:
\r
1365 self.object = serializer.save(force_insert=True)
\r
1366 self.post_save(self.object, created=True)
\r
1367 return Response(serializer.data, status=status.HTTP_201_CREATED)
\r
1369 self.object = serializer.save(force_update=True)
\r
1370 self.post_save(self.object, created=False)
\r
1371 return Response(serializer.data, status=status.HTTP_200_OK)
1373 def destroy(self, request, *args, **kwargs):
1374 obj = self.get_object()
1375 if obj.can_update(request.user):
1376 return super(generics.RetrieveUpdateDestroyAPIView, self).destroy(request, *args, **kwargs)
1378 return Response(status=status.HTTP_400_BAD_REQUEST)
1381 # Based on core/views/*.py
1384 class ServiceAttributeList(generics.ListCreateAPIView):
1385 queryset = ServiceAttribute.objects.select_related().all()
1386 serializer_class = ServiceAttributeSerializer
1387 id_serializer_class = ServiceAttributeIdSerializer
1388 filter_backends = (filters.DjangoFilterBackend,)
1389 filter_fields = ('id','created','updated','enacted','backend_status','deleted','name','value','service',)
1391 def get_serializer_class(self):
1392 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
1394 return self.id_serializer_class
1396 return self.serializer_class
1398 def get_queryset(self):
1399 return ServiceAttribute.select_by_user(self.request.user)
1401 def create(self, request, *args, **kwargs):
1402 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
1403 if not (serializer.is_valid()):
1404 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
1405 obj = serializer.object
1406 obj.caller = request.user
1407 if obj.can_update(request.user):
1408 return super(ServiceAttributeList, self).create(request, *args, **kwargs)
1410 raise Exception("failed obj.can_update")
1412 ret = super(ServiceAttributeList, self).create(request, *args, **kwargs)
1413 if (ret.status_code%100 != 200):
1414 raise Exception(ret.data)
1419 class ServiceAttributeDetail(PlanetStackRetrieveUpdateDestroyAPIView):
1420 queryset = ServiceAttribute.objects.select_related().all()
1421 serializer_class = ServiceAttributeSerializer
1422 id_serializer_class = ServiceAttributeIdSerializer
1424 def get_serializer_class(self):
1425 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
1427 return self.id_serializer_class
1429 return self.serializer_class
1431 def get_queryset(self):
1432 return ServiceAttribute.select_by_user(self.request.user)
1434 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
1436 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
1439 XXX smbaker: my intent was to create a view that would return 'new' objects
1440 filled with defaults. I solved it another way, so this code may soon be
1443 class ServiceAttributeNew(GenericAPIView):
1444 serializer_class = ServiceAttributeSerializer
1445 id_serializer_class = ServiceAttributeIdSerializer
1447 def get(self, request, *args, **kwargs):
1448 return self.makenew(request, *args, **kwargs)
1450 def get_serializer_class(self):
1451 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
1453 return self.id_serializer_class
1455 return self.serializer_class
1457 def makenew(self, request, *args, **kwargs):
1458 obj = ServiceAttribute()
1459 serializer = self.get_serializer(obj)
1460 return Response(serializer.data)
1465 class ImageList(generics.ListCreateAPIView):
1466 queryset = Image.objects.select_related().all()
1467 serializer_class = ImageSerializer
1468 id_serializer_class = ImageIdSerializer
1469 filter_backends = (filters.DjangoFilterBackend,)
1470 filter_fields = ('id','created','updated','enacted','backend_status','deleted','name','disk_format','container_format','path',)
1472 def get_serializer_class(self):
1473 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
1475 return self.id_serializer_class
1477 return self.serializer_class
1479 def get_queryset(self):
1480 return Image.select_by_user(self.request.user)
1482 def create(self, request, *args, **kwargs):
1483 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
1484 if not (serializer.is_valid()):
1485 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
1486 obj = serializer.object
1487 obj.caller = request.user
1488 if obj.can_update(request.user):
1489 return super(ImageList, self).create(request, *args, **kwargs)
1491 raise Exception("failed obj.can_update")
1493 ret = super(ImageList, self).create(request, *args, **kwargs)
1494 if (ret.status_code%100 != 200):
1495 raise Exception(ret.data)
1500 class ImageDetail(PlanetStackRetrieveUpdateDestroyAPIView):
1501 queryset = Image.objects.select_related().all()
1502 serializer_class = ImageSerializer
1503 id_serializer_class = ImageIdSerializer
1505 def get_serializer_class(self):
1506 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
1508 return self.id_serializer_class
1510 return self.serializer_class
1512 def get_queryset(self):
1513 return Image.select_by_user(self.request.user)
1515 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
1517 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
1520 XXX smbaker: my intent was to create a view that would return 'new' objects
1521 filled with defaults. I solved it another way, so this code may soon be
1524 class ImageNew(GenericAPIView):
1525 serializer_class = ImageSerializer
1526 id_serializer_class = ImageIdSerializer
1528 def get(self, request, *args, **kwargs):
1529 return self.makenew(request, *args, **kwargs)
1531 def get_serializer_class(self):
1532 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
1534 return self.id_serializer_class
1536 return self.serializer_class
1538 def makenew(self, request, *args, **kwargs):
1540 serializer = self.get_serializer(obj)
1541 return Response(serializer.data)
1546 class NetworkParameterList(generics.ListCreateAPIView):
1547 queryset = NetworkParameter.objects.select_related().all()
1548 serializer_class = NetworkParameterSerializer
1549 id_serializer_class = NetworkParameterIdSerializer
1550 filter_backends = (filters.DjangoFilterBackend,)
1551 filter_fields = ('id','created','updated','enacted','backend_status','deleted','parameter','value','content_type','object_id',)
1553 def get_serializer_class(self):
1554 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
1556 return self.id_serializer_class
1558 return self.serializer_class
1560 def get_queryset(self):
1561 return NetworkParameter.select_by_user(self.request.user)
1563 def create(self, request, *args, **kwargs):
1564 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
1565 if not (serializer.is_valid()):
1566 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
1567 obj = serializer.object
1568 obj.caller = request.user
1569 if obj.can_update(request.user):
1570 return super(NetworkParameterList, self).create(request, *args, **kwargs)
1572 raise Exception("failed obj.can_update")
1574 ret = super(NetworkParameterList, self).create(request, *args, **kwargs)
1575 if (ret.status_code%100 != 200):
1576 raise Exception(ret.data)
1581 class NetworkParameterDetail(PlanetStackRetrieveUpdateDestroyAPIView):
1582 queryset = NetworkParameter.objects.select_related().all()
1583 serializer_class = NetworkParameterSerializer
1584 id_serializer_class = NetworkParameterIdSerializer
1586 def get_serializer_class(self):
1587 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
1589 return self.id_serializer_class
1591 return self.serializer_class
1593 def get_queryset(self):
1594 return NetworkParameter.select_by_user(self.request.user)
1596 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
1598 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
1601 XXX smbaker: my intent was to create a view that would return 'new' objects
1602 filled with defaults. I solved it another way, so this code may soon be
1605 class NetworkParameterNew(GenericAPIView):
1606 serializer_class = NetworkParameterSerializer
1607 id_serializer_class = NetworkParameterIdSerializer
1609 def get(self, request, *args, **kwargs):
1610 return self.makenew(request, *args, **kwargs)
1612 def get_serializer_class(self):
1613 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
1615 return self.id_serializer_class
1617 return self.serializer_class
1619 def makenew(self, request, *args, **kwargs):
1620 obj = NetworkParameter()
1621 serializer = self.get_serializer(obj)
1622 return Response(serializer.data)
1627 class SiteList(generics.ListCreateAPIView):
1628 queryset = Site.objects.select_related().all()
1629 serializer_class = SiteSerializer
1630 id_serializer_class = SiteIdSerializer
1631 filter_backends = (filters.DjangoFilterBackend,)
1632 filter_fields = ('id','created','updated','enacted','backend_status','deleted','name','site_url','enabled','location','longitude','latitude','login_base','is_public','abbreviated_name',)
1634 def get_serializer_class(self):
1635 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
1637 return self.id_serializer_class
1639 return self.serializer_class
1641 def get_queryset(self):
1642 return Site.select_by_user(self.request.user)
1644 def create(self, request, *args, **kwargs):
1645 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
1646 if not (serializer.is_valid()):
1647 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
1648 obj = serializer.object
1649 obj.caller = request.user
1650 if obj.can_update(request.user):
1651 return super(SiteList, self).create(request, *args, **kwargs)
1653 raise Exception("failed obj.can_update")
1655 ret = super(SiteList, self).create(request, *args, **kwargs)
1656 if (ret.status_code%100 != 200):
1657 raise Exception(ret.data)
1662 class SiteDetail(PlanetStackRetrieveUpdateDestroyAPIView):
1663 queryset = Site.objects.select_related().all()
1664 serializer_class = SiteSerializer
1665 id_serializer_class = SiteIdSerializer
1667 def get_serializer_class(self):
1668 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
1670 return self.id_serializer_class
1672 return self.serializer_class
1674 def get_queryset(self):
1675 return Site.select_by_user(self.request.user)
1677 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
1679 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
1682 XXX smbaker: my intent was to create a view that would return 'new' objects
1683 filled with defaults. I solved it another way, so this code may soon be
1686 class SiteNew(GenericAPIView):
1687 serializer_class = SiteSerializer
1688 id_serializer_class = SiteIdSerializer
1690 def get(self, request, *args, **kwargs):
1691 return self.makenew(request, *args, **kwargs)
1693 def get_serializer_class(self):
1694 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
1696 return self.id_serializer_class
1698 return self.serializer_class
1700 def makenew(self, request, *args, **kwargs):
1702 serializer = self.get_serializer(obj)
1703 return Response(serializer.data)
1708 class SliceRoleList(generics.ListCreateAPIView):
1709 queryset = SliceRole.objects.select_related().all()
1710 serializer_class = SliceRoleSerializer
1711 id_serializer_class = SliceRoleIdSerializer
1712 filter_backends = (filters.DjangoFilterBackend,)
1713 filter_fields = ('id','created','updated','enacted','backend_status','deleted','role',)
1715 def get_serializer_class(self):
1716 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
1718 return self.id_serializer_class
1720 return self.serializer_class
1722 def get_queryset(self):
1723 return SliceRole.select_by_user(self.request.user)
1725 def create(self, request, *args, **kwargs):
1726 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
1727 if not (serializer.is_valid()):
1728 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
1729 obj = serializer.object
1730 obj.caller = request.user
1731 if obj.can_update(request.user):
1732 return super(SliceRoleList, self).create(request, *args, **kwargs)
1734 raise Exception("failed obj.can_update")
1736 ret = super(SliceRoleList, self).create(request, *args, **kwargs)
1737 if (ret.status_code%100 != 200):
1738 raise Exception(ret.data)
1743 class SliceRoleDetail(PlanetStackRetrieveUpdateDestroyAPIView):
1744 queryset = SliceRole.objects.select_related().all()
1745 serializer_class = SliceRoleSerializer
1746 id_serializer_class = SliceRoleIdSerializer
1748 def get_serializer_class(self):
1749 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
1751 return self.id_serializer_class
1753 return self.serializer_class
1755 def get_queryset(self):
1756 return SliceRole.select_by_user(self.request.user)
1758 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
1760 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
1763 XXX smbaker: my intent was to create a view that would return 'new' objects
1764 filled with defaults. I solved it another way, so this code may soon be
1767 class SliceRoleNew(GenericAPIView):
1768 serializer_class = SliceRoleSerializer
1769 id_serializer_class = SliceRoleIdSerializer
1771 def get(self, request, *args, **kwargs):
1772 return self.makenew(request, *args, **kwargs)
1774 def get_serializer_class(self):
1775 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
1777 return self.id_serializer_class
1779 return self.serializer_class
1781 def makenew(self, request, *args, **kwargs):
1783 serializer = self.get_serializer(obj)
1784 return Response(serializer.data)
1789 class TagList(generics.ListCreateAPIView):
1790 queryset = Tag.objects.select_related().all()
1791 serializer_class = TagSerializer
1792 id_serializer_class = TagIdSerializer
1793 filter_backends = (filters.DjangoFilterBackend,)
1794 filter_fields = ('id','created','updated','enacted','backend_status','deleted','service','name','value','content_type','object_id',)
1796 def get_serializer_class(self):
1797 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
1799 return self.id_serializer_class
1801 return self.serializer_class
1803 def get_queryset(self):
1804 return Tag.select_by_user(self.request.user)
1806 def create(self, request, *args, **kwargs):
1807 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
1808 if not (serializer.is_valid()):
1809 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
1810 obj = serializer.object
1811 obj.caller = request.user
1812 if obj.can_update(request.user):
1813 return super(TagList, self).create(request, *args, **kwargs)
1815 raise Exception("failed obj.can_update")
1817 ret = super(TagList, self).create(request, *args, **kwargs)
1818 if (ret.status_code%100 != 200):
1819 raise Exception(ret.data)
1824 class TagDetail(PlanetStackRetrieveUpdateDestroyAPIView):
1825 queryset = Tag.objects.select_related().all()
1826 serializer_class = TagSerializer
1827 id_serializer_class = TagIdSerializer
1829 def get_serializer_class(self):
1830 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
1832 return self.id_serializer_class
1834 return self.serializer_class
1836 def get_queryset(self):
1837 return Tag.select_by_user(self.request.user)
1839 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
1841 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
1844 XXX smbaker: my intent was to create a view that would return 'new' objects
1845 filled with defaults. I solved it another way, so this code may soon be
1848 class TagNew(GenericAPIView):
1849 serializer_class = TagSerializer
1850 id_serializer_class = TagIdSerializer
1852 def get(self, request, *args, **kwargs):
1853 return self.makenew(request, *args, **kwargs)
1855 def get_serializer_class(self):
1856 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
1858 return self.id_serializer_class
1860 return self.serializer_class
1862 def makenew(self, request, *args, **kwargs):
1864 serializer = self.get_serializer(obj)
1865 return Response(serializer.data)
1870 class InvoiceList(generics.ListCreateAPIView):
1871 queryset = Invoice.objects.select_related().all()
1872 serializer_class = InvoiceSerializer
1873 id_serializer_class = InvoiceIdSerializer
1874 filter_backends = (filters.DjangoFilterBackend,)
1875 filter_fields = ('id','created','updated','enacted','backend_status','deleted','date','account',)
1877 def get_serializer_class(self):
1878 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
1880 return self.id_serializer_class
1882 return self.serializer_class
1884 def get_queryset(self):
1885 return Invoice.select_by_user(self.request.user)
1887 def create(self, request, *args, **kwargs):
1888 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
1889 if not (serializer.is_valid()):
1890 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
1891 obj = serializer.object
1892 obj.caller = request.user
1893 if obj.can_update(request.user):
1894 return super(InvoiceList, self).create(request, *args, **kwargs)
1896 raise Exception("failed obj.can_update")
1898 ret = super(InvoiceList, self).create(request, *args, **kwargs)
1899 if (ret.status_code%100 != 200):
1900 raise Exception(ret.data)
1905 class InvoiceDetail(PlanetStackRetrieveUpdateDestroyAPIView):
1906 queryset = Invoice.objects.select_related().all()
1907 serializer_class = InvoiceSerializer
1908 id_serializer_class = InvoiceIdSerializer
1910 def get_serializer_class(self):
1911 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
1913 return self.id_serializer_class
1915 return self.serializer_class
1917 def get_queryset(self):
1918 return Invoice.select_by_user(self.request.user)
1920 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
1922 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
1925 XXX smbaker: my intent was to create a view that would return 'new' objects
1926 filled with defaults. I solved it another way, so this code may soon be
1929 class InvoiceNew(GenericAPIView):
1930 serializer_class = InvoiceSerializer
1931 id_serializer_class = InvoiceIdSerializer
1933 def get(self, request, *args, **kwargs):
1934 return self.makenew(request, *args, **kwargs)
1936 def get_serializer_class(self):
1937 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
1939 return self.id_serializer_class
1941 return self.serializer_class
1943 def makenew(self, request, *args, **kwargs):
1945 serializer = self.get_serializer(obj)
1946 return Response(serializer.data)
1951 class SlicePrivilegeList(generics.ListCreateAPIView):
1952 queryset = SlicePrivilege.objects.select_related().all()
1953 serializer_class = SlicePrivilegeSerializer
1954 id_serializer_class = SlicePrivilegeIdSerializer
1955 filter_backends = (filters.DjangoFilterBackend,)
1956 filter_fields = ('id','created','updated','enacted','backend_status','deleted','user','slice','role',)
1958 def get_serializer_class(self):
1959 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
1961 return self.id_serializer_class
1963 return self.serializer_class
1965 def get_queryset(self):
1966 return SlicePrivilege.select_by_user(self.request.user)
1968 def create(self, request, *args, **kwargs):
1969 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
1970 if not (serializer.is_valid()):
1971 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
1972 obj = serializer.object
1973 obj.caller = request.user
1974 if obj.can_update(request.user):
1975 return super(SlicePrivilegeList, self).create(request, *args, **kwargs)
1977 raise Exception("failed obj.can_update")
1979 ret = super(SlicePrivilegeList, self).create(request, *args, **kwargs)
1980 if (ret.status_code%100 != 200):
1981 raise Exception(ret.data)
1986 class SlicePrivilegeDetail(PlanetStackRetrieveUpdateDestroyAPIView):
1987 queryset = SlicePrivilege.objects.select_related().all()
1988 serializer_class = SlicePrivilegeSerializer
1989 id_serializer_class = SlicePrivilegeIdSerializer
1991 def get_serializer_class(self):
1992 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
1994 return self.id_serializer_class
1996 return self.serializer_class
1998 def get_queryset(self):
1999 return SlicePrivilege.select_by_user(self.request.user)
2001 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
2003 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
2006 XXX smbaker: my intent was to create a view that would return 'new' objects
2007 filled with defaults. I solved it another way, so this code may soon be
2010 class SlicePrivilegeNew(GenericAPIView):
2011 serializer_class = SlicePrivilegeSerializer
2012 id_serializer_class = SlicePrivilegeIdSerializer
2014 def get(self, request, *args, **kwargs):
2015 return self.makenew(request, *args, **kwargs)
2017 def get_serializer_class(self):
2018 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
2020 return self.id_serializer_class
2022 return self.serializer_class
2024 def makenew(self, request, *args, **kwargs):
2025 obj = SlicePrivilege()
2026 serializer = self.get_serializer(obj)
2027 return Response(serializer.data)
2032 class PlanetStackRoleList(generics.ListCreateAPIView):
2033 queryset = PlanetStackRole.objects.select_related().all()
2034 serializer_class = PlanetStackRoleSerializer
2035 id_serializer_class = PlanetStackRoleIdSerializer
2036 filter_backends = (filters.DjangoFilterBackend,)
2037 filter_fields = ('id','created','updated','enacted','backend_status','deleted','role',)
2039 def get_serializer_class(self):
2040 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
2042 return self.id_serializer_class
2044 return self.serializer_class
2046 def get_queryset(self):
2047 return PlanetStackRole.select_by_user(self.request.user)
2049 def create(self, request, *args, **kwargs):
2050 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
2051 if not (serializer.is_valid()):
2052 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
2053 obj = serializer.object
2054 obj.caller = request.user
2055 if obj.can_update(request.user):
2056 return super(PlanetStackRoleList, self).create(request, *args, **kwargs)
2058 raise Exception("failed obj.can_update")
2060 ret = super(PlanetStackRoleList, self).create(request, *args, **kwargs)
2061 if (ret.status_code%100 != 200):
2062 raise Exception(ret.data)
2067 class PlanetStackRoleDetail(PlanetStackRetrieveUpdateDestroyAPIView):
2068 queryset = PlanetStackRole.objects.select_related().all()
2069 serializer_class = PlanetStackRoleSerializer
2070 id_serializer_class = PlanetStackRoleIdSerializer
2072 def get_serializer_class(self):
2073 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
2075 return self.id_serializer_class
2077 return self.serializer_class
2079 def get_queryset(self):
2080 return PlanetStackRole.select_by_user(self.request.user)
2082 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
2084 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
2087 XXX smbaker: my intent was to create a view that would return 'new' objects
2088 filled with defaults. I solved it another way, so this code may soon be
2091 class PlanetStackRoleNew(GenericAPIView):
2092 serializer_class = PlanetStackRoleSerializer
2093 id_serializer_class = PlanetStackRoleIdSerializer
2095 def get(self, request, *args, **kwargs):
2096 return self.makenew(request, *args, **kwargs)
2098 def get_serializer_class(self):
2099 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
2101 return self.id_serializer_class
2103 return self.serializer_class
2105 def makenew(self, request, *args, **kwargs):
2106 obj = PlanetStackRole()
2107 serializer = self.get_serializer(obj)
2108 return Response(serializer.data)
2113 class NetworkSliverList(generics.ListCreateAPIView):
2114 queryset = NetworkSliver.objects.select_related().all()
2115 serializer_class = NetworkSliverSerializer
2116 id_serializer_class = NetworkSliverIdSerializer
2117 filter_backends = (filters.DjangoFilterBackend,)
2118 filter_fields = ('id','created','updated','enacted','backend_status','deleted','network','sliver','ip','port_id',)
2120 def get_serializer_class(self):
2121 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
2123 return self.id_serializer_class
2125 return self.serializer_class
2127 def get_queryset(self):
2128 return NetworkSliver.select_by_user(self.request.user)
2130 def create(self, request, *args, **kwargs):
2131 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
2132 if not (serializer.is_valid()):
2133 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
2134 obj = serializer.object
2135 obj.caller = request.user
2136 if obj.can_update(request.user):
2137 return super(NetworkSliverList, self).create(request, *args, **kwargs)
2139 raise Exception("failed obj.can_update")
2141 ret = super(NetworkSliverList, self).create(request, *args, **kwargs)
2142 if (ret.status_code%100 != 200):
2143 raise Exception(ret.data)
2148 class NetworkSliverDetail(PlanetStackRetrieveUpdateDestroyAPIView):
2149 queryset = NetworkSliver.objects.select_related().all()
2150 serializer_class = NetworkSliverSerializer
2151 id_serializer_class = NetworkSliverIdSerializer
2153 def get_serializer_class(self):
2154 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
2156 return self.id_serializer_class
2158 return self.serializer_class
2160 def get_queryset(self):
2161 return NetworkSliver.select_by_user(self.request.user)
2163 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
2165 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
2168 XXX smbaker: my intent was to create a view that would return 'new' objects
2169 filled with defaults. I solved it another way, so this code may soon be
2172 class NetworkSliverNew(GenericAPIView):
2173 serializer_class = NetworkSliverSerializer
2174 id_serializer_class = NetworkSliverIdSerializer
2176 def get(self, request, *args, **kwargs):
2177 return self.makenew(request, *args, **kwargs)
2179 def get_serializer_class(self):
2180 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
2182 return self.id_serializer_class
2184 return self.serializer_class
2186 def makenew(self, request, *args, **kwargs):
2187 obj = NetworkSliver()
2188 serializer = self.get_serializer(obj)
2189 return Response(serializer.data)
2194 class NetworkDeploymentsList(generics.ListCreateAPIView):
2195 queryset = NetworkDeployments.objects.select_related().all()
2196 serializer_class = NetworkDeploymentsSerializer
2197 id_serializer_class = NetworkDeploymentsIdSerializer
2198 filter_backends = (filters.DjangoFilterBackend,)
2199 filter_fields = ('id','created','updated','enacted','backend_status','deleted','network','deployment','net_id','router_id','subnet_id','subnet',)
2201 def get_serializer_class(self):
2202 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
2204 return self.id_serializer_class
2206 return self.serializer_class
2208 def get_queryset(self):
2209 return NetworkDeployments.select_by_user(self.request.user)
2211 def create(self, request, *args, **kwargs):
2212 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
2213 if not (serializer.is_valid()):
2214 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
2215 obj = serializer.object
2216 obj.caller = request.user
2217 if obj.can_update(request.user):
2218 return super(NetworkDeploymentsList, self).create(request, *args, **kwargs)
2220 raise Exception("failed obj.can_update")
2222 ret = super(NetworkDeploymentsList, self).create(request, *args, **kwargs)
2223 if (ret.status_code%100 != 200):
2224 raise Exception(ret.data)
2229 class NetworkDeploymentsDetail(PlanetStackRetrieveUpdateDestroyAPIView):
2230 queryset = NetworkDeployments.objects.select_related().all()
2231 serializer_class = NetworkDeploymentsSerializer
2232 id_serializer_class = NetworkDeploymentsIdSerializer
2234 def get_serializer_class(self):
2235 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
2237 return self.id_serializer_class
2239 return self.serializer_class
2241 def get_queryset(self):
2242 return NetworkDeployments.select_by_user(self.request.user)
2244 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
2246 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
2249 XXX smbaker: my intent was to create a view that would return 'new' objects
2250 filled with defaults. I solved it another way, so this code may soon be
2253 class NetworkDeploymentsNew(GenericAPIView):
2254 serializer_class = NetworkDeploymentsSerializer
2255 id_serializer_class = NetworkDeploymentsIdSerializer
2257 def get(self, request, *args, **kwargs):
2258 return self.makenew(request, *args, **kwargs)
2260 def get_serializer_class(self):
2261 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
2263 return self.id_serializer_class
2265 return self.serializer_class
2267 def makenew(self, request, *args, **kwargs):
2268 obj = NetworkDeployments()
2269 serializer = self.get_serializer(obj)
2270 return Response(serializer.data)
2275 class FlavorList(generics.ListCreateAPIView):
2276 queryset = Flavor.objects.select_related().all()
2277 serializer_class = FlavorSerializer
2278 id_serializer_class = FlavorIdSerializer
2279 filter_backends = (filters.DjangoFilterBackend,)
2280 filter_fields = ('id','created','updated','enacted','backend_status','deleted','name','description','flavor','order','default',)
2282 def get_serializer_class(self):
2283 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
2285 return self.id_serializer_class
2287 return self.serializer_class
2289 def get_queryset(self):
2290 return Flavor.select_by_user(self.request.user)
2292 def create(self, request, *args, **kwargs):
2293 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
2294 if not (serializer.is_valid()):
2295 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
2296 obj = serializer.object
2297 obj.caller = request.user
2298 if obj.can_update(request.user):
2299 return super(FlavorList, self).create(request, *args, **kwargs)
2301 raise Exception("failed obj.can_update")
2303 ret = super(FlavorList, self).create(request, *args, **kwargs)
2304 if (ret.status_code%100 != 200):
2305 raise Exception(ret.data)
2310 class FlavorDetail(PlanetStackRetrieveUpdateDestroyAPIView):
2311 queryset = Flavor.objects.select_related().all()
2312 serializer_class = FlavorSerializer
2313 id_serializer_class = FlavorIdSerializer
2315 def get_serializer_class(self):
2316 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
2318 return self.id_serializer_class
2320 return self.serializer_class
2322 def get_queryset(self):
2323 return Flavor.select_by_user(self.request.user)
2325 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
2327 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
2330 XXX smbaker: my intent was to create a view that would return 'new' objects
2331 filled with defaults. I solved it another way, so this code may soon be
2334 class FlavorNew(GenericAPIView):
2335 serializer_class = FlavorSerializer
2336 id_serializer_class = FlavorIdSerializer
2338 def get(self, request, *args, **kwargs):
2339 return self.makenew(request, *args, **kwargs)
2341 def get_serializer_class(self):
2342 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
2344 return self.id_serializer_class
2346 return self.serializer_class
2348 def makenew(self, request, *args, **kwargs):
2350 serializer = self.get_serializer(obj)
2351 return Response(serializer.data)
2356 class ProjectList(generics.ListCreateAPIView):
2357 queryset = Project.objects.select_related().all()
2358 serializer_class = ProjectSerializer
2359 id_serializer_class = ProjectIdSerializer
2360 filter_backends = (filters.DjangoFilterBackend,)
2361 filter_fields = ('id','created','updated','enacted','backend_status','deleted','name',)
2363 def get_serializer_class(self):
2364 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
2366 return self.id_serializer_class
2368 return self.serializer_class
2370 def get_queryset(self):
2371 return Project.select_by_user(self.request.user)
2373 def create(self, request, *args, **kwargs):
2374 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
2375 if not (serializer.is_valid()):
2376 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
2377 obj = serializer.object
2378 obj.caller = request.user
2379 if obj.can_update(request.user):
2380 return super(ProjectList, self).create(request, *args, **kwargs)
2382 raise Exception("failed obj.can_update")
2384 ret = super(ProjectList, self).create(request, *args, **kwargs)
2385 if (ret.status_code%100 != 200):
2386 raise Exception(ret.data)
2391 class ProjectDetail(PlanetStackRetrieveUpdateDestroyAPIView):
2392 queryset = Project.objects.select_related().all()
2393 serializer_class = ProjectSerializer
2394 id_serializer_class = ProjectIdSerializer
2396 def get_serializer_class(self):
2397 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
2399 return self.id_serializer_class
2401 return self.serializer_class
2403 def get_queryset(self):
2404 return Project.select_by_user(self.request.user)
2406 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
2408 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
2411 XXX smbaker: my intent was to create a view that would return 'new' objects
2412 filled with defaults. I solved it another way, so this code may soon be
2415 class ProjectNew(GenericAPIView):
2416 serializer_class = ProjectSerializer
2417 id_serializer_class = ProjectIdSerializer
2419 def get(self, request, *args, **kwargs):
2420 return self.makenew(request, *args, **kwargs)
2422 def get_serializer_class(self):
2423 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
2425 return self.id_serializer_class
2427 return self.serializer_class
2429 def makenew(self, request, *args, **kwargs):
2431 serializer = self.get_serializer(obj)
2432 return Response(serializer.data)
2437 class SliceList(generics.ListCreateAPIView):
2438 queryset = Slice.objects.select_related().all()
2439 serializer_class = SliceSerializer
2440 id_serializer_class = SliceIdSerializer
2441 filter_backends = (filters.DjangoFilterBackend,)
2442 filter_fields = ('id','created','updated','enacted','backend_status','deleted','name','enabled','omf_friendly','description','slice_url','site','max_slivers','imagePreference','service','network','mountDataSets','serviceClass','creator','networks','availableNetworks','networks','networks',)
2444 def get_serializer_class(self):
2445 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
2447 return self.id_serializer_class
2449 return self.serializer_class
2451 def get_queryset(self):
2452 return Slice.select_by_user(self.request.user)
2454 def create(self, request, *args, **kwargs):
2455 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
2456 if not (serializer.is_valid()):
2457 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
2458 obj = serializer.object
2459 obj.caller = request.user
2460 if obj.can_update(request.user):
2461 return super(SliceList, self).create(request, *args, **kwargs)
2463 raise Exception("failed obj.can_update")
2465 ret = super(SliceList, self).create(request, *args, **kwargs)
2466 if (ret.status_code%100 != 200):
2467 raise Exception(ret.data)
2472 class SliceDetail(PlanetStackRetrieveUpdateDestroyAPIView):
2473 queryset = Slice.objects.select_related().all()
2474 serializer_class = SliceSerializer
2475 id_serializer_class = SliceIdSerializer
2477 def get_serializer_class(self):
2478 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
2480 return self.id_serializer_class
2482 return self.serializer_class
2484 def get_queryset(self):
2485 return Slice.select_by_user(self.request.user)
2487 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
2489 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
2492 XXX smbaker: my intent was to create a view that would return 'new' objects
2493 filled with defaults. I solved it another way, so this code may soon be
2496 class SliceNew(GenericAPIView):
2497 serializer_class = SliceSerializer
2498 id_serializer_class = SliceIdSerializer
2500 def get(self, request, *args, **kwargs):
2501 return self.makenew(request, *args, **kwargs)
2503 def get_serializer_class(self):
2504 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
2506 return self.id_serializer_class
2508 return self.serializer_class
2510 def makenew(self, request, *args, **kwargs):
2512 serializer = self.get_serializer(obj)
2513 return Response(serializer.data)
2518 class NetworkList(generics.ListCreateAPIView):
2519 queryset = Network.objects.select_related().all()
2520 serializer_class = NetworkSerializer
2521 id_serializer_class = NetworkIdSerializer
2522 filter_backends = (filters.DjangoFilterBackend,)
2523 filter_fields = ('id','created','updated','enacted','backend_status','deleted','name','template','subnet','ports','labels','owner','guaranteedBandwidth','permitAllSlices','topologyParameters','controllerUrl','controllerParameters','network_id','router_id','subnet_id','routers','availableRouters','routers','routers',)
2525 def get_serializer_class(self):
2526 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
2528 return self.id_serializer_class
2530 return self.serializer_class
2532 def get_queryset(self):
2533 return Network.select_by_user(self.request.user)
2535 def create(self, request, *args, **kwargs):
2536 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
2537 if not (serializer.is_valid()):
2538 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
2539 obj = serializer.object
2540 obj.caller = request.user
2541 if obj.can_update(request.user):
2542 return super(NetworkList, self).create(request, *args, **kwargs)
2544 raise Exception("failed obj.can_update")
2546 ret = super(NetworkList, self).create(request, *args, **kwargs)
2547 if (ret.status_code%100 != 200):
2548 raise Exception(ret.data)
2553 class NetworkDetail(PlanetStackRetrieveUpdateDestroyAPIView):
2554 queryset = Network.objects.select_related().all()
2555 serializer_class = NetworkSerializer
2556 id_serializer_class = NetworkIdSerializer
2558 def get_serializer_class(self):
2559 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
2561 return self.id_serializer_class
2563 return self.serializer_class
2565 def get_queryset(self):
2566 return Network.select_by_user(self.request.user)
2568 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
2570 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
2573 XXX smbaker: my intent was to create a view that would return 'new' objects
2574 filled with defaults. I solved it another way, so this code may soon be
2577 class NetworkNew(GenericAPIView):
2578 serializer_class = NetworkSerializer
2579 id_serializer_class = NetworkIdSerializer
2581 def get(self, request, *args, **kwargs):
2582 return self.makenew(request, *args, **kwargs)
2584 def get_serializer_class(self):
2585 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
2587 return self.id_serializer_class
2589 return self.serializer_class
2591 def makenew(self, request, *args, **kwargs):
2593 serializer = self.get_serializer(obj)
2594 return Response(serializer.data)
2599 class ServiceList(generics.ListCreateAPIView):
2600 queryset = Service.objects.select_related().all()
2601 serializer_class = ServiceSerializer
2602 id_serializer_class = ServiceIdSerializer
2603 filter_backends = (filters.DjangoFilterBackend,)
2604 filter_fields = ('id','created','updated','enacted','backend_status','deleted','description','enabled','name','versionNumber','published',)
2606 def get_serializer_class(self):
2607 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
2609 return self.id_serializer_class
2611 return self.serializer_class
2613 def get_queryset(self):
2614 return Service.select_by_user(self.request.user)
2616 def create(self, request, *args, **kwargs):
2617 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
2618 if not (serializer.is_valid()):
2619 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
2620 obj = serializer.object
2621 obj.caller = request.user
2622 if obj.can_update(request.user):
2623 return super(ServiceList, self).create(request, *args, **kwargs)
2625 raise Exception("failed obj.can_update")
2627 ret = super(ServiceList, self).create(request, *args, **kwargs)
2628 if (ret.status_code%100 != 200):
2629 raise Exception(ret.data)
2634 class ServiceDetail(PlanetStackRetrieveUpdateDestroyAPIView):
2635 queryset = Service.objects.select_related().all()
2636 serializer_class = ServiceSerializer
2637 id_serializer_class = ServiceIdSerializer
2639 def get_serializer_class(self):
2640 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
2642 return self.id_serializer_class
2644 return self.serializer_class
2646 def get_queryset(self):
2647 return Service.select_by_user(self.request.user)
2649 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
2651 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
2654 XXX smbaker: my intent was to create a view that would return 'new' objects
2655 filled with defaults. I solved it another way, so this code may soon be
2658 class ServiceNew(GenericAPIView):
2659 serializer_class = ServiceSerializer
2660 id_serializer_class = ServiceIdSerializer
2662 def get(self, request, *args, **kwargs):
2663 return self.makenew(request, *args, **kwargs)
2665 def get_serializer_class(self):
2666 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
2668 return self.id_serializer_class
2670 return self.serializer_class
2672 def makenew(self, request, *args, **kwargs):
2674 serializer = self.get_serializer(obj)
2675 return Response(serializer.data)
2680 class ServiceClassList(generics.ListCreateAPIView):
2681 queryset = ServiceClass.objects.select_related().all()
2682 serializer_class = ServiceClassSerializer
2683 id_serializer_class = ServiceClassIdSerializer
2684 filter_backends = (filters.DjangoFilterBackend,)
2685 filter_fields = ('id','created','updated','enacted','backend_status','deleted','name','description','commitment','membershipFee','membershipFeeMonths','upgradeRequiresApproval',)
2687 def get_serializer_class(self):
2688 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
2690 return self.id_serializer_class
2692 return self.serializer_class
2694 def get_queryset(self):
2695 return ServiceClass.select_by_user(self.request.user)
2697 def create(self, request, *args, **kwargs):
2698 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
2699 if not (serializer.is_valid()):
2700 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
2701 obj = serializer.object
2702 obj.caller = request.user
2703 if obj.can_update(request.user):
2704 return super(ServiceClassList, self).create(request, *args, **kwargs)
2706 raise Exception("failed obj.can_update")
2708 ret = super(ServiceClassList, self).create(request, *args, **kwargs)
2709 if (ret.status_code%100 != 200):
2710 raise Exception(ret.data)
2715 class ServiceClassDetail(PlanetStackRetrieveUpdateDestroyAPIView):
2716 queryset = ServiceClass.objects.select_related().all()
2717 serializer_class = ServiceClassSerializer
2718 id_serializer_class = ServiceClassIdSerializer
2720 def get_serializer_class(self):
2721 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
2723 return self.id_serializer_class
2725 return self.serializer_class
2727 def get_queryset(self):
2728 return ServiceClass.select_by_user(self.request.user)
2730 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
2732 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
2735 XXX smbaker: my intent was to create a view that would return 'new' objects
2736 filled with defaults. I solved it another way, so this code may soon be
2739 class ServiceClassNew(GenericAPIView):
2740 serializer_class = ServiceClassSerializer
2741 id_serializer_class = ServiceClassIdSerializer
2743 def get(self, request, *args, **kwargs):
2744 return self.makenew(request, *args, **kwargs)
2746 def get_serializer_class(self):
2747 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
2749 return self.id_serializer_class
2751 return self.serializer_class
2753 def makenew(self, request, *args, **kwargs):
2754 obj = ServiceClass()
2755 serializer = self.get_serializer(obj)
2756 return Response(serializer.data)
2761 class PlanetStackList(generics.ListCreateAPIView):
2762 queryset = PlanetStack.objects.select_related().all()
2763 serializer_class = PlanetStackSerializer
2764 id_serializer_class = PlanetStackIdSerializer
2765 filter_backends = (filters.DjangoFilterBackend,)
2766 filter_fields = ('id','created','updated','enacted','backend_status','deleted','description',)
2768 def get_serializer_class(self):
2769 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
2771 return self.id_serializer_class
2773 return self.serializer_class
2775 def get_queryset(self):
2776 return PlanetStack.select_by_user(self.request.user)
2778 def create(self, request, *args, **kwargs):
2779 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
2780 if not (serializer.is_valid()):
2781 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
2782 obj = serializer.object
2783 obj.caller = request.user
2784 if obj.can_update(request.user):
2785 return super(PlanetStackList, self).create(request, *args, **kwargs)
2787 raise Exception("failed obj.can_update")
2789 ret = super(PlanetStackList, self).create(request, *args, **kwargs)
2790 if (ret.status_code%100 != 200):
2791 raise Exception(ret.data)
2796 class PlanetStackDetail(PlanetStackRetrieveUpdateDestroyAPIView):
2797 queryset = PlanetStack.objects.select_related().all()
2798 serializer_class = PlanetStackSerializer
2799 id_serializer_class = PlanetStackIdSerializer
2801 def get_serializer_class(self):
2802 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
2804 return self.id_serializer_class
2806 return self.serializer_class
2808 def get_queryset(self):
2809 return PlanetStack.select_by_user(self.request.user)
2811 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
2813 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
2816 XXX smbaker: my intent was to create a view that would return 'new' objects
2817 filled with defaults. I solved it another way, so this code may soon be
2820 class PlanetStackNew(GenericAPIView):
2821 serializer_class = PlanetStackSerializer
2822 id_serializer_class = PlanetStackIdSerializer
2824 def get(self, request, *args, **kwargs):
2825 return self.makenew(request, *args, **kwargs)
2827 def get_serializer_class(self):
2828 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
2830 return self.id_serializer_class
2832 return self.serializer_class
2834 def makenew(self, request, *args, **kwargs):
2836 serializer = self.get_serializer(obj)
2837 return Response(serializer.data)
2842 class ChargeList(generics.ListCreateAPIView):
2843 queryset = Charge.objects.select_related().all()
2844 serializer_class = ChargeSerializer
2845 id_serializer_class = ChargeIdSerializer
2846 filter_backends = (filters.DjangoFilterBackend,)
2847 filter_fields = ('id','created','updated','enacted','backend_status','deleted','account','slice','kind','state','date','object','amount','coreHours','invoice',)
2849 def get_serializer_class(self):
2850 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
2852 return self.id_serializer_class
2854 return self.serializer_class
2856 def get_queryset(self):
2857 return Charge.select_by_user(self.request.user)
2859 def create(self, request, *args, **kwargs):
2860 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
2861 if not (serializer.is_valid()):
2862 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
2863 obj = serializer.object
2864 obj.caller = request.user
2865 if obj.can_update(request.user):
2866 return super(ChargeList, self).create(request, *args, **kwargs)
2868 raise Exception("failed obj.can_update")
2870 ret = super(ChargeList, self).create(request, *args, **kwargs)
2871 if (ret.status_code%100 != 200):
2872 raise Exception(ret.data)
2877 class ChargeDetail(PlanetStackRetrieveUpdateDestroyAPIView):
2878 queryset = Charge.objects.select_related().all()
2879 serializer_class = ChargeSerializer
2880 id_serializer_class = ChargeIdSerializer
2882 def get_serializer_class(self):
2883 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
2885 return self.id_serializer_class
2887 return self.serializer_class
2889 def get_queryset(self):
2890 return Charge.select_by_user(self.request.user)
2892 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
2894 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
2897 XXX smbaker: my intent was to create a view that would return 'new' objects
2898 filled with defaults. I solved it another way, so this code may soon be
2901 class ChargeNew(GenericAPIView):
2902 serializer_class = ChargeSerializer
2903 id_serializer_class = ChargeIdSerializer
2905 def get(self, request, *args, **kwargs):
2906 return self.makenew(request, *args, **kwargs)
2908 def get_serializer_class(self):
2909 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
2911 return self.id_serializer_class
2913 return self.serializer_class
2915 def makenew(self, request, *args, **kwargs):
2917 serializer = self.get_serializer(obj)
2918 return Response(serializer.data)
2923 class RoleList(generics.ListCreateAPIView):
2924 queryset = Role.objects.select_related().all()
2925 serializer_class = RoleSerializer
2926 id_serializer_class = RoleIdSerializer
2927 filter_backends = (filters.DjangoFilterBackend,)
2928 filter_fields = ('id','created','updated','enacted','backend_status','deleted','role_type','role','description','content_type',)
2930 def get_serializer_class(self):
2931 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
2933 return self.id_serializer_class
2935 return self.serializer_class
2937 def get_queryset(self):
2938 return Role.select_by_user(self.request.user)
2940 def create(self, request, *args, **kwargs):
2941 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
2942 if not (serializer.is_valid()):
2943 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
2944 obj = serializer.object
2945 obj.caller = request.user
2946 if obj.can_update(request.user):
2947 return super(RoleList, self).create(request, *args, **kwargs)
2949 raise Exception("failed obj.can_update")
2951 ret = super(RoleList, self).create(request, *args, **kwargs)
2952 if (ret.status_code%100 != 200):
2953 raise Exception(ret.data)
2958 class RoleDetail(PlanetStackRetrieveUpdateDestroyAPIView):
2959 queryset = Role.objects.select_related().all()
2960 serializer_class = RoleSerializer
2961 id_serializer_class = RoleIdSerializer
2963 def get_serializer_class(self):
2964 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
2966 return self.id_serializer_class
2968 return self.serializer_class
2970 def get_queryset(self):
2971 return Role.select_by_user(self.request.user)
2973 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
2975 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
2978 XXX smbaker: my intent was to create a view that would return 'new' objects
2979 filled with defaults. I solved it another way, so this code may soon be
2982 class RoleNew(GenericAPIView):
2983 serializer_class = RoleSerializer
2984 id_serializer_class = RoleIdSerializer
2986 def get(self, request, *args, **kwargs):
2987 return self.makenew(request, *args, **kwargs)
2989 def get_serializer_class(self):
2990 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
2992 return self.id_serializer_class
2994 return self.serializer_class
2996 def makenew(self, request, *args, **kwargs):
2998 serializer = self.get_serializer(obj)
2999 return Response(serializer.data)
3004 class UsableObjectList(generics.ListCreateAPIView):
3005 queryset = UsableObject.objects.select_related().all()
3006 serializer_class = UsableObjectSerializer
3007 id_serializer_class = UsableObjectIdSerializer
3008 filter_backends = (filters.DjangoFilterBackend,)
3009 filter_fields = ('id','created','updated','enacted','backend_status','deleted','name',)
3011 def get_serializer_class(self):
3012 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
3014 return self.id_serializer_class
3016 return self.serializer_class
3018 def get_queryset(self):
3019 return UsableObject.select_by_user(self.request.user)
3021 def create(self, request, *args, **kwargs):
3022 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
3023 if not (serializer.is_valid()):
3024 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
3025 obj = serializer.object
3026 obj.caller = request.user
3027 if obj.can_update(request.user):
3028 return super(UsableObjectList, self).create(request, *args, **kwargs)
3030 raise Exception("failed obj.can_update")
3032 ret = super(UsableObjectList, self).create(request, *args, **kwargs)
3033 if (ret.status_code%100 != 200):
3034 raise Exception(ret.data)
3039 class UsableObjectDetail(PlanetStackRetrieveUpdateDestroyAPIView):
3040 queryset = UsableObject.objects.select_related().all()
3041 serializer_class = UsableObjectSerializer
3042 id_serializer_class = UsableObjectIdSerializer
3044 def get_serializer_class(self):
3045 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
3047 return self.id_serializer_class
3049 return self.serializer_class
3051 def get_queryset(self):
3052 return UsableObject.select_by_user(self.request.user)
3054 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
3056 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
3059 XXX smbaker: my intent was to create a view that would return 'new' objects
3060 filled with defaults. I solved it another way, so this code may soon be
3063 class UsableObjectNew(GenericAPIView):
3064 serializer_class = UsableObjectSerializer
3065 id_serializer_class = UsableObjectIdSerializer
3067 def get(self, request, *args, **kwargs):
3068 return self.makenew(request, *args, **kwargs)
3070 def get_serializer_class(self):
3071 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
3073 return self.id_serializer_class
3075 return self.serializer_class
3077 def makenew(self, request, *args, **kwargs):
3078 obj = UsableObject()
3079 serializer = self.get_serializer(obj)
3080 return Response(serializer.data)
3085 class SiteRoleList(generics.ListCreateAPIView):
3086 queryset = SiteRole.objects.select_related().all()
3087 serializer_class = SiteRoleSerializer
3088 id_serializer_class = SiteRoleIdSerializer
3089 filter_backends = (filters.DjangoFilterBackend,)
3090 filter_fields = ('id','created','updated','enacted','backend_status','deleted','role',)
3092 def get_serializer_class(self):
3093 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
3095 return self.id_serializer_class
3097 return self.serializer_class
3099 def get_queryset(self):
3100 return SiteRole.select_by_user(self.request.user)
3102 def create(self, request, *args, **kwargs):
3103 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
3104 if not (serializer.is_valid()):
3105 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
3106 obj = serializer.object
3107 obj.caller = request.user
3108 if obj.can_update(request.user):
3109 return super(SiteRoleList, self).create(request, *args, **kwargs)
3111 raise Exception("failed obj.can_update")
3113 ret = super(SiteRoleList, self).create(request, *args, **kwargs)
3114 if (ret.status_code%100 != 200):
3115 raise Exception(ret.data)
3120 class SiteRoleDetail(PlanetStackRetrieveUpdateDestroyAPIView):
3121 queryset = SiteRole.objects.select_related().all()
3122 serializer_class = SiteRoleSerializer
3123 id_serializer_class = SiteRoleIdSerializer
3125 def get_serializer_class(self):
3126 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
3128 return self.id_serializer_class
3130 return self.serializer_class
3132 def get_queryset(self):
3133 return SiteRole.select_by_user(self.request.user)
3135 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
3137 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
3140 XXX smbaker: my intent was to create a view that would return 'new' objects
3141 filled with defaults. I solved it another way, so this code may soon be
3144 class SiteRoleNew(GenericAPIView):
3145 serializer_class = SiteRoleSerializer
3146 id_serializer_class = SiteRoleIdSerializer
3148 def get(self, request, *args, **kwargs):
3149 return self.makenew(request, *args, **kwargs)
3151 def get_serializer_class(self):
3152 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
3154 return self.id_serializer_class
3156 return self.serializer_class
3158 def makenew(self, request, *args, **kwargs):
3160 serializer = self.get_serializer(obj)
3161 return Response(serializer.data)
3166 class SliceCredentialList(generics.ListCreateAPIView):
3167 queryset = SliceCredential.objects.select_related().all()
3168 serializer_class = SliceCredentialSerializer
3169 id_serializer_class = SliceCredentialIdSerializer
3170 filter_backends = (filters.DjangoFilterBackend,)
3171 filter_fields = ('id','created','updated','enacted','backend_status','deleted','slice','name','key_id','enc_value',)
3173 def get_serializer_class(self):
3174 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
3176 return self.id_serializer_class
3178 return self.serializer_class
3180 def get_queryset(self):
3181 return SliceCredential.select_by_user(self.request.user)
3183 def create(self, request, *args, **kwargs):
3184 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
3185 if not (serializer.is_valid()):
3186 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
3187 obj = serializer.object
3188 obj.caller = request.user
3189 if obj.can_update(request.user):
3190 return super(SliceCredentialList, self).create(request, *args, **kwargs)
3192 raise Exception("failed obj.can_update")
3194 ret = super(SliceCredentialList, self).create(request, *args, **kwargs)
3195 if (ret.status_code%100 != 200):
3196 raise Exception(ret.data)
3201 class SliceCredentialDetail(PlanetStackRetrieveUpdateDestroyAPIView):
3202 queryset = SliceCredential.objects.select_related().all()
3203 serializer_class = SliceCredentialSerializer
3204 id_serializer_class = SliceCredentialIdSerializer
3206 def get_serializer_class(self):
3207 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
3209 return self.id_serializer_class
3211 return self.serializer_class
3213 def get_queryset(self):
3214 return SliceCredential.select_by_user(self.request.user)
3216 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
3218 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
3221 XXX smbaker: my intent was to create a view that would return 'new' objects
3222 filled with defaults. I solved it another way, so this code may soon be
3225 class SliceCredentialNew(GenericAPIView):
3226 serializer_class = SliceCredentialSerializer
3227 id_serializer_class = SliceCredentialIdSerializer
3229 def get(self, request, *args, **kwargs):
3230 return self.makenew(request, *args, **kwargs)
3232 def get_serializer_class(self):
3233 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
3235 return self.id_serializer_class
3237 return self.serializer_class
3239 def makenew(self, request, *args, **kwargs):
3240 obj = SliceCredential()
3241 serializer = self.get_serializer(obj)
3242 return Response(serializer.data)
3247 class SliverList(generics.ListCreateAPIView):
3248 queryset = Sliver.objects.select_related().all()
3249 serializer_class = SliverSerializer
3250 id_serializer_class = SliverIdSerializer
3251 filter_backends = (filters.DjangoFilterBackend,)
3252 filter_fields = ('id','created','updated','enacted','backend_status','deleted','instance_id','name','instance_name','ip','image','creator','slice','node','deploymentNetwork','numberCores','flavor','userData','networks','networks',)
3254 def get_serializer_class(self):
3255 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
3257 return self.id_serializer_class
3259 return self.serializer_class
3261 def get_queryset(self):
3262 return Sliver.select_by_user(self.request.user)
3264 def create(self, request, *args, **kwargs):
3265 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
3266 if not (serializer.is_valid()):
3267 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
3268 obj = serializer.object
3269 obj.caller = request.user
3270 if obj.can_update(request.user):
3271 return super(SliverList, self).create(request, *args, **kwargs)
3273 raise Exception("failed obj.can_update")
3275 ret = super(SliverList, self).create(request, *args, **kwargs)
3276 if (ret.status_code%100 != 200):
3277 raise Exception(ret.data)
3282 class SliverDetail(PlanetStackRetrieveUpdateDestroyAPIView):
3283 queryset = Sliver.objects.select_related().all()
3284 serializer_class = SliverSerializer
3285 id_serializer_class = SliverIdSerializer
3287 def get_serializer_class(self):
3288 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
3290 return self.id_serializer_class
3292 return self.serializer_class
3294 def get_queryset(self):
3295 return Sliver.select_by_user(self.request.user)
3297 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
3299 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
3302 XXX smbaker: my intent was to create a view that would return 'new' objects
3303 filled with defaults. I solved it another way, so this code may soon be
3306 class SliverNew(GenericAPIView):
3307 serializer_class = SliverSerializer
3308 id_serializer_class = SliverIdSerializer
3310 def get(self, request, *args, **kwargs):
3311 return self.makenew(request, *args, **kwargs)
3313 def get_serializer_class(self):
3314 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
3316 return self.id_serializer_class
3318 return self.serializer_class
3320 def makenew(self, request, *args, **kwargs):
3322 serializer = self.get_serializer(obj)
3323 return Response(serializer.data)
3328 class NodeList(generics.ListCreateAPIView):
3329 queryset = Node.objects.select_related().all()
3330 serializer_class = NodeSerializer
3331 id_serializer_class = NodeIdSerializer
3332 filter_backends = (filters.DjangoFilterBackend,)
3333 filter_fields = ('id','created','updated','enacted','backend_status','deleted','name','site','deployment',)
3335 def get_serializer_class(self):
3336 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
3338 return self.id_serializer_class
3340 return self.serializer_class
3342 def get_queryset(self):
3343 return Node.select_by_user(self.request.user)
3345 def create(self, request, *args, **kwargs):
3346 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
3347 if not (serializer.is_valid()):
3348 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
3349 obj = serializer.object
3350 obj.caller = request.user
3351 if obj.can_update(request.user):
3352 return super(NodeList, self).create(request, *args, **kwargs)
3354 raise Exception("failed obj.can_update")
3356 ret = super(NodeList, self).create(request, *args, **kwargs)
3357 if (ret.status_code%100 != 200):
3358 raise Exception(ret.data)
3363 class NodeDetail(PlanetStackRetrieveUpdateDestroyAPIView):
3364 queryset = Node.objects.select_related().all()
3365 serializer_class = NodeSerializer
3366 id_serializer_class = NodeIdSerializer
3368 def get_serializer_class(self):
3369 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
3371 return self.id_serializer_class
3373 return self.serializer_class
3375 def get_queryset(self):
3376 return Node.select_by_user(self.request.user)
3378 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
3380 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
3383 XXX smbaker: my intent was to create a view that would return 'new' objects
3384 filled with defaults. I solved it another way, so this code may soon be
3387 class NodeNew(GenericAPIView):
3388 serializer_class = NodeSerializer
3389 id_serializer_class = NodeIdSerializer
3391 def get(self, request, *args, **kwargs):
3392 return self.makenew(request, *args, **kwargs)
3394 def get_serializer_class(self):
3395 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
3397 return self.id_serializer_class
3399 return self.serializer_class
3401 def makenew(self, request, *args, **kwargs):
3403 serializer = self.get_serializer(obj)
3404 return Response(serializer.data)
3409 class DashboardViewList(generics.ListCreateAPIView):
3410 queryset = DashboardView.objects.select_related().all()
3411 serializer_class = DashboardViewSerializer
3412 id_serializer_class = DashboardViewIdSerializer
3413 filter_backends = (filters.DjangoFilterBackend,)
3414 filter_fields = ('id','created','updated','enacted','backend_status','deleted','name','url',)
3416 def get_serializer_class(self):
3417 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
3419 return self.id_serializer_class
3421 return self.serializer_class
3423 def get_queryset(self):
3424 return DashboardView.select_by_user(self.request.user)
3426 def create(self, request, *args, **kwargs):
3427 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
3428 if not (serializer.is_valid()):
3429 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
3430 obj = serializer.object
3431 obj.caller = request.user
3432 if obj.can_update(request.user):
3433 return super(DashboardViewList, self).create(request, *args, **kwargs)
3435 raise Exception("failed obj.can_update")
3437 ret = super(DashboardViewList, self).create(request, *args, **kwargs)
3438 if (ret.status_code%100 != 200):
3439 raise Exception(ret.data)
3444 class DashboardViewDetail(PlanetStackRetrieveUpdateDestroyAPIView):
3445 queryset = DashboardView.objects.select_related().all()
3446 serializer_class = DashboardViewSerializer
3447 id_serializer_class = DashboardViewIdSerializer
3449 def get_serializer_class(self):
3450 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
3452 return self.id_serializer_class
3454 return self.serializer_class
3456 def get_queryset(self):
3457 return DashboardView.select_by_user(self.request.user)
3459 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
3461 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
3464 XXX smbaker: my intent was to create a view that would return 'new' objects
3465 filled with defaults. I solved it another way, so this code may soon be
3468 class DashboardViewNew(GenericAPIView):
3469 serializer_class = DashboardViewSerializer
3470 id_serializer_class = DashboardViewIdSerializer
3472 def get(self, request, *args, **kwargs):
3473 return self.makenew(request, *args, **kwargs)
3475 def get_serializer_class(self):
3476 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
3478 return self.id_serializer_class
3480 return self.serializer_class
3482 def makenew(self, request, *args, **kwargs):
3483 obj = DashboardView()
3484 serializer = self.get_serializer(obj)
3485 return Response(serializer.data)
3490 class ReservedResourceList(generics.ListCreateAPIView):
3491 queryset = ReservedResource.objects.select_related().all()
3492 serializer_class = ReservedResourceSerializer
3493 id_serializer_class = ReservedResourceIdSerializer
3494 filter_backends = (filters.DjangoFilterBackend,)
3495 filter_fields = ('id','created','updated','enacted','backend_status','deleted','sliver','resource','quantity','reservationSet',)
3497 def get_serializer_class(self):
3498 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
3500 return self.id_serializer_class
3502 return self.serializer_class
3504 def get_queryset(self):
3505 return ReservedResource.select_by_user(self.request.user)
3507 def create(self, request, *args, **kwargs):
3508 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
3509 if not (serializer.is_valid()):
3510 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
3511 obj = serializer.object
3512 obj.caller = request.user
3513 if obj.can_update(request.user):
3514 return super(ReservedResourceList, self).create(request, *args, **kwargs)
3516 raise Exception("failed obj.can_update")
3518 ret = super(ReservedResourceList, self).create(request, *args, **kwargs)
3519 if (ret.status_code%100 != 200):
3520 raise Exception(ret.data)
3525 class ReservedResourceDetail(PlanetStackRetrieveUpdateDestroyAPIView):
3526 queryset = ReservedResource.objects.select_related().all()
3527 serializer_class = ReservedResourceSerializer
3528 id_serializer_class = ReservedResourceIdSerializer
3530 def get_serializer_class(self):
3531 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
3533 return self.id_serializer_class
3535 return self.serializer_class
3537 def get_queryset(self):
3538 return ReservedResource.select_by_user(self.request.user)
3540 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
3542 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
3545 XXX smbaker: my intent was to create a view that would return 'new' objects
3546 filled with defaults. I solved it another way, so this code may soon be
3549 class ReservedResourceNew(GenericAPIView):
3550 serializer_class = ReservedResourceSerializer
3551 id_serializer_class = ReservedResourceIdSerializer
3553 def get(self, request, *args, **kwargs):
3554 return self.makenew(request, *args, **kwargs)
3556 def get_serializer_class(self):
3557 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
3559 return self.id_serializer_class
3561 return self.serializer_class
3563 def makenew(self, request, *args, **kwargs):
3564 obj = ReservedResource()
3565 serializer = self.get_serializer(obj)
3566 return Response(serializer.data)
3571 class PaymentList(generics.ListCreateAPIView):
3572 queryset = Payment.objects.select_related().all()
3573 serializer_class = PaymentSerializer
3574 id_serializer_class = PaymentIdSerializer
3575 filter_backends = (filters.DjangoFilterBackend,)
3576 filter_fields = ('id','created','updated','enacted','backend_status','deleted','account','amount','date',)
3578 def get_serializer_class(self):
3579 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
3581 return self.id_serializer_class
3583 return self.serializer_class
3585 def get_queryset(self):
3586 return Payment.select_by_user(self.request.user)
3588 def create(self, request, *args, **kwargs):
3589 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
3590 if not (serializer.is_valid()):
3591 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
3592 obj = serializer.object
3593 obj.caller = request.user
3594 if obj.can_update(request.user):
3595 return super(PaymentList, self).create(request, *args, **kwargs)
3597 raise Exception("failed obj.can_update")
3599 ret = super(PaymentList, self).create(request, *args, **kwargs)
3600 if (ret.status_code%100 != 200):
3601 raise Exception(ret.data)
3606 class PaymentDetail(PlanetStackRetrieveUpdateDestroyAPIView):
3607 queryset = Payment.objects.select_related().all()
3608 serializer_class = PaymentSerializer
3609 id_serializer_class = PaymentIdSerializer
3611 def get_serializer_class(self):
3612 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
3614 return self.id_serializer_class
3616 return self.serializer_class
3618 def get_queryset(self):
3619 return Payment.select_by_user(self.request.user)
3621 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
3623 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
3626 XXX smbaker: my intent was to create a view that would return 'new' objects
3627 filled with defaults. I solved it another way, so this code may soon be
3630 class PaymentNew(GenericAPIView):
3631 serializer_class = PaymentSerializer
3632 id_serializer_class = PaymentIdSerializer
3634 def get(self, request, *args, **kwargs):
3635 return self.makenew(request, *args, **kwargs)
3637 def get_serializer_class(self):
3638 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
3640 return self.id_serializer_class
3642 return self.serializer_class
3644 def makenew(self, request, *args, **kwargs):
3646 serializer = self.get_serializer(obj)
3647 return Response(serializer.data)
3652 class NetworkSliceList(generics.ListCreateAPIView):
3653 queryset = NetworkSlice.objects.select_related().all()
3654 serializer_class = NetworkSliceSerializer
3655 id_serializer_class = NetworkSliceIdSerializer
3656 filter_backends = (filters.DjangoFilterBackend,)
3657 filter_fields = ('id','created','updated','enacted','backend_status','deleted','network','slice',)
3659 def get_serializer_class(self):
3660 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
3662 return self.id_serializer_class
3664 return self.serializer_class
3666 def get_queryset(self):
3667 return NetworkSlice.select_by_user(self.request.user)
3669 def create(self, request, *args, **kwargs):
3670 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
3671 if not (serializer.is_valid()):
3672 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
3673 obj = serializer.object
3674 obj.caller = request.user
3675 if obj.can_update(request.user):
3676 return super(NetworkSliceList, self).create(request, *args, **kwargs)
3678 raise Exception("failed obj.can_update")
3680 ret = super(NetworkSliceList, self).create(request, *args, **kwargs)
3681 if (ret.status_code%100 != 200):
3682 raise Exception(ret.data)
3687 class NetworkSliceDetail(PlanetStackRetrieveUpdateDestroyAPIView):
3688 queryset = NetworkSlice.objects.select_related().all()
3689 serializer_class = NetworkSliceSerializer
3690 id_serializer_class = NetworkSliceIdSerializer
3692 def get_serializer_class(self):
3693 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
3695 return self.id_serializer_class
3697 return self.serializer_class
3699 def get_queryset(self):
3700 return NetworkSlice.select_by_user(self.request.user)
3702 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
3704 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
3707 XXX smbaker: my intent was to create a view that would return 'new' objects
3708 filled with defaults. I solved it another way, so this code may soon be
3711 class NetworkSliceNew(GenericAPIView):
3712 serializer_class = NetworkSliceSerializer
3713 id_serializer_class = NetworkSliceIdSerializer
3715 def get(self, request, *args, **kwargs):
3716 return self.makenew(request, *args, **kwargs)
3718 def get_serializer_class(self):
3719 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
3721 return self.id_serializer_class
3723 return self.serializer_class
3725 def makenew(self, request, *args, **kwargs):
3726 obj = NetworkSlice()
3727 serializer = self.get_serializer(obj)
3728 return Response(serializer.data)
3733 class UserDashboardViewList(generics.ListCreateAPIView):
3734 queryset = UserDashboardView.objects.select_related().all()
3735 serializer_class = UserDashboardViewSerializer
3736 id_serializer_class = UserDashboardViewIdSerializer
3737 filter_backends = (filters.DjangoFilterBackend,)
3738 filter_fields = ('id','created','updated','enacted','backend_status','deleted','user','dashboardView','order',)
3740 def get_serializer_class(self):
3741 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
3743 return self.id_serializer_class
3745 return self.serializer_class
3747 def get_queryset(self):
3748 return UserDashboardView.select_by_user(self.request.user)
3750 def create(self, request, *args, **kwargs):
3751 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
3752 if not (serializer.is_valid()):
3753 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
3754 obj = serializer.object
3755 obj.caller = request.user
3756 if obj.can_update(request.user):
3757 return super(UserDashboardViewList, self).create(request, *args, **kwargs)
3759 raise Exception("failed obj.can_update")
3761 ret = super(UserDashboardViewList, self).create(request, *args, **kwargs)
3762 if (ret.status_code%100 != 200):
3763 raise Exception(ret.data)
3768 class UserDashboardViewDetail(PlanetStackRetrieveUpdateDestroyAPIView):
3769 queryset = UserDashboardView.objects.select_related().all()
3770 serializer_class = UserDashboardViewSerializer
3771 id_serializer_class = UserDashboardViewIdSerializer
3773 def get_serializer_class(self):
3774 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
3776 return self.id_serializer_class
3778 return self.serializer_class
3780 def get_queryset(self):
3781 return UserDashboardView.select_by_user(self.request.user)
3783 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
3785 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
3788 XXX smbaker: my intent was to create a view that would return 'new' objects
3789 filled with defaults. I solved it another way, so this code may soon be
3792 class UserDashboardViewNew(GenericAPIView):
3793 serializer_class = UserDashboardViewSerializer
3794 id_serializer_class = UserDashboardViewIdSerializer
3796 def get(self, request, *args, **kwargs):
3797 return self.makenew(request, *args, **kwargs)
3799 def get_serializer_class(self):
3800 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
3802 return self.id_serializer_class
3804 return self.serializer_class
3806 def makenew(self, request, *args, **kwargs):
3807 obj = UserDashboardView()
3808 serializer = self.get_serializer(obj)
3809 return Response(serializer.data)
3814 class SiteDeploymentsList(generics.ListCreateAPIView):
3815 queryset = SiteDeployments.objects.select_related().all()
3816 serializer_class = SiteDeploymentsSerializer
3817 id_serializer_class = SiteDeploymentsIdSerializer
3818 filter_backends = (filters.DjangoFilterBackend,)
3819 filter_fields = ('id','created','updated','enacted','backend_status','deleted','site','deployment','tenant_id',)
3821 def get_serializer_class(self):
3822 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
3824 return self.id_serializer_class
3826 return self.serializer_class
3828 def get_queryset(self):
3829 return SiteDeployments.select_by_user(self.request.user)
3831 def create(self, request, *args, **kwargs):
3832 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
3833 if not (serializer.is_valid()):
3834 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
3835 obj = serializer.object
3836 obj.caller = request.user
3837 if obj.can_update(request.user):
3838 return super(SiteDeploymentsList, self).create(request, *args, **kwargs)
3840 raise Exception("failed obj.can_update")
3842 ret = super(SiteDeploymentsList, self).create(request, *args, **kwargs)
3843 if (ret.status_code%100 != 200):
3844 raise Exception(ret.data)
3849 class SiteDeploymentsDetail(PlanetStackRetrieveUpdateDestroyAPIView):
3850 queryset = SiteDeployments.objects.select_related().all()
3851 serializer_class = SiteDeploymentsSerializer
3852 id_serializer_class = SiteDeploymentsIdSerializer
3854 def get_serializer_class(self):
3855 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
3857 return self.id_serializer_class
3859 return self.serializer_class
3861 def get_queryset(self):
3862 return SiteDeployments.select_by_user(self.request.user)
3864 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
3866 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
3869 XXX smbaker: my intent was to create a view that would return 'new' objects
3870 filled with defaults. I solved it another way, so this code may soon be
3873 class SiteDeploymentsNew(GenericAPIView):
3874 serializer_class = SiteDeploymentsSerializer
3875 id_serializer_class = SiteDeploymentsIdSerializer
3877 def get(self, request, *args, **kwargs):
3878 return self.makenew(request, *args, **kwargs)
3880 def get_serializer_class(self):
3881 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
3883 return self.id_serializer_class
3885 return self.serializer_class
3887 def makenew(self, request, *args, **kwargs):
3888 obj = SiteDeployments()
3889 serializer = self.get_serializer(obj)
3890 return Response(serializer.data)
3895 class PlanetStackPrivilegeList(generics.ListCreateAPIView):
3896 queryset = PlanetStackPrivilege.objects.select_related().all()
3897 serializer_class = PlanetStackPrivilegeSerializer
3898 id_serializer_class = PlanetStackPrivilegeIdSerializer
3899 filter_backends = (filters.DjangoFilterBackend,)
3900 filter_fields = ('id','created','updated','enacted','backend_status','deleted','user','planetstack','role',)
3902 def get_serializer_class(self):
3903 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
3905 return self.id_serializer_class
3907 return self.serializer_class
3909 def get_queryset(self):
3910 return PlanetStackPrivilege.select_by_user(self.request.user)
3912 def create(self, request, *args, **kwargs):
3913 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
3914 if not (serializer.is_valid()):
3915 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
3916 obj = serializer.object
3917 obj.caller = request.user
3918 if obj.can_update(request.user):
3919 return super(PlanetStackPrivilegeList, self).create(request, *args, **kwargs)
3921 raise Exception("failed obj.can_update")
3923 ret = super(PlanetStackPrivilegeList, self).create(request, *args, **kwargs)
3924 if (ret.status_code%100 != 200):
3925 raise Exception(ret.data)
3930 class PlanetStackPrivilegeDetail(PlanetStackRetrieveUpdateDestroyAPIView):
3931 queryset = PlanetStackPrivilege.objects.select_related().all()
3932 serializer_class = PlanetStackPrivilegeSerializer
3933 id_serializer_class = PlanetStackPrivilegeIdSerializer
3935 def get_serializer_class(self):
3936 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
3938 return self.id_serializer_class
3940 return self.serializer_class
3942 def get_queryset(self):
3943 return PlanetStackPrivilege.select_by_user(self.request.user)
3945 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
3947 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
3950 XXX smbaker: my intent was to create a view that would return 'new' objects
3951 filled with defaults. I solved it another way, so this code may soon be
3954 class PlanetStackPrivilegeNew(GenericAPIView):
3955 serializer_class = PlanetStackPrivilegeSerializer
3956 id_serializer_class = PlanetStackPrivilegeIdSerializer
3958 def get(self, request, *args, **kwargs):
3959 return self.makenew(request, *args, **kwargs)
3961 def get_serializer_class(self):
3962 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
3964 return self.id_serializer_class
3966 return self.serializer_class
3968 def makenew(self, request, *args, **kwargs):
3969 obj = PlanetStackPrivilege()
3970 serializer = self.get_serializer(obj)
3971 return Response(serializer.data)
3976 class UserList(generics.ListCreateAPIView):
3977 queryset = User.objects.select_related().all()
3978 serializer_class = UserSerializer
3979 id_serializer_class = UserIdSerializer
3980 filter_backends = (filters.DjangoFilterBackend,)
3981 filter_fields = ('id','password','last_login','email','username','firstname','lastname','phone','user_url','site','public_key','is_active','is_admin','is_staff','is_readonly','created','updated','enacted','backend_status','deleted','timezone',)
3983 def get_serializer_class(self):
3984 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
3986 return self.id_serializer_class
3988 return self.serializer_class
3990 def get_queryset(self):
3991 return User.select_by_user(self.request.user)
3993 def create(self, request, *args, **kwargs):
3994 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
3995 if not (serializer.is_valid()):
3996 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
3997 obj = serializer.object
3998 obj.caller = request.user
3999 if obj.can_update(request.user):
4000 return super(UserList, self).create(request, *args, **kwargs)
4002 raise Exception("failed obj.can_update")
4004 ret = super(UserList, self).create(request, *args, **kwargs)
4005 if (ret.status_code%100 != 200):
4006 raise Exception(ret.data)
4011 class UserDetail(PlanetStackRetrieveUpdateDestroyAPIView):
4012 queryset = User.objects.select_related().all()
4013 serializer_class = UserSerializer
4014 id_serializer_class = UserIdSerializer
4016 def get_serializer_class(self):
4017 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
4019 return self.id_serializer_class
4021 return self.serializer_class
4023 def get_queryset(self):
4024 return User.select_by_user(self.request.user)
4026 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
4028 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
4031 XXX smbaker: my intent was to create a view that would return 'new' objects
4032 filled with defaults. I solved it another way, so this code may soon be
4035 class UserNew(GenericAPIView):
4036 serializer_class = UserSerializer
4037 id_serializer_class = UserIdSerializer
4039 def get(self, request, *args, **kwargs):
4040 return self.makenew(request, *args, **kwargs)
4042 def get_serializer_class(self):
4043 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
4045 return self.id_serializer_class
4047 return self.serializer_class
4049 def makenew(self, request, *args, **kwargs):
4051 serializer = self.get_serializer(obj)
4052 return Response(serializer.data)
4057 class DeploymentList(generics.ListCreateAPIView):
4058 queryset = Deployment.objects.select_related().all()
4059 serializer_class = DeploymentSerializer
4060 id_serializer_class = DeploymentIdSerializer
4061 filter_backends = (filters.DjangoFilterBackend,)
4062 filter_fields = ('id','created','updated','enacted','backend_status','deleted','name','admin_user','admin_password','admin_tenant','auth_url','backend_type','availability_zone','accessControl','sites','sites','flavors','flavors',)
4064 def get_serializer_class(self):
4065 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
4067 return self.id_serializer_class
4069 return self.serializer_class
4071 def get_queryset(self):
4072 return Deployment.select_by_user(self.request.user)
4074 def create(self, request, *args, **kwargs):
4075 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
4076 if not (serializer.is_valid()):
4077 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
4078 obj = serializer.object
4079 obj.caller = request.user
4080 if obj.can_update(request.user):
4081 return super(DeploymentList, self).create(request, *args, **kwargs)
4083 raise Exception("failed obj.can_update")
4085 ret = super(DeploymentList, self).create(request, *args, **kwargs)
4086 if (ret.status_code%100 != 200):
4087 raise Exception(ret.data)
4092 class DeploymentDetail(PlanetStackRetrieveUpdateDestroyAPIView):
4093 queryset = Deployment.objects.select_related().all()
4094 serializer_class = DeploymentSerializer
4095 id_serializer_class = DeploymentIdSerializer
4097 def get_serializer_class(self):
4098 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
4100 return self.id_serializer_class
4102 return self.serializer_class
4104 def get_queryset(self):
4105 return Deployment.select_by_user(self.request.user)
4107 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
4109 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
4112 XXX smbaker: my intent was to create a view that would return 'new' objects
4113 filled with defaults. I solved it another way, so this code may soon be
4116 class DeploymentNew(GenericAPIView):
4117 serializer_class = DeploymentSerializer
4118 id_serializer_class = DeploymentIdSerializer
4120 def get(self, request, *args, **kwargs):
4121 return self.makenew(request, *args, **kwargs)
4123 def get_serializer_class(self):
4124 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
4126 return self.id_serializer_class
4128 return self.serializer_class
4130 def makenew(self, request, *args, **kwargs):
4132 serializer = self.get_serializer(obj)
4133 return Response(serializer.data)
4138 class ReservationList(generics.ListCreateAPIView):
4139 queryset = Reservation.objects.select_related().all()
4140 serializer_class = ReservationSerializer
4141 id_serializer_class = ReservationIdSerializer
4142 filter_backends = (filters.DjangoFilterBackend,)
4143 filter_fields = ('id','created','updated','enacted','backend_status','deleted','startTime','slice','duration',)
4145 def get_serializer_class(self):
4146 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
4148 return self.id_serializer_class
4150 return self.serializer_class
4152 def get_queryset(self):
4153 return Reservation.select_by_user(self.request.user)
4155 def create(self, request, *args, **kwargs):
4156 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
4157 if not (serializer.is_valid()):
4158 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
4159 obj = serializer.object
4160 obj.caller = request.user
4161 if obj.can_update(request.user):
4162 return super(ReservationList, self).create(request, *args, **kwargs)
4164 raise Exception("failed obj.can_update")
4166 ret = super(ReservationList, self).create(request, *args, **kwargs)
4167 if (ret.status_code%100 != 200):
4168 raise Exception(ret.data)
4173 class ReservationDetail(PlanetStackRetrieveUpdateDestroyAPIView):
4174 queryset = Reservation.objects.select_related().all()
4175 serializer_class = ReservationSerializer
4176 id_serializer_class = ReservationIdSerializer
4178 def get_serializer_class(self):
4179 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
4181 return self.id_serializer_class
4183 return self.serializer_class
4185 def get_queryset(self):
4186 return Reservation.select_by_user(self.request.user)
4188 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
4190 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
4193 XXX smbaker: my intent was to create a view that would return 'new' objects
4194 filled with defaults. I solved it another way, so this code may soon be
4197 class ReservationNew(GenericAPIView):
4198 serializer_class = ReservationSerializer
4199 id_serializer_class = ReservationIdSerializer
4201 def get(self, request, *args, **kwargs):
4202 return self.makenew(request, *args, **kwargs)
4204 def get_serializer_class(self):
4205 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
4207 return self.id_serializer_class
4209 return self.serializer_class
4211 def makenew(self, request, *args, **kwargs):
4213 serializer = self.get_serializer(obj)
4214 return Response(serializer.data)
4219 class SitePrivilegeList(generics.ListCreateAPIView):
4220 queryset = SitePrivilege.objects.select_related().all()
4221 serializer_class = SitePrivilegeSerializer
4222 id_serializer_class = SitePrivilegeIdSerializer
4223 filter_backends = (filters.DjangoFilterBackend,)
4224 filter_fields = ('id','created','updated','enacted','backend_status','deleted','user','site','role',)
4226 def get_serializer_class(self):
4227 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
4229 return self.id_serializer_class
4231 return self.serializer_class
4233 def get_queryset(self):
4234 return SitePrivilege.select_by_user(self.request.user)
4236 def create(self, request, *args, **kwargs):
4237 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
4238 if not (serializer.is_valid()):
4239 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
4240 obj = serializer.object
4241 obj.caller = request.user
4242 if obj.can_update(request.user):
4243 return super(SitePrivilegeList, self).create(request, *args, **kwargs)
4245 raise Exception("failed obj.can_update")
4247 ret = super(SitePrivilegeList, self).create(request, *args, **kwargs)
4248 if (ret.status_code%100 != 200):
4249 raise Exception(ret.data)
4254 class SitePrivilegeDetail(PlanetStackRetrieveUpdateDestroyAPIView):
4255 queryset = SitePrivilege.objects.select_related().all()
4256 serializer_class = SitePrivilegeSerializer
4257 id_serializer_class = SitePrivilegeIdSerializer
4259 def get_serializer_class(self):
4260 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
4262 return self.id_serializer_class
4264 return self.serializer_class
4266 def get_queryset(self):
4267 return SitePrivilege.select_by_user(self.request.user)
4269 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
4271 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
4274 XXX smbaker: my intent was to create a view that would return 'new' objects
4275 filled with defaults. I solved it another way, so this code may soon be
4278 class SitePrivilegeNew(GenericAPIView):
4279 serializer_class = SitePrivilegeSerializer
4280 id_serializer_class = SitePrivilegeIdSerializer
4282 def get(self, request, *args, **kwargs):
4283 return self.makenew(request, *args, **kwargs)
4285 def get_serializer_class(self):
4286 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
4288 return self.id_serializer_class
4290 return self.serializer_class
4292 def makenew(self, request, *args, **kwargs):
4293 obj = SitePrivilege()
4294 serializer = self.get_serializer(obj)
4295 return Response(serializer.data)
4300 class SliceDeploymentsList(generics.ListCreateAPIView):
4301 queryset = SliceDeployments.objects.select_related().all()
4302 serializer_class = SliceDeploymentsSerializer
4303 id_serializer_class = SliceDeploymentsIdSerializer
4304 filter_backends = (filters.DjangoFilterBackend,)
4305 filter_fields = ('id','created','updated','enacted','backend_status','deleted','slice','deployment','tenant_id','network_id','router_id','subnet_id',)
4307 def get_serializer_class(self):
4308 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
4310 return self.id_serializer_class
4312 return self.serializer_class
4314 def get_queryset(self):
4315 return SliceDeployments.select_by_user(self.request.user)
4317 def create(self, request, *args, **kwargs):
4318 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
4319 if not (serializer.is_valid()):
4320 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
4321 obj = serializer.object
4322 obj.caller = request.user
4323 if obj.can_update(request.user):
4324 return super(SliceDeploymentsList, self).create(request, *args, **kwargs)
4326 raise Exception("failed obj.can_update")
4328 ret = super(SliceDeploymentsList, self).create(request, *args, **kwargs)
4329 if (ret.status_code%100 != 200):
4330 raise Exception(ret.data)
4335 class SliceDeploymentsDetail(PlanetStackRetrieveUpdateDestroyAPIView):
4336 queryset = SliceDeployments.objects.select_related().all()
4337 serializer_class = SliceDeploymentsSerializer
4338 id_serializer_class = SliceDeploymentsIdSerializer
4340 def get_serializer_class(self):
4341 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
4343 return self.id_serializer_class
4345 return self.serializer_class
4347 def get_queryset(self):
4348 return SliceDeployments.select_by_user(self.request.user)
4350 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
4352 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
4355 XXX smbaker: my intent was to create a view that would return 'new' objects
4356 filled with defaults. I solved it another way, so this code may soon be
4359 class SliceDeploymentsNew(GenericAPIView):
4360 serializer_class = SliceDeploymentsSerializer
4361 id_serializer_class = SliceDeploymentsIdSerializer
4363 def get(self, request, *args, **kwargs):
4364 return self.makenew(request, *args, **kwargs)
4366 def get_serializer_class(self):
4367 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
4369 return self.id_serializer_class
4371 return self.serializer_class
4373 def makenew(self, request, *args, **kwargs):
4374 obj = SliceDeployments()
4375 serializer = self.get_serializer(obj)
4376 return Response(serializer.data)
4381 class UserDeploymentsList(generics.ListCreateAPIView):
4382 queryset = UserDeployments.objects.select_related().all()
4383 serializer_class = UserDeploymentsSerializer
4384 id_serializer_class = UserDeploymentsIdSerializer
4385 filter_backends = (filters.DjangoFilterBackend,)
4386 filter_fields = ('id','created','updated','enacted','backend_status','deleted','user','deployment','kuser_id',)
4388 def get_serializer_class(self):
4389 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
4391 return self.id_serializer_class
4393 return self.serializer_class
4395 def get_queryset(self):
4396 return UserDeployments.select_by_user(self.request.user)
4398 def create(self, request, *args, **kwargs):
4399 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
4400 if not (serializer.is_valid()):
4401 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
4402 obj = serializer.object
4403 obj.caller = request.user
4404 if obj.can_update(request.user):
4405 return super(UserDeploymentsList, self).create(request, *args, **kwargs)
4407 raise Exception("failed obj.can_update")
4409 ret = super(UserDeploymentsList, self).create(request, *args, **kwargs)
4410 if (ret.status_code%100 != 200):
4411 raise Exception(ret.data)
4416 class UserDeploymentsDetail(PlanetStackRetrieveUpdateDestroyAPIView):
4417 queryset = UserDeployments.objects.select_related().all()
4418 serializer_class = UserDeploymentsSerializer
4419 id_serializer_class = UserDeploymentsIdSerializer
4421 def get_serializer_class(self):
4422 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
4424 return self.id_serializer_class
4426 return self.serializer_class
4428 def get_queryset(self):
4429 return UserDeployments.select_by_user(self.request.user)
4431 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
4433 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
4436 XXX smbaker: my intent was to create a view that would return 'new' objects
4437 filled with defaults. I solved it another way, so this code may soon be
4440 class UserDeploymentsNew(GenericAPIView):
4441 serializer_class = UserDeploymentsSerializer
4442 id_serializer_class = UserDeploymentsIdSerializer
4444 def get(self, request, *args, **kwargs):
4445 return self.makenew(request, *args, **kwargs)
4447 def get_serializer_class(self):
4448 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
4450 return self.id_serializer_class
4452 return self.serializer_class
4454 def makenew(self, request, *args, **kwargs):
4455 obj = UserDeployments()
4456 serializer = self.get_serializer(obj)
4457 return Response(serializer.data)
4462 class AccountList(generics.ListCreateAPIView):
4463 queryset = Account.objects.select_related().all()
4464 serializer_class = AccountSerializer
4465 id_serializer_class = AccountIdSerializer
4466 filter_backends = (filters.DjangoFilterBackend,)
4467 filter_fields = ('id','created','updated','enacted','backend_status','deleted','site',)
4469 def get_serializer_class(self):
4470 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
4472 return self.id_serializer_class
4474 return self.serializer_class
4476 def get_queryset(self):
4477 return Account.select_by_user(self.request.user)
4479 def create(self, request, *args, **kwargs):
4480 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
4481 if not (serializer.is_valid()):
4482 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
4483 obj = serializer.object
4484 obj.caller = request.user
4485 if obj.can_update(request.user):
4486 return super(AccountList, self).create(request, *args, **kwargs)
4488 raise Exception("failed obj.can_update")
4490 ret = super(AccountList, self).create(request, *args, **kwargs)
4491 if (ret.status_code%100 != 200):
4492 raise Exception(ret.data)
4497 class AccountDetail(PlanetStackRetrieveUpdateDestroyAPIView):
4498 queryset = Account.objects.select_related().all()
4499 serializer_class = AccountSerializer
4500 id_serializer_class = AccountIdSerializer
4502 def get_serializer_class(self):
4503 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
4505 return self.id_serializer_class
4507 return self.serializer_class
4509 def get_queryset(self):
4510 return Account.select_by_user(self.request.user)
4512 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
4514 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
4517 XXX smbaker: my intent was to create a view that would return 'new' objects
4518 filled with defaults. I solved it another way, so this code may soon be
4521 class AccountNew(GenericAPIView):
4522 serializer_class = AccountSerializer
4523 id_serializer_class = AccountIdSerializer
4525 def get(self, request, *args, **kwargs):
4526 return self.makenew(request, *args, **kwargs)
4528 def get_serializer_class(self):
4529 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
4531 return self.id_serializer_class
4533 return self.serializer_class
4535 def makenew(self, request, *args, **kwargs):
4537 serializer = self.get_serializer(obj)
4538 return Response(serializer.data)
4543 class NetworkParameterTypeList(generics.ListCreateAPIView):
4544 queryset = NetworkParameterType.objects.select_related().all()
4545 serializer_class = NetworkParameterTypeSerializer
4546 id_serializer_class = NetworkParameterTypeIdSerializer
4547 filter_backends = (filters.DjangoFilterBackend,)
4548 filter_fields = ('id','created','updated','enacted','backend_status','deleted','name','description',)
4550 def get_serializer_class(self):
4551 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
4553 return self.id_serializer_class
4555 return self.serializer_class
4557 def get_queryset(self):
4558 return NetworkParameterType.select_by_user(self.request.user)
4560 def create(self, request, *args, **kwargs):
4561 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
4562 if not (serializer.is_valid()):
4563 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
4564 obj = serializer.object
4565 obj.caller = request.user
4566 if obj.can_update(request.user):
4567 return super(NetworkParameterTypeList, self).create(request, *args, **kwargs)
4569 raise Exception("failed obj.can_update")
4571 ret = super(NetworkParameterTypeList, self).create(request, *args, **kwargs)
4572 if (ret.status_code%100 != 200):
4573 raise Exception(ret.data)
4578 class NetworkParameterTypeDetail(PlanetStackRetrieveUpdateDestroyAPIView):
4579 queryset = NetworkParameterType.objects.select_related().all()
4580 serializer_class = NetworkParameterTypeSerializer
4581 id_serializer_class = NetworkParameterTypeIdSerializer
4583 def get_serializer_class(self):
4584 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
4586 return self.id_serializer_class
4588 return self.serializer_class
4590 def get_queryset(self):
4591 return NetworkParameterType.select_by_user(self.request.user)
4593 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
4595 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
4598 XXX smbaker: my intent was to create a view that would return 'new' objects
4599 filled with defaults. I solved it another way, so this code may soon be
4602 class NetworkParameterTypeNew(GenericAPIView):
4603 serializer_class = NetworkParameterTypeSerializer
4604 id_serializer_class = NetworkParameterTypeIdSerializer
4606 def get(self, request, *args, **kwargs):
4607 return self.makenew(request, *args, **kwargs)
4609 def get_serializer_class(self):
4610 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
4612 return self.id_serializer_class
4614 return self.serializer_class
4616 def makenew(self, request, *args, **kwargs):
4617 obj = NetworkParameterType()
4618 serializer = self.get_serializer(obj)
4619 return Response(serializer.data)
4624 class SiteCredentialList(generics.ListCreateAPIView):
4625 queryset = SiteCredential.objects.select_related().all()
4626 serializer_class = SiteCredentialSerializer
4627 id_serializer_class = SiteCredentialIdSerializer
4628 filter_backends = (filters.DjangoFilterBackend,)
4629 filter_fields = ('id','created','updated','enacted','backend_status','deleted','site','name','key_id','enc_value',)
4631 def get_serializer_class(self):
4632 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
4634 return self.id_serializer_class
4636 return self.serializer_class
4638 def get_queryset(self):
4639 return SiteCredential.select_by_user(self.request.user)
4641 def create(self, request, *args, **kwargs):
4642 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
4643 if not (serializer.is_valid()):
4644 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
4645 obj = serializer.object
4646 obj.caller = request.user
4647 if obj.can_update(request.user):
4648 return super(SiteCredentialList, self).create(request, *args, **kwargs)
4650 raise Exception("failed obj.can_update")
4652 ret = super(SiteCredentialList, self).create(request, *args, **kwargs)
4653 if (ret.status_code%100 != 200):
4654 raise Exception(ret.data)
4659 class SiteCredentialDetail(PlanetStackRetrieveUpdateDestroyAPIView):
4660 queryset = SiteCredential.objects.select_related().all()
4661 serializer_class = SiteCredentialSerializer
4662 id_serializer_class = SiteCredentialIdSerializer
4664 def get_serializer_class(self):
4665 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
4667 return self.id_serializer_class
4669 return self.serializer_class
4671 def get_queryset(self):
4672 return SiteCredential.select_by_user(self.request.user)
4674 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
4676 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
4679 XXX smbaker: my intent was to create a view that would return 'new' objects
4680 filled with defaults. I solved it another way, so this code may soon be
4683 class SiteCredentialNew(GenericAPIView):
4684 serializer_class = SiteCredentialSerializer
4685 id_serializer_class = SiteCredentialIdSerializer
4687 def get(self, request, *args, **kwargs):
4688 return self.makenew(request, *args, **kwargs)
4690 def get_serializer_class(self):
4691 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
4693 return self.id_serializer_class
4695 return self.serializer_class
4697 def makenew(self, request, *args, **kwargs):
4698 obj = SiteCredential()
4699 serializer = self.get_serializer(obj)
4700 return Response(serializer.data)
4705 class DeploymentPrivilegeList(generics.ListCreateAPIView):
4706 queryset = DeploymentPrivilege.objects.select_related().all()
4707 serializer_class = DeploymentPrivilegeSerializer
4708 id_serializer_class = DeploymentPrivilegeIdSerializer
4709 filter_backends = (filters.DjangoFilterBackend,)
4710 filter_fields = ('id','created','updated','enacted','backend_status','deleted','user','deployment','role',)
4712 def get_serializer_class(self):
4713 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
4715 return self.id_serializer_class
4717 return self.serializer_class
4719 def get_queryset(self):
4720 return DeploymentPrivilege.select_by_user(self.request.user)
4722 def create(self, request, *args, **kwargs):
4723 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
4724 if not (serializer.is_valid()):
4725 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
4726 obj = serializer.object
4727 obj.caller = request.user
4728 if obj.can_update(request.user):
4729 return super(DeploymentPrivilegeList, self).create(request, *args, **kwargs)
4731 raise Exception("failed obj.can_update")
4733 ret = super(DeploymentPrivilegeList, self).create(request, *args, **kwargs)
4734 if (ret.status_code%100 != 200):
4735 raise Exception(ret.data)
4740 class DeploymentPrivilegeDetail(PlanetStackRetrieveUpdateDestroyAPIView):
4741 queryset = DeploymentPrivilege.objects.select_related().all()
4742 serializer_class = DeploymentPrivilegeSerializer
4743 id_serializer_class = DeploymentPrivilegeIdSerializer
4745 def get_serializer_class(self):
4746 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
4748 return self.id_serializer_class
4750 return self.serializer_class
4752 def get_queryset(self):
4753 return DeploymentPrivilege.select_by_user(self.request.user)
4755 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
4757 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
4760 XXX smbaker: my intent was to create a view that would return 'new' objects
4761 filled with defaults. I solved it another way, so this code may soon be
4764 class DeploymentPrivilegeNew(GenericAPIView):
4765 serializer_class = DeploymentPrivilegeSerializer
4766 id_serializer_class = DeploymentPrivilegeIdSerializer
4768 def get(self, request, *args, **kwargs):
4769 return self.makenew(request, *args, **kwargs)
4771 def get_serializer_class(self):
4772 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
4774 return self.id_serializer_class
4776 return self.serializer_class
4778 def makenew(self, request, *args, **kwargs):
4779 obj = DeploymentPrivilege()
4780 serializer = self.get_serializer(obj)
4781 return Response(serializer.data)
4786 class ImageDeploymentsList(generics.ListCreateAPIView):
4787 queryset = ImageDeployments.objects.select_related().all()
4788 serializer_class = ImageDeploymentsSerializer
4789 id_serializer_class = ImageDeploymentsIdSerializer
4790 filter_backends = (filters.DjangoFilterBackend,)
4791 filter_fields = ('id','created','updated','enacted','backend_status','deleted','image','deployment','glance_image_id',)
4793 def get_serializer_class(self):
4794 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
4796 return self.id_serializer_class
4798 return self.serializer_class
4800 def get_queryset(self):
4801 return ImageDeployments.select_by_user(self.request.user)
4803 def create(self, request, *args, **kwargs):
4804 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
4805 if not (serializer.is_valid()):
4806 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
4807 obj = serializer.object
4808 obj.caller = request.user
4809 if obj.can_update(request.user):
4810 return super(ImageDeploymentsList, self).create(request, *args, **kwargs)
4812 raise Exception("failed obj.can_update")
4814 ret = super(ImageDeploymentsList, self).create(request, *args, **kwargs)
4815 if (ret.status_code%100 != 200):
4816 raise Exception(ret.data)
4821 class ImageDeploymentsDetail(PlanetStackRetrieveUpdateDestroyAPIView):
4822 queryset = ImageDeployments.objects.select_related().all()
4823 serializer_class = ImageDeploymentsSerializer
4824 id_serializer_class = ImageDeploymentsIdSerializer
4826 def get_serializer_class(self):
4827 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
4829 return self.id_serializer_class
4831 return self.serializer_class
4833 def get_queryset(self):
4834 return ImageDeployments.select_by_user(self.request.user)
4836 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
4838 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
4841 XXX smbaker: my intent was to create a view that would return 'new' objects
4842 filled with defaults. I solved it another way, so this code may soon be
4845 class ImageDeploymentsNew(GenericAPIView):
4846 serializer_class = ImageDeploymentsSerializer
4847 id_serializer_class = ImageDeploymentsIdSerializer
4849 def get(self, request, *args, **kwargs):
4850 return self.makenew(request, *args, **kwargs)
4852 def get_serializer_class(self):
4853 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
4855 return self.id_serializer_class
4857 return self.serializer_class
4859 def makenew(self, request, *args, **kwargs):
4860 obj = ImageDeployments()
4861 serializer = self.get_serializer(obj)
4862 return Response(serializer.data)
4867 class DeploymentRoleList(generics.ListCreateAPIView):
4868 queryset = DeploymentRole.objects.select_related().all()
4869 serializer_class = DeploymentRoleSerializer
4870 id_serializer_class = DeploymentRoleIdSerializer
4871 filter_backends = (filters.DjangoFilterBackend,)
4872 filter_fields = ('id','created','updated','enacted','backend_status','deleted','role',)
4874 def get_serializer_class(self):
4875 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
4877 return self.id_serializer_class
4879 return self.serializer_class
4881 def get_queryset(self):
4882 return DeploymentRole.select_by_user(self.request.user)
4884 def create(self, request, *args, **kwargs):
4885 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
4886 if not (serializer.is_valid()):
4887 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
4888 obj = serializer.object
4889 obj.caller = request.user
4890 if obj.can_update(request.user):
4891 return super(DeploymentRoleList, self).create(request, *args, **kwargs)
4893 raise Exception("failed obj.can_update")
4895 ret = super(DeploymentRoleList, self).create(request, *args, **kwargs)
4896 if (ret.status_code%100 != 200):
4897 raise Exception(ret.data)
4902 class DeploymentRoleDetail(PlanetStackRetrieveUpdateDestroyAPIView):
4903 queryset = DeploymentRole.objects.select_related().all()
4904 serializer_class = DeploymentRoleSerializer
4905 id_serializer_class = DeploymentRoleIdSerializer
4907 def get_serializer_class(self):
4908 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
4910 return self.id_serializer_class
4912 return self.serializer_class
4914 def get_queryset(self):
4915 return DeploymentRole.select_by_user(self.request.user)
4917 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
4919 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
4922 XXX smbaker: my intent was to create a view that would return 'new' objects
4923 filled with defaults. I solved it another way, so this code may soon be
4926 class DeploymentRoleNew(GenericAPIView):
4927 serializer_class = DeploymentRoleSerializer
4928 id_serializer_class = DeploymentRoleIdSerializer
4930 def get(self, request, *args, **kwargs):
4931 return self.makenew(request, *args, **kwargs)
4933 def get_serializer_class(self):
4934 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
4936 return self.id_serializer_class
4938 return self.serializer_class
4940 def makenew(self, request, *args, **kwargs):
4941 obj = DeploymentRole()
4942 serializer = self.get_serializer(obj)
4943 return Response(serializer.data)
4948 class UserCredentialList(generics.ListCreateAPIView):
4949 queryset = UserCredential.objects.select_related().all()
4950 serializer_class = UserCredentialSerializer
4951 id_serializer_class = UserCredentialIdSerializer
4952 filter_backends = (filters.DjangoFilterBackend,)
4953 filter_fields = ('id','created','updated','enacted','backend_status','deleted','user','name','key_id','enc_value',)
4955 def get_serializer_class(self):
4956 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
4958 return self.id_serializer_class
4960 return self.serializer_class
4962 def get_queryset(self):
4963 return UserCredential.select_by_user(self.request.user)
4965 def create(self, request, *args, **kwargs):
4966 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
4967 if not (serializer.is_valid()):
4968 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
4969 obj = serializer.object
4970 obj.caller = request.user
4971 if obj.can_update(request.user):
4972 return super(UserCredentialList, self).create(request, *args, **kwargs)
4974 raise Exception("failed obj.can_update")
4976 ret = super(UserCredentialList, self).create(request, *args, **kwargs)
4977 if (ret.status_code%100 != 200):
4978 raise Exception(ret.data)
4983 class UserCredentialDetail(PlanetStackRetrieveUpdateDestroyAPIView):
4984 queryset = UserCredential.objects.select_related().all()
4985 serializer_class = UserCredentialSerializer
4986 id_serializer_class = UserCredentialIdSerializer
4988 def get_serializer_class(self):
4989 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
4991 return self.id_serializer_class
4993 return self.serializer_class
4995 def get_queryset(self):
4996 return UserCredential.select_by_user(self.request.user)
4998 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
5000 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
5003 XXX smbaker: my intent was to create a view that would return 'new' objects
5004 filled with defaults. I solved it another way, so this code may soon be
5007 class UserCredentialNew(GenericAPIView):
5008 serializer_class = UserCredentialSerializer
5009 id_serializer_class = UserCredentialIdSerializer
5011 def get(self, request, *args, **kwargs):
5012 return self.makenew(request, *args, **kwargs)
5014 def get_serializer_class(self):
5015 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
5017 return self.id_serializer_class
5019 return self.serializer_class
5021 def makenew(self, request, *args, **kwargs):
5022 obj = UserCredential()
5023 serializer = self.get_serializer(obj)
5024 return Response(serializer.data)
5029 class SliceTagList(generics.ListCreateAPIView):
5030 queryset = SliceTag.objects.select_related().all()
5031 serializer_class = SliceTagSerializer
5032 id_serializer_class = SliceTagIdSerializer
5033 filter_backends = (filters.DjangoFilterBackend,)
5034 filter_fields = ('id','created','updated','enacted','backend_status','deleted','slice','name','value',)
5036 def get_serializer_class(self):
5037 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
5039 return self.id_serializer_class
5041 return self.serializer_class
5043 def get_queryset(self):
5044 return SliceTag.select_by_user(self.request.user)
5046 def create(self, request, *args, **kwargs):
5047 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
5048 if not (serializer.is_valid()):
5049 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
5050 obj = serializer.object
5051 obj.caller = request.user
5052 if obj.can_update(request.user):
5053 return super(SliceTagList, self).create(request, *args, **kwargs)
5055 raise Exception("failed obj.can_update")
5057 ret = super(SliceTagList, self).create(request, *args, **kwargs)
5058 if (ret.status_code%100 != 200):
5059 raise Exception(ret.data)
5064 class SliceTagDetail(PlanetStackRetrieveUpdateDestroyAPIView):
5065 queryset = SliceTag.objects.select_related().all()
5066 serializer_class = SliceTagSerializer
5067 id_serializer_class = SliceTagIdSerializer
5069 def get_serializer_class(self):
5070 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
5072 return self.id_serializer_class
5074 return self.serializer_class
5076 def get_queryset(self):
5077 return SliceTag.select_by_user(self.request.user)
5079 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
5081 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
5084 XXX smbaker: my intent was to create a view that would return 'new' objects
5085 filled with defaults. I solved it another way, so this code may soon be
5088 class SliceTagNew(GenericAPIView):
5089 serializer_class = SliceTagSerializer
5090 id_serializer_class = SliceTagIdSerializer
5092 def get(self, request, *args, **kwargs):
5093 return self.makenew(request, *args, **kwargs)
5095 def get_serializer_class(self):
5096 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
5098 return self.id_serializer_class
5100 return self.serializer_class
5102 def makenew(self, request, *args, **kwargs):
5104 serializer = self.get_serializer(obj)
5105 return Response(serializer.data)
5110 class NetworkTemplateList(generics.ListCreateAPIView):
5111 queryset = NetworkTemplate.objects.select_related().all()
5112 serializer_class = NetworkTemplateSerializer
5113 id_serializer_class = NetworkTemplateIdSerializer
5114 filter_backends = (filters.DjangoFilterBackend,)
5115 filter_fields = ('id','created','updated','enacted','backend_status','deleted','name','description','guaranteedBandwidth','visibility','translation','sharedNetworkName','sharedNetworkId','topologyKind','controllerKind',)
5117 def get_serializer_class(self):
5118 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
5120 return self.id_serializer_class
5122 return self.serializer_class
5124 def get_queryset(self):
5125 return NetworkTemplate.select_by_user(self.request.user)
5127 def create(self, request, *args, **kwargs):
5128 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
5129 if not (serializer.is_valid()):
5130 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
5131 obj = serializer.object
5132 obj.caller = request.user
5133 if obj.can_update(request.user):
5134 return super(NetworkTemplateList, self).create(request, *args, **kwargs)
5136 raise Exception("failed obj.can_update")
5138 ret = super(NetworkTemplateList, self).create(request, *args, **kwargs)
5139 if (ret.status_code%100 != 200):
5140 raise Exception(ret.data)
5145 class NetworkTemplateDetail(PlanetStackRetrieveUpdateDestroyAPIView):
5146 queryset = NetworkTemplate.objects.select_related().all()
5147 serializer_class = NetworkTemplateSerializer
5148 id_serializer_class = NetworkTemplateIdSerializer
5150 def get_serializer_class(self):
5151 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
5153 return self.id_serializer_class
5155 return self.serializer_class
5157 def get_queryset(self):
5158 return NetworkTemplate.select_by_user(self.request.user)
5160 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
5162 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
5165 XXX smbaker: my intent was to create a view that would return 'new' objects
5166 filled with defaults. I solved it another way, so this code may soon be
5169 class NetworkTemplateNew(GenericAPIView):
5170 serializer_class = NetworkTemplateSerializer
5171 id_serializer_class = NetworkTemplateIdSerializer
5173 def get(self, request, *args, **kwargs):
5174 return self.makenew(request, *args, **kwargs)
5176 def get_serializer_class(self):
5177 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
5179 return self.id_serializer_class
5181 return self.serializer_class
5183 def makenew(self, request, *args, **kwargs):
5184 obj = NetworkTemplate()
5185 serializer = self.get_serializer(obj)
5186 return Response(serializer.data)
5191 class RouterList(generics.ListCreateAPIView):
5192 queryset = Router.objects.select_related().all()
5193 serializer_class = RouterSerializer
5194 id_serializer_class = RouterIdSerializer
5195 filter_backends = (filters.DjangoFilterBackend,)
5196 filter_fields = ('id','created','updated','enacted','backend_status','deleted','name','owner',)
5198 def get_serializer_class(self):
5199 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
5201 return self.id_serializer_class
5203 return self.serializer_class
5205 def get_queryset(self):
5206 return Router.select_by_user(self.request.user)
5208 def create(self, request, *args, **kwargs):
5209 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
5210 if not (serializer.is_valid()):
5211 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
5212 obj = serializer.object
5213 obj.caller = request.user
5214 if obj.can_update(request.user):
5215 return super(RouterList, self).create(request, *args, **kwargs)
5217 raise Exception("failed obj.can_update")
5219 ret = super(RouterList, self).create(request, *args, **kwargs)
5220 if (ret.status_code%100 != 200):
5221 raise Exception(ret.data)
5226 class RouterDetail(PlanetStackRetrieveUpdateDestroyAPIView):
5227 queryset = Router.objects.select_related().all()
5228 serializer_class = RouterSerializer
5229 id_serializer_class = RouterIdSerializer
5231 def get_serializer_class(self):
5232 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
5234 return self.id_serializer_class
5236 return self.serializer_class
5238 def get_queryset(self):
5239 return Router.select_by_user(self.request.user)
5241 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
5243 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
5246 XXX smbaker: my intent was to create a view that would return 'new' objects
5247 filled with defaults. I solved it another way, so this code may soon be
5250 class RouterNew(GenericAPIView):
5251 serializer_class = RouterSerializer
5252 id_serializer_class = RouterIdSerializer
5254 def get(self, request, *args, **kwargs):
5255 return self.makenew(request, *args, **kwargs)
5257 def get_serializer_class(self):
5258 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
5260 return self.id_serializer_class
5262 return self.serializer_class
5264 def makenew(self, request, *args, **kwargs):
5266 serializer = self.get_serializer(obj)
5267 return Response(serializer.data)
5272 class ServiceResourceList(generics.ListCreateAPIView):
5273 queryset = ServiceResource.objects.select_related().all()
5274 serializer_class = ServiceResourceSerializer
5275 id_serializer_class = ServiceResourceIdSerializer
5276 filter_backends = (filters.DjangoFilterBackend,)
5277 filter_fields = ('id','created','updated','enacted','backend_status','deleted','serviceClass','name','maxUnitsDeployment','maxUnitsNode','maxDuration','bucketInRate','bucketMaxSize','cost','calendarReservable',)
5279 def get_serializer_class(self):
5280 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
5282 return self.id_serializer_class
5284 return self.serializer_class
5286 def get_queryset(self):
5287 return ServiceResource.select_by_user(self.request.user)
5289 def create(self, request, *args, **kwargs):
5290 serializer = self.get_serializer(data=request.DATA, files=request.FILES)
5291 if not (serializer.is_valid()):
5292 raise Exception("failed serializer.is_valid: " + str(serializer.errors))
5293 obj = serializer.object
5294 obj.caller = request.user
5295 if obj.can_update(request.user):
5296 return super(ServiceResourceList, self).create(request, *args, **kwargs)
5298 raise Exception("failed obj.can_update")
5300 ret = super(ServiceResourceList, self).create(request, *args, **kwargs)
5301 if (ret.status_code%100 != 200):
5302 raise Exception(ret.data)
5307 class ServiceResourceDetail(PlanetStackRetrieveUpdateDestroyAPIView):
5308 queryset = ServiceResource.objects.select_related().all()
5309 serializer_class = ServiceResourceSerializer
5310 id_serializer_class = ServiceResourceIdSerializer
5312 def get_serializer_class(self):
5313 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
5315 return self.id_serializer_class
5317 return self.serializer_class
5319 def get_queryset(self):
5320 return ServiceResource.select_by_user(self.request.user)
5322 # update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
5324 # destroy() is handled by PlanetStackRetrieveUpdateDestroyAPIView
5327 XXX smbaker: my intent was to create a view that would return 'new' objects
5328 filled with defaults. I solved it another way, so this code may soon be
5331 class ServiceResourceNew(GenericAPIView):
5332 serializer_class = ServiceResourceSerializer
5333 id_serializer_class = ServiceResourceIdSerializer
5335 def get(self, request, *args, **kwargs):
5336 return self.makenew(request, *args, **kwargs)
5338 def get_serializer_class(self):
5339 no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
5341 return self.id_serializer_class
5343 return self.serializer_class
5345 def makenew(self, request, *args, **kwargs):
5346 obj = ServiceResource()
5347 serializer = self.get_serializer(obj)
5348 return Response(serializer.data)