diff --git a/netbox/core/jobs.py b/netbox/core/jobs.py index 8f7ddd0d8..8605a6dec 100644 --- a/netbox/core/jobs.py +++ b/netbox/core/jobs.py @@ -1,6 +1,10 @@ import logging +from netbox.search.backends import search_backend from utilities.jobs import BackgroundJob +from .choices import DataSourceStatusChoices +from .exceptions import SyncError +from .models import DataSource logger = logging.getLogger(__name__) @@ -12,11 +16,6 @@ class SyncDataSourceJob(BackgroundJob): @classmethod def run(cls, job, *args, **kwargs): - from netbox.search.backends import search_backend - from .choices import DataSourceStatusChoices - from .exceptions import SyncError - from .models import DataSource - datasource = DataSource.objects.get(pk=job.object_id) try: diff --git a/netbox/core/models/data.py b/netbox/core/models/data.py index a354edfc4..5785d7276 100644 --- a/netbox/core/models/data.py +++ b/netbox/core/models/data.py @@ -12,6 +12,7 @@ from django.core.validators import RegexValidator from django.db import models from django.urls import reverse from django.utils import timezone +from django.utils.module_loading import import_string from django.utils.translation import gettext as _ from netbox.constants import CENSOR_TOKEN, CENSOR_TOKEN_CHANGED @@ -161,7 +162,7 @@ class DataSource(JobsMixin, PrimaryModel): DataSource.objects.filter(pk=self.pk).update(status=self.status) # Enqueue a sync job - from ..jobs import SyncDataSourceJob + SyncDataSourceJob = import_string('core.jobs.SyncDataSourceJob') return SyncDataSourceJob.enqueue( instance=self, user=request.user