From 995aa65f16765e9ca6e54de60d600b7bae671522 Mon Sep 17 00:00:00 2001 From: maximumG Date: Wed, 7 Jul 2021 15:26:33 +0200 Subject: [PATCH] feat: Netbox plugin can defined their own RQ queues --- netbox/extras/plugins/__init__.py | 3 +++ netbox/extras/tests/dummy_plugin/__init__.py | 5 +++++ netbox/extras/tests/test_plugins.py | 8 ++++++++ 3 files changed, 16 insertions(+) diff --git a/netbox/extras/plugins/__init__.py b/netbox/extras/plugins/__init__.py index 0ea461344..2413e1aa0 100644 --- a/netbox/extras/plugins/__init__.py +++ b/netbox/extras/plugins/__init__.py @@ -52,6 +52,9 @@ class PluginConfig(AppConfig): '*': {'ops': 'all'}, } + # Django-rq queues dedicated to the plugin + queues = [] + # Default integration paths. Plugin authors can override these to customize the paths to # integrated components. template_extensions = 'template_content.template_extensions' diff --git a/netbox/extras/tests/dummy_plugin/__init__.py b/netbox/extras/tests/dummy_plugin/__init__.py index 63f7d308e..83baf064f 100644 --- a/netbox/extras/tests/dummy_plugin/__init__.py +++ b/netbox/extras/tests/dummy_plugin/__init__.py @@ -12,6 +12,11 @@ class DummyPluginConfig(PluginConfig): middleware = [ 'extras.tests.dummy_plugin.middleware.DummyMiddleware' ] + queues = [ + 'testing-low', + 'testing-medium', + 'testing-high' + ] config = DummyPluginConfig diff --git a/netbox/extras/tests/test_plugins.py b/netbox/extras/tests/test_plugins.py index b47453aa7..74fd1d759 100644 --- a/netbox/extras/tests/test_plugins.py +++ b/netbox/extras/tests/test_plugins.py @@ -86,6 +86,14 @@ class PluginTest(TestCase): """ self.assertIn('extras.tests.dummy_plugin.*', settings.CACHEOPS) + def test_queues(self): + """ + Check that plugin queues are registered with the accurate name. + """ + self.assertIn('extras.tests.dummy_plugin.testing-low', settings.RQ_QUEUES) + self.assertIn('extras.tests.dummy_plugin.testing-medium', settings.RQ_QUEUES) + self.assertIn('extras.tests.dummy_plugin.testing-high', settings.RQ_QUEUES) + def test_min_version(self): """ Check enforcement of minimum NetBox version.