77import json
88
99from Crypto .PublicKey import RSA
10- from django .conf import settings
11- from django .contrib .auth .models import Group , AnonymousUser , User
10+ from django .contrib .auth .models import AnonymousUser , User
1211from django .db .utils import IntegrityError
1312from django .utils import timezone
1413from rest_framework import permissions , status , viewsets
1514from rest_framework .authentication import BaseAuthentication
1615from rest_framework .generics import get_object_or_404
1716from rest_framework .response import Response
18- from rest_framework .status import HTTP_400_BAD_REQUEST , HTTP_201_CREATED
17+ from rest_framework .status import HTTP_201_CREATED , HTTP_400_BAD_REQUEST
1918
2019from api import models
2120from api import serializers
@@ -33,7 +32,7 @@ def authenticate(self, request):
3332
3433class IsAnonymous (permissions .BasePermission ):
3534 """
36- Object-level permission to allow anonymous users
35+ Object-level permission to allow anonymous users.
3736 """
3837
3938 def has_permission (self , request , view ):
@@ -60,16 +59,6 @@ def has_object_permission(self, request, view, obj):
6059 return False
6160
6261
63- class GroupViewSet (viewsets .ModelViewSet ):
64-
65- model = Group
66-
67-
68- class UserViewSet (viewsets .ModelViewSet ):
69-
70- model = settings .AUTH_USER_MODEL
71-
72-
7362class UserRegistrationView (viewsets .GenericViewSet ,
7463 viewsets .mixins .CreateModelMixin ):
7564
@@ -80,12 +69,13 @@ class UserRegistrationView(viewsets.GenericViewSet,
8069 serializer_class = serializers .UserSerializer
8170
8271 def post_save (self , user , created = False ):
72+ """Seed both `Providers` and `Flavors` after registration."""
8373 if created :
8474 models .Provider .objects .seed (user )
8575 models .Flavor .objects .seed (user )
8676
8777 def pre_save (self , obj ):
88- "Replicate UserManager.create_user functionality"
78+ """ Replicate UserManager.create_user functionality."" "
8979 now = timezone .now ()
9080 obj .last_login = now
9181 obj .date_joined = now
@@ -94,43 +84,50 @@ def pre_save(self, obj):
9484
9585
9686class OwnerViewSet (viewsets .ModelViewSet ):
97- """
98- Base ViewSet for views scoped to a particular Owner
99- """
87+ """Scope views to an `owner` attribute."""
88+
10089 permission_classes = (permissions .IsAuthenticated , IsOwner )
10190
10291 def pre_save (self , obj ):
10392 obj .owner = self .request .user
10493
10594 def get_queryset (self , ** kwargs ):
95+ """Filter all querysets by an `owner` attribute.
96+ """
10697 return self .model .objects .filter (owner = self .request .user )
10798
10899
109100class KeyViewSet (OwnerViewSet ):
101+ """RESTful views for :class:`~api.models.Key`."""
110102
111103 model = models .Key
112104 serializer_class = serializers .KeySerializer
113105 lookup_field = 'id'
114106
115107 def post_save (self , obj , created = False , ** kwargs ):
116- # update gitosis
108+ """Publish all Formations when a Key is saved so gitosis stays updated.
109+ """
117110 models .Formation .objects .publish ()
118111
119112 def destroy (self , request , ** kwargs ):
113+ """Publish all Formations when a Key is destroyed so gitosis
114+ stays updated.
115+ """
120116 resp = super (KeyViewSet , self ).destroy (self , request , ** kwargs )
121- # publish gitosis updates
122117 models .Formation .objects .publish ()
123118 return resp
124119
125120
126121class ProviderViewSet (OwnerViewSet ):
122+ """RESTful views for :class:`~api.models.Provider`."""
127123
128124 model = models .Provider
129125 serializer_class = serializers .ProviderSerializer
130126 lookup_field = 'id'
131127
132128
133129class FlavorViewSet (OwnerViewSet ):
130+ """RESTful views for :class:`~api.models.Flavor`."""
134131
135132 model = models .Flavor
136133 serializer_class = serializers .FlavorSerializer
@@ -145,6 +142,7 @@ def create(self, request, **kwargs):
145142
146143
147144class FormationViewSet (OwnerViewSet ):
145+ """RESTful views for :class:`~api.models.Formtion`."""
148146
149147 model = models .Formation
150148 serializer_class = serializers .FormationSerializer
@@ -233,6 +231,7 @@ def destroy(self, request, **kwargs):
233231
234232
235233class FormationLayerViewSet (OwnerViewSet ):
234+ """RESTful views for :class:`~api.models.Layer`."""
236235
237236 model = models .Layer
238237 serializer_class = serializers .LayerSerializer
@@ -275,6 +274,7 @@ def destroy(self, request, **kwargs):
275274
276275
277276class FormationNodeViewSet (OwnerViewSet ):
277+ """RESTful views for :class:`~api.models.Node`."""
278278
279279 model = models .Node
280280 serializer_class = serializers .NodeSerializer
@@ -298,6 +298,7 @@ def destroy(self, request, **kwargs):
298298
299299
300300class FormationContainerViewSet (OwnerViewSet ):
301+ """RESTful views for :class:`~api.models.Container`."""
301302
302303 model = models .Container
303304 serializer_class = serializers .ContainerSerializer
@@ -315,6 +316,7 @@ def get_object(self, *args, **kwargs):
315316
316317
317318class FormationImageViewSet (OwnerViewSet ):
319+ """RESTful views for :class:`~api.models.Image`."""
318320
319321 model = models .Release
320322 serializer_class = serializers .ReleaseSerializer
@@ -339,6 +341,7 @@ def reset_image(self, request, *args, **kwargs):
339341
340342
341343class FormationConfigViewSet (OwnerViewSet ):
344+ """RESTful views for :class:`~api.models.Config`."""
342345
343346 model = models .Config
344347 serializer_class = serializers .ConfigSerializer
@@ -382,6 +385,7 @@ def create(self, request, *args, **kwargs):
382385
383386
384387class FormationBuildViewSet (OwnerViewSet ):
388+ """RESTful views for :class:`~api.models.Build`."""
385389
386390 model = models .Build
387391 serializer_class = serializers .BuildSerializer
@@ -412,6 +416,7 @@ def create(self, request, *args, **kwargs):
412416
413417
414418class FormationReleaseViewSet (OwnerViewSet ):
419+ """RESTful views for :class:`~api.models.Release`."""
415420
416421 model = models .Release
417422 serializer_class = serializers .ReleaseSerializer
0 commit comments