1616from rest_framework .status import HTTP_400_BAD_REQUEST , HTTP_201_CREATED
1717import json
1818from rest_framework .generics import get_object_or_404
19+ from django .http .response import Http404
1920
2021class AnonymousAuthentication (BaseAuthentication ):
2122
@@ -158,10 +159,8 @@ def post_save(self, formation, created=False, **kwargs):
158159 if created :
159160 config = models .Config .objects .create (
160161 owner = formation .owner , formation = formation , values = {})
161- build = models .Build .objects .create (
162- owner = formation .owner , formation = formation )
163162 _release = models .Release .objects .create (
164- owner = formation .owner , formation = formation , config = config , build = build )
163+ owner = formation .owner , formation = formation , config = config )
165164 # update gitosis
166165 models .Formation .objects .publish ()
167166
@@ -279,7 +278,8 @@ class FormationNodeViewSet(OwnerViewSet):
279278 def get_queryset (self , ** kwargs ):
280279 formation = models .Formation .objects .get (
281280 owner = self .request .user , id = self .kwargs ['id' ])
282- return self .model .objects .filter (owner = self .request .user , formation = formation )
281+ return self .model .objects .filter (owner = self .request .user ,
282+ formation = formation )
283283
284284 def get_object (self , * args , ** kwargs ):
285285 qs = self .get_queryset (** kwargs )
@@ -295,11 +295,12 @@ class FormationContainerViewSet(OwnerViewSet):
295295 def get_queryset (self , ** kwargs ):
296296 formation = models .Formation .objects .get (
297297 owner = self .request .user , id = self .kwargs ['id' ])
298- return self .model .objects .filter (owner = self .request .user , formation = formation )
298+ return self .model .objects .filter (owner = self .request .user ,
299+ formation = formation )
299300
300301 def get_object (self , * args , ** kwargs ):
301302 qs = self .get_queryset (** kwargs )
302- obj = qs .get (pk = self .kwargs ['id ' ])
303+ obj = qs .get (pk = self .kwargs ['container ' ])
303304 return obj
304305
305306
@@ -309,12 +310,15 @@ class FormationImageViewSet(OwnerViewSet):
309310 serializer_class = serializers .ReleaseSerializer
310311
311312 def get_queryset (self , ** kwargs ):
312- return self .model .objects .filter (owner = self .request .user )
313-
314- def get_object (self , * args , ** kwargs ):
315313 formation = models .Formation .objects .get (
316314 owner = self .request .user , id = self .kwargs ['id' ])
317- return formation .release
315+ return self .model .objects .filter (owner = self .request .user ,
316+ formation = formation )
317+
318+ def get_object (self , * args , ** kwargs ):
319+ qs = self .get_queryset (** kwargs )
320+ obj = qs .get (pk = self .kwargs ['id' ])
321+ return obj
318322
319323 def reset_image (self , request , * args , ** kwargs ):
320324 formation = models .Formation .objects .get (
@@ -330,7 +334,10 @@ class FormationConfigViewSet(OwnerViewSet):
330334 serializer_class = serializers .ConfigSerializer
331335
332336 def get_queryset (self , ** kwargs ):
333- return self .model .objects .filter (owner = self .request .user )
337+ formation = models .Formation .objects .get (
338+ owner = self .request .user , id = self .kwargs ['id' ])
339+ return self .model .objects .filter (owner = self .request .user ,
340+ formation = formation )
334341
335342 def get_object (self , * args , ** kwargs ):
336343 formation = models .Formation .objects .get (id = self .kwargs ['id' ])
@@ -369,12 +376,14 @@ class FormationBuildViewSet(OwnerViewSet):
369376 serializer_class = serializers .BuildSerializer
370377
371378 def get_queryset (self , ** kwargs ):
372- return self .model .objects .filter (owner = self .request .user )
379+ formation = models .Formation .objects .get (
380+ owner = self .request .user , id = self .kwargs ['id' ])
381+ return self .model .objects .filter (owner = self .request .user ,
382+ formation = formation )
373383
374384 def get_object (self , * args , ** kwargs ):
375- formation = models .Formation .objects .get (id = self .kwargs ['id' ])
376- build = self .model .objects .filter (
377- formation = formation ).order_by ('-created' )[0 ]
385+ qs = self .get_queryset ().order_by ('-created' )
386+ build = get_object_or_404 (qs )
378387 return build
379388
380389 def post_save (self , obj , created = False ):
@@ -384,10 +393,14 @@ def post_save(self, obj, created=False):
384393
385394 def create (self , request , * args , ** kwargs ):
386395 request ._data = request .DATA .copy ()
387- obj = self .get_object ()
388- # increment version and use the same formation
389- request .DATA ['version' ] = obj .version + 1
390- request .DATA ['formation' ] = obj .formation
396+ try :
397+ obj = self .get_object ()
398+ request .DATA ['version' ] = obj .version + 1
399+ except Http404 :
400+ request .DATA ['version' ] = 1
401+ formation = models .Formation .objects .get (
402+ owner = self .request .user , id = self .kwargs ['id' ])
403+ request .DATA ['formation' ] = formation
391404 return super (OwnerViewSet , self ).create (request , * args , ** kwargs )
392405
393406
@@ -397,7 +410,10 @@ class FormationReleaseViewSet(OwnerViewSet):
397410 serializer_class = serializers .ReleaseSerializer
398411
399412 def get_queryset (self , ** kwargs ):
400- return self .model .objects .filter (owner = self .request .user )
413+ formation = models .Formation .objects .get (
414+ owner = self .request .user , id = self .kwargs ['id' ])
415+ return self .model .objects .filter (owner = self .request .user ,
416+ formation = formation )
401417
402418 def get_object (self , * args , ** kwargs ):
403419 formation = models .Formation .objects .get (id = self .kwargs ['id' ])
0 commit comments