mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-30 04:16:24 -06:00
7848 cleanup
This commit is contained in:
parent
c8f13ad2a5
commit
72f974604d
@ -15,6 +15,7 @@ router.register('background-tasks/(?P<queue_name>[\w-]+)/deferred', views.Backgr
|
|||||||
router.register('background-tasks/(?P<queue_name>[\w-]+)/failed', views.BackgroundTaskFailedViewSet, basename='BackgroundTaskFailed')
|
router.register('background-tasks/(?P<queue_name>[\w-]+)/failed', views.BackgroundTaskFailedViewSet, basename='BackgroundTaskFailed')
|
||||||
router.register('background-tasks/(?P<queue_name>[\w-]+)/finished', views.BackgroundTaskFinishedViewSet, basename='BackgroundTaskFinished')
|
router.register('background-tasks/(?P<queue_name>[\w-]+)/finished', views.BackgroundTaskFinishedViewSet, basename='BackgroundTaskFinished')
|
||||||
router.register('background-tasks/(?P<queue_name>[\w-]+)/started', views.BackgroundTaskStartedViewSet, basename='BackgroundTaskStarted')
|
router.register('background-tasks/(?P<queue_name>[\w-]+)/started', views.BackgroundTaskStartedViewSet, basename='BackgroundTaskStarted')
|
||||||
|
router.register('background-tasks/(?P<queue_name>[\w-]+)/queued', views.BackgroundTaskQueuedViewSet, basename='BackgroundTaskQueued')
|
||||||
|
|
||||||
app_name = 'core-api'
|
app_name = 'core-api'
|
||||||
urlpatterns = router.urls
|
urlpatterns = router.urls
|
||||||
|
@ -147,3 +147,17 @@ class BackgroundTaskFinishedViewSet(BaseBackgroundTaskViewSet):
|
|||||||
|
|
||||||
class BackgroundTaskStartedViewSet(BaseBackgroundTaskViewSet):
|
class BackgroundTaskStartedViewSet(BaseBackgroundTaskViewSet):
|
||||||
registry = "started"
|
registry = "started"
|
||||||
|
|
||||||
|
|
||||||
|
class BackgroundTaskQueuedViewSet(BaseBackgroundTaskViewSet):
|
||||||
|
registry = "queued"
|
||||||
|
|
||||||
|
@extend_schema(responses={200: OpenApiTypes.OBJECT})
|
||||||
|
def list(self, request, queue_name):
|
||||||
|
"""
|
||||||
|
Return the UserConfig for the currently authenticated User.
|
||||||
|
"""
|
||||||
|
queue = get_queue(queue_name)
|
||||||
|
data = queue.get_jobs()
|
||||||
|
serializer = serializers.BackgroundTaskSerializer(data, many=True)
|
||||||
|
return Response(serializer.data)
|
||||||
|
@ -14,16 +14,17 @@ from django.utils.translation import gettext_lazy as _
|
|||||||
from django.views.generic import View
|
from django.views.generic import View
|
||||||
from django_rq.queues import get_connection, get_queue_by_index, get_redis_connection
|
from django_rq.queues import get_connection, get_queue_by_index, get_redis_connection
|
||||||
from django_rq.settings import QUEUES_MAP, QUEUES_LIST
|
from django_rq.settings import QUEUES_MAP, QUEUES_LIST
|
||||||
from django_rq.utils import get_jobs, get_statistics, stop_jobs
|
from django_rq.utils import get_statistics, stop_jobs
|
||||||
from rq import requeue_job
|
from rq import requeue_job
|
||||||
from rq.exceptions import NoSuchJobError
|
from rq.exceptions import NoSuchJobError
|
||||||
from rq.job import Job as RQ_Job, JobStatus as RQJobStatus
|
from rq.job import Job as RQ_Job
|
||||||
from rq.registry import (
|
from rq.registry import (
|
||||||
DeferredJobRegistry, FailedJobRegistry, FinishedJobRegistry, ScheduledJobRegistry, StartedJobRegistry,
|
DeferredJobRegistry, FinishedJobRegistry, ScheduledJobRegistry,
|
||||||
)
|
)
|
||||||
from rq.worker import Worker
|
from rq.worker import Worker
|
||||||
from rq.worker_registration import clean_worker_registry
|
from rq.worker_registration import clean_worker_registry
|
||||||
|
|
||||||
|
from core.utils import get_rq_jobs_from_status
|
||||||
from netbox.config import get_config, PARAMS
|
from netbox.config import get_config, PARAMS
|
||||||
from netbox.views import generic
|
from netbox.views import generic
|
||||||
from netbox.views.generic.base import BaseObjectView
|
from netbox.views.generic.base import BaseObjectView
|
||||||
@ -347,40 +348,12 @@ class BackgroundTaskListView(TableMixin, BaseRQView):
|
|||||||
table = tables.BackgroundTaskTable
|
table = tables.BackgroundTaskTable
|
||||||
|
|
||||||
def get_table_data(self, request, queue, status):
|
def get_table_data(self, request, queue, status):
|
||||||
jobs = []
|
|
||||||
|
|
||||||
# Call get_jobs() to returned queued tasks
|
# Call get_jobs() to returned queued tasks
|
||||||
if status == RQJobStatus.QUEUED:
|
if status == RQJobStatus.QUEUED:
|
||||||
return queue.get_jobs()
|
return queue.get_jobs()
|
||||||
|
|
||||||
# For other statuses, determine the registry to list (or raise a 404 for invalid statuses)
|
jobs = get_rq_jobs_from_status(queue, status)
|
||||||
try:
|
|
||||||
registry_cls = {
|
|
||||||
RQJobStatus.STARTED: StartedJobRegistry,
|
|
||||||
RQJobStatus.DEFERRED: DeferredJobRegistry,
|
|
||||||
RQJobStatus.FINISHED: FinishedJobRegistry,
|
|
||||||
RQJobStatus.FAILED: FailedJobRegistry,
|
|
||||||
RQJobStatus.SCHEDULED: ScheduledJobRegistry,
|
|
||||||
}[status]
|
|
||||||
except KeyError:
|
|
||||||
raise Http404
|
|
||||||
registry = registry_cls(queue.name, queue.connection)
|
|
||||||
|
|
||||||
job_ids = registry.get_job_ids()
|
|
||||||
if status != RQJobStatus.DEFERRED:
|
|
||||||
jobs = get_jobs(queue, job_ids, registry)
|
|
||||||
else:
|
|
||||||
# Deferred jobs require special handling
|
|
||||||
for job_id in job_ids:
|
|
||||||
try:
|
|
||||||
jobs.append(RQ_Job.fetch(job_id, connection=queue.connection, serializer=queue.serializer))
|
|
||||||
except NoSuchJobError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
if jobs and status == RQJobStatus.SCHEDULED:
|
|
||||||
for job in jobs:
|
|
||||||
job.scheduled_at = registry.get_scheduled_time(job)
|
|
||||||
|
|
||||||
return jobs
|
return jobs
|
||||||
|
|
||||||
def get(self, request, queue_index, status):
|
def get(self, request, queue_index, status):
|
||||||
|
Loading…
Reference in New Issue
Block a user