From a2595dcf124a3435cba2b32f76a2bf924604e6f7 Mon Sep 17 00:00:00 2001 From: Chris Church Date: Wed, 24 Feb 2016 18:38:04 -0500 Subject: [PATCH] API fixes for 500 errors. --- awx/api/serializers.py | 4 ++++ awx/api/views.py | 8 ++++---- awx/main/views.py | 5 ++++- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/awx/api/serializers.py b/awx/api/serializers.py index 83719f1dba..223803bcbf 100644 --- a/awx/api/serializers.py +++ b/awx/api/serializers.py @@ -478,6 +478,10 @@ class BaseSerializer(serializers.ModelSerializer): return attrs +class EmptySerializer(serializers.Serializer): + pass + + class BaseFactSerializer(DocumentSerializer): __metaclass__ = BaseSerializerMetaclass diff --git a/awx/api/views.py b/awx/api/views.py index 1a6e306419..8dc0aff15b 100644 --- a/awx/api/views.py +++ b/awx/api/views.py @@ -1940,7 +1940,7 @@ class JobTemplateSurveySpec(GenericAPIView): model = JobTemplate parent_model = JobTemplate - # FIXME: Add serializer class to define fields in OPTIONS request! + serializer_class = EmptySerializer def get(self, request, *args, **kwargs): obj = self.get_object() @@ -2019,8 +2019,8 @@ class JobTemplateActivityStreamList(SubListAPIView): class JobTemplateCallback(GenericAPIView): model = JobTemplate - # FIXME: Add serializer class to define fields in OPTIONS request! permission_classes = (JobTemplateCallbackPermission,) + serializer_class = EmptySerializer @csrf_exempt @transaction.non_atomic_requests @@ -2202,7 +2202,7 @@ class SystemJobTemplateDetail(RetrieveAPIView): class SystemJobTemplateLaunch(GenericAPIView): model = SystemJobTemplate - # FIXME: Add serializer class to define fields in OPTIONS request! + serializer_class = EmptySerializer def get(self, request, *args, **kwargs): return Response({}) @@ -2273,7 +2273,7 @@ class JobActivityStreamList(SubListAPIView): class JobStart(GenericAPIView): model = Job - # FIXME: Add serializer class to define fields in OPTIONS request! + serializer_class = EmptySerializer is_job_start = True def get(self, request, *args, **kwargs): diff --git a/awx/main/views.py b/awx/main/views.py index 5720405093..a1036a96e6 100644 --- a/awx/main/views.py +++ b/awx/main/views.py @@ -34,7 +34,10 @@ def handle_error(request, status=404, **kwargs): status_code = status default_detail = kwargs['content'] api_error_view = ApiErrorView.as_view(view_name=kwargs['name'], exception_class=APIException) - return api_error_view(request) + response = api_error_view(request) + if hasattr(response, 'render'): + response.render() + return response else: kwargs['content'] = format_html('{}', kwargs.get('content', '')) return render(request, 'error.html', kwargs, status=status)