fix(provider): disable periodic task on views before deleting (#7470)

Co-authored-by: Adrián Jesús Peña Rodríguez <adrianjpr@gmail.com>
Co-authored-by: Víctor Fernández Poyatos <victor@prowler.com>
This commit is contained in:
Prowler Bot
2025-04-08 12:05:39 +02:00
committed by GitHub
parent 16c71f3c04
commit 154467e7c8
4 changed files with 13 additions and 5 deletions
+7
View File
@@ -4,6 +4,13 @@ All notable changes to the **Prowler API** are documented in this file.
---
## [v1.5.4] (Prowler v5.4.4)
### Fixed
- Fixed a bug with periodic tasks when trying to delete a provider ([#7466])(https://github.com/prowler-cloud/prowler/pull/7466).
---
## [v1.5.3] (Prowler v5.4.3)
### Fixed
+1 -1
View File
@@ -8,7 +8,7 @@ description = "Prowler's API (Django/DRF)"
license = "Apache-2.0"
name = "prowler-api"
package-mode = false
version = "1.5.3"
version = "1.5.4"
[tool.poetry.dependencies]
celery = {extras = ["pytest"], version = "^5.4.0"}
+1 -1
View File
@@ -1,7 +1,7 @@
openapi: 3.0.3
info:
title: Prowler API
version: 1.5.3
version: 1.5.4
description: |-
Prowler API specification.
+4 -3
View File
@@ -22,6 +22,7 @@ from django.http import HttpResponse
from django.urls import reverse
from django.utils.decorators import method_decorator
from django.views.decorators.cache import cache_control
from django_celery_beat.models import PeriodicTask
from drf_spectacular.settings import spectacular_settings
from drf_spectacular.utils import (
OpenApiParameter,
@@ -55,7 +56,6 @@ from tasks.tasks import (
from api.base_views import BaseRLSViewSet, BaseTenantViewset, BaseUserViewset
from api.db_router import MainRouter
from api.db_utils import delete_related_daily_task
from api.filters import (
ComplianceOverviewFilter,
FindingFilter,
@@ -241,7 +241,7 @@ class SchemaView(SpectacularAPIView):
def get(self, request, *args, **kwargs):
spectacular_settings.TITLE = "Prowler API"
spectacular_settings.VERSION = "1.5.3"
spectacular_settings.VERSION = "1.5.4"
spectacular_settings.DESCRIPTION = (
"Prowler API specification.\n\nThis file is auto-generated."
)
@@ -1078,7 +1078,8 @@ class ProviderViewSet(BaseRLSViewSet):
provider = get_object_or_404(Provider, pk=pk)
provider.is_deleted = True
provider.save()
delete_related_daily_task(str(provider.id))
task_name = f"scan-perform-scheduled-{pk}"
PeriodicTask.objects.filter(name=task_name).update(enabled=False)
with transaction.atomic():
task = delete_provider_task.delay(