From eab074bfceee117ddd3f6a28ff3f69009dca53da Mon Sep 17 00:00:00 2001 From: Fabricio Aguiar Date: Tue, 5 Jan 2021 18:20:50 -0300 Subject: [PATCH] Fix drf_spectacular OpenAPI schema warnings [noissue] --- pulpcore/app/views/repair.py | 4 ++++ pulpcore/app/viewsets/task.py | 8 ++++++++ pulpcore/openapi/__init__.py | 10 +++++++--- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/pulpcore/app/views/repair.py b/pulpcore/app/views/repair.py index e9be8a0192..36060c37b1 100644 --- a/pulpcore/app/views/repair.py +++ b/pulpcore/app/views/repair.py @@ -8,6 +8,10 @@ class RepairView(APIView): + def get_serializer_class(self): + """Get serializer class.""" + return AsyncOperationResponseSerializer + @extend_schema( description=( "Trigger an asynchronous task that checks for missing " diff --git a/pulpcore/app/viewsets/task.py b/pulpcore/app/viewsets/task.py index 7de9802ba5..1f52b60ea4 100755 --- a/pulpcore/app/viewsets/task.py +++ b/pulpcore/app/viewsets/task.py @@ -100,6 +100,14 @@ class TaskViewSet( ], } + def get_queryset(self): + """Get queryset.""" + if self.request is None: + # https://github.com/carltongibson/django-filter/issues/966#issuecomment-639739206 + return Task.objects.none() + + return Task.objects.all() + @extend_schema( description="This operation cancels a task.", summary="Cancel a task", diff --git a/pulpcore/openapi/__init__.py b/pulpcore/openapi/__init__.py index 0cfd926635..8b9a2cee89 100644 --- a/pulpcore/openapi/__init__.py +++ b/pulpcore/openapi/__init__.py @@ -170,7 +170,13 @@ def _get_serializer_name(self, serializer, direction): Get serializer name. """ name = super()._get_serializer_name(serializer, direction) - if direction == "request": + if "RepositoryVersion" in name: + prefix = self.view.parent_viewset.queryset.model._meta.app_label + name = prefix.title() + name + pulp_model_alias = getattr(self.view, "pulp_model_alias", None) + if pulp_model_alias: + name = pulp_model_alias + if direction == "request" and "Request" in name: name = name[:-7] elif direction == "response" and "Response" not in name: name = name + "Response" @@ -439,8 +445,6 @@ def get_schema(self, request=None, public=False): paths=self.parse(request, public), components=self.registry.build(spectacular_settings.APPEND_COMPONENTS), ) - for hook in spectacular_settings.POSTPROCESSING_HOOKS: - result = hook(result=result, generator=self, request=request, public=public) # Basically I'm doing it to get pulp logo at redoc page result["info"]["x-logo"] = {