Skip to content

Commit 3097db4

Browse files
committed
Add rq-status endpoint
1 parent 848e47c commit 3097db4

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

netbox_script_manager/api/urls.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
1+
from django.urls import path
12
from netbox.api.routers import NetBoxRouter
23

3-
from netbox_script_manager.api.views import ScriptArtifactViewSet, ScriptExecutionViewSet, ScriptInstanceViewSet, ScriptLogLineViewSet
4+
from netbox_script_manager.api.views import (
5+
RqStatusViewSet,
6+
ScriptArtifactViewSet,
7+
ScriptExecutionViewSet,
8+
ScriptInstanceViewSet,
9+
ScriptLogLineViewSet,
10+
)
411

512
router = NetBoxRouter()
613
# router.APIRootView = NetBoxScriptManagerView
@@ -9,5 +16,6 @@
916
router.register("script-executions", ScriptExecutionViewSet)
1017
router.register("script-log-lines", ScriptLogLineViewSet)
1118
router.register("script-artifacts", ScriptArtifactViewSet)
19+
router.register("rq-status", RqStatusViewSet, basename="rq-status")
1220

1321
urlpatterns = router.urls

netbox_script_manager/api/views.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,18 @@
22

33
import django_rq
44
from django.conf import settings
5+
from django_rq.views import get_statistics
6+
from drf_spectacular.types import OpenApiTypes
7+
from drf_spectacular.utils import extend_schema
8+
from netbox.api.authentication import IsAuthenticatedOrLoginNotRequired
59
from netbox.api.viewsets import NetBoxModelViewSet, NetBoxReadOnlyModelViewSet
610
from rest_framework import status as http_status
11+
from rest_framework import viewsets
712
from rest_framework.decorators import action
813
from rest_framework.exceptions import PermissionDenied
914
from rest_framework.response import Response
1015
from rest_framework.routers import APIRootView
16+
from rest_framework.views import APIView
1117
from utilities.permissions import get_permission_for_model
1218
from utilities.utils import copy_safe_request
1319

@@ -155,3 +161,11 @@ class ScriptArtifactViewSet(NetBoxModelViewSet):
155161
queryset = ScriptArtifact.objects.all()
156162
serializer_class = ScriptArtifactSerializer
157163
filterset_class = ScriptArtifactFilterSet
164+
165+
166+
class RqStatusViewSet(viewsets.ViewSet):
167+
permission_classes = [IsAuthenticatedOrLoginNotRequired]
168+
169+
@extend_schema(responses={200: OpenApiTypes.OBJECT})
170+
def list(self, request):
171+
return Response(get_statistics())

0 commit comments

Comments
 (0)