mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-29 03:46:25 -06:00
7848 queue detail view
This commit is contained in:
parent
7207180fcf
commit
cbba650a9f
@ -1,4 +1,5 @@
|
|||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
|
from rest_framework.reverse import reverse
|
||||||
|
|
||||||
__all__ = (
|
__all__ = (
|
||||||
'BackgroundTaskSerializer',
|
'BackgroundTaskSerializer',
|
||||||
@ -50,7 +51,7 @@ class BackgroundTaskSerializer(serializers.Serializer):
|
|||||||
|
|
||||||
class BackgroundQueueSerializer(serializers.Serializer):
|
class BackgroundQueueSerializer(serializers.Serializer):
|
||||||
name = serializers.CharField()
|
name = serializers.CharField()
|
||||||
# Note: Queue names are not url safe so not returning a url field
|
url = serializers.SerializerMethodField()
|
||||||
jobs = serializers.IntegerField()
|
jobs = serializers.IntegerField()
|
||||||
oldest_job_timestamp = serializers.CharField()
|
oldest_job_timestamp = serializers.CharField()
|
||||||
index = serializers.IntegerField()
|
index = serializers.IntegerField()
|
||||||
@ -62,6 +63,9 @@ class BackgroundQueueSerializer(serializers.Serializer):
|
|||||||
failed_jobs = serializers.IntegerField()
|
failed_jobs = serializers.IntegerField()
|
||||||
scheduled_jobs = serializers.IntegerField()
|
scheduled_jobs = serializers.IntegerField()
|
||||||
|
|
||||||
|
def get_url(self, obj):
|
||||||
|
return reverse('core-api:rqqueue-detail', args=[obj['name']], request=self.context.get("request"))
|
||||||
|
|
||||||
|
|
||||||
class BackgroundWorkerSerializer(serializers.Serializer):
|
class BackgroundWorkerSerializer(serializers.Serializer):
|
||||||
name = serializers.CharField()
|
name = serializers.CharField()
|
||||||
|
@ -119,6 +119,19 @@ class BackgroundQueueViewSet(BaseRQViewSet):
|
|||||||
def get_data(self):
|
def get_data(self):
|
||||||
return get_statistics(run_maintenance_tasks=True)["queues"]
|
return get_statistics(run_maintenance_tasks=True)["queues"]
|
||||||
|
|
||||||
|
@extend_schema(responses={200: OpenApiTypes.OBJECT})
|
||||||
|
def retrieve(self, request, name):
|
||||||
|
data = self.get_data()
|
||||||
|
if not data:
|
||||||
|
raise Http404
|
||||||
|
|
||||||
|
for queue in data:
|
||||||
|
if queue['name'] == name:
|
||||||
|
serializer = self.serializer_class(queue, context={'request': request})
|
||||||
|
return Response(serializer.data)
|
||||||
|
|
||||||
|
raise Http404
|
||||||
|
|
||||||
|
|
||||||
class BackgroundWorkerViewSet(BaseRQViewSet):
|
class BackgroundWorkerViewSet(BaseRQViewSet):
|
||||||
"""
|
"""
|
||||||
|
Loading…
Reference in New Issue
Block a user