Skip to content

Commit f3ac491

Browse files
author
Gabriel Monroy
committed
Merge pull request #191 from opdemand/app-endpoint-500s
Return 404 if app cannot be found during queryset lookup
2 parents a51fa6c + fda0f27 commit f3ac491

2 files changed

Lines changed: 11 additions & 3 deletions

File tree

api/tests/app.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,13 @@ def test_app_errors(self):
197197
body = {'command': 'ls -al'}
198198
response = self.client.post(url, json.dumps(body), content_type='application/json')
199199
self.assertContains(response, 'No nodes available to run command', status_code=400)
200+
url = '/api/apps/{app_id}'.format(**locals())
201+
response = self.client.delete(url)
202+
self.assertEquals(response.status_code, 204)
203+
for endpoint in ('containers', 'config', 'releases', 'builds'):
204+
url = '/api/apps/{app_id}/{endpoint}'.format(**locals())
205+
response = self.client.get(url)
206+
self.assertEquals(response.status_code, 404)
200207

201208

202209
FAKE_LOG_DATA = """

api/views.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,8 @@ def destroy(self, request, **kwargs):
330330
class BaseAppViewSet(OwnerViewSet):
331331

332332
def get_queryset(self, **kwargs):
333-
app = models.App.objects.get(owner=self.request.user, id=self.kwargs['id'])
333+
app = get_object_or_404(models.App.objects.filter(
334+
owner=self.request.user, id=self.kwargs['id']))
334335
return self.model.objects.filter(owner=self.request.user, app=app)
335336

336337
def get_object(self, *args, **kwargs):
@@ -401,8 +402,8 @@ class AppContainerViewSet(OwnerViewSet):
401402
serializer_class = serializers.ContainerSerializer
402403

403404
def get_queryset(self, **kwargs):
404-
app = models.App.objects.get(
405-
owner=self.request.user, id=self.kwargs['id'])
405+
app = get_object_or_404(models.App.objects.filter(
406+
owner=self.request.user, id=self.kwargs['id']))
406407
qs = self.model.objects.filter(owner=self.request.user, app=app)
407408
container_type = self.kwargs.get('type')
408409
if container_type:

0 commit comments

Comments
 (0)