1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Fixes #11660: Catch RQ timeout exception when syncing data sources

This commit is contained in:
jeremystretch
2023-03-30 08:51:47 -04:00
parent c4891fe105
commit f965608791
3 changed files with 4 additions and 7 deletions

View File

@ -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)

View File

@ -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,
}

View File

@ -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 %}
<form action="{% url 'core:datasource_sync' pk=object.pk %}" method="post">
{% csrf_token %}
<button type="submit" class="btn btn-sm btn-primary">
@ -14,7 +14,7 @@
</button>
</form>
{% else %}
<span class="inline-block" tabindex="0" data-bs-toggle="tooltip" data-bs-delay="100" data-bs-placement="bottom" title="Unable to sync: No RQ worker running">
<span class="inline-block" tabindex="0" data-bs-toggle="tooltip" data-bs-delay="100" data-bs-placement="bottom">
<button class="btn btn-sm btn-primary" disabled>
<i class="mdi mdi-sync" aria-hidden="true"></i> Sync
</button>