diff --git a/netbox/core/jobs.py b/netbox/core/jobs.py index 0fcb27bb0..132e4b846 100644 --- a/netbox/core/jobs.py +++ b/netbox/core/jobs.py @@ -4,6 +4,7 @@ from netbox.search.backends import search_backend from .choices import * from .exceptions import SyncError from .models import DataSource +from rq.timeouts import JobTimeoutException logger = logging.getLogger(__name__) @@ -23,7 +24,7 @@ def sync_datasource(job, *args, **kwargs): job.terminate() - except SyncError as e: + except (SyncError, JobTimeoutException) as e: job.terminate(status=JobStatusChoices.STATUS_ERRORED) DataSource.objects.filter(pk=datasource.pk).update(status=DataSourceStatusChoices.FAILED) logging.error(e) diff --git a/netbox/core/views.py b/netbox/core/views.py index 06e821700..65e9f09bc 100644 --- a/netbox/core/views.py +++ b/netbox/core/views.py @@ -32,11 +32,7 @@ class DataSourceView(generic.ObjectView): (DataFile.objects.restrict(request.user, 'view').filter(source=instance), 'source_id'), ) - queue_name = get_queue_for_model(DataSource) - sync_enabled = bool(get_workers_for_queue(queue_name)) - return { - 'sync_enabled': sync_enabled, 'related_models': related_models, } diff --git a/netbox/templates/core/datasource.html b/netbox/templates/core/datasource.html index 193ceac7a..510fe9b8f 100644 --- a/netbox/templates/core/datasource.html +++ b/netbox/templates/core/datasource.html @@ -6,7 +6,7 @@ {% block extra_controls %} {% if perms.core.sync_datasource %} - {% if sync_enabled and object.ready_for_sync %} + {% if object.ready_for_sync %}
{% csrf_token %}
{% else %} - +