From 3702ba92ead51c187722732a69a4294522676c64 Mon Sep 17 00:00:00 2001 From: fit2bot <68588906+fit2bot@users.noreply.github.com> Date: Tue, 31 Jan 2023 11:00:21 +0800 Subject: [PATCH] perf: celery task delete (#9372) Co-authored-by: feng <1304903146@qq.com> --- apps/ops/api/celery.py | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/apps/ops/api/celery.py b/apps/ops/api/celery.py index f55c296f9..ba6de12b4 100644 --- a/apps/ops/api/celery.py +++ b/apps/ops/api/celery.py @@ -1,31 +1,26 @@ # -*- coding: utf-8 -*- # - import os import re +from celery.result import AsyncResult +from rest_framework import generics, viewsets, mixins from django.shortcuts import get_object_or_404 from django.utils.translation import ugettext as _ -from rest_framework import viewsets -from celery.result import AsyncResult -from rest_framework import generics from django_celery_beat.models import PeriodicTask - from common.permissions import IsValidUser -from common.api import LogTailApi +from common.api import LogTailApi, CommonApiMixin from ..models import CeleryTaskExecution, CeleryTask -from ..serializers import CeleryResultSerializer, CeleryPeriodTaskSerializer from ..celery.utils import get_celery_task_log_path from ..ansible.utils import get_ansible_task_log_path -from common.api import CommonApiMixin +from ..serializers import CeleryResultSerializer, CeleryPeriodTaskSerializer +from ..serializers.celery import CeleryTaskSerializer, CeleryTaskExecutionSerializer __all__ = [ 'CeleryTaskExecutionLogApi', 'CeleryResultApi', 'CeleryPeriodTaskViewSet', 'AnsibleTaskLogApi', 'CeleryTaskViewSet', 'CeleryTaskExecutionViewSet' ] -from ..serializers.celery import CeleryTaskSerializer, CeleryTaskExecutionSerializer - class CeleryTaskExecutionLogApi(LogTailApi): permission_classes = (IsValidUser,) @@ -103,9 +98,12 @@ class CelerySummaryAPIView(generics.RetrieveAPIView): pass -class CeleryTaskViewSet(CommonApiMixin, viewsets.ReadOnlyModelViewSet): +class CeleryTaskViewSet( + CommonApiMixin, mixins.RetrieveModelMixin, + mixins.ListModelMixin, mixins.DestroyModelMixin, + viewsets.GenericViewSet +): serializer_class = CeleryTaskSerializer - http_method_names = ('get', 'head', 'options',) def get_queryset(self): return CeleryTask.objects.exclude(name__startswith='celery')