From 05aa008ce12b919c9cd0607e016a7fabc34e7f4c Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Mon, 13 Jul 2020 15:11:58 -0400 Subject: [PATCH] #2006: Prevent script/report execution if no RQ worker is running --- netbox/extras/api/views.py | 12 +++++++++++- netbox/extras/views.py | 21 +++++++++++++++------ netbox/utilities/exceptions.py | 14 ++++++++++++++ 3 files changed, 40 insertions(+), 7 deletions(-) diff --git a/netbox/extras/api/views.py b/netbox/extras/api/views.py index e9e2b6c85..501182da5 100644 --- a/netbox/extras/api/views.py +++ b/netbox/extras/api/views.py @@ -3,11 +3,13 @@ from collections import OrderedDict from django.contrib.contenttypes.models import ContentType from django.db.models import Count from django.http import Http404 +from django_rq.queues import get_connection from rest_framework import status from rest_framework.decorators import action from rest_framework.exceptions import PermissionDenied from rest_framework.response import Response from rest_framework.viewsets import ReadOnlyModelViewSet, ViewSet +from rq import Worker from extras import filters from extras.choices import JobResultStatusChoices @@ -17,6 +19,7 @@ from extras.models import ( from extras.reports import get_report, get_reports, run_report from extras.scripts import get_script, get_scripts, run_script from utilities.api import IsAuthenticatedOrLoginNotRequired, ModelViewSet +from utilities.exceptions import RQWorkerNotRunningException from utilities.metadata import ContentTypeMetadata from utilities.utils import copy_safe_request from . import serializers @@ -219,11 +222,14 @@ class ReportViewSet(ViewSet): """ Run a Report identified as ".