From 15f888ca65f3d8fb9073fc925981938ff6de56b2 Mon Sep 17 00:00:00 2001 From: Alexander Haase Date: Wed, 24 Jul 2024 09:48:40 +0200 Subject: [PATCH] Revert "Use SyncDataSourceJob for management" This partially reverts commit db591d4. The 'run_now' parameter of 'enqueue()' remains, as its being used by following commits. --- netbox/core/management/commands/syncdatasource.py | 13 +++++++------ netbox/core/models/data.py | 5 ++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/netbox/core/management/commands/syncdatasource.py b/netbox/core/management/commands/syncdatasource.py index 0e7b268dc..aa8137952 100644 --- a/netbox/core/management/commands/syncdatasource.py +++ b/netbox/core/management/commands/syncdatasource.py @@ -34,12 +34,13 @@ class Command(BaseCommand): for i, datasource in enumerate(datasources, start=1): self.stdout.write(f"[{i}] Syncing {datasource}... ", ending='') self.stdout.flush() - - datasource.enqueue_sync_job() - datasource.refresh_from_db() - - self.stdout.write(datasource.get_status_display()) - self.stdout.flush() + try: + datasource.sync() + self.stdout.write(datasource.get_status_display()) + self.stdout.flush() + except Exception as e: + DataSource.objects.filter(pk=datasource.pk).update(status=DataSourceStatusChoices.FAILED) + raise e if len(options['name']) > 1: self.stdout.write(f"Finished.") diff --git a/netbox/core/models/data.py b/netbox/core/models/data.py index 75b8e4b18..5785d7276 100644 --- a/netbox/core/models/data.py +++ b/netbox/core/models/data.py @@ -153,7 +153,7 @@ class DataSource(JobsMixin, PrimaryModel): return objectchange - def enqueue_sync_job(self, request=None): + def enqueue_sync_job(self, request): """ Enqueue a background job to synchronize the DataSource by calling sync(). """ @@ -165,8 +165,7 @@ class DataSource(JobsMixin, PrimaryModel): SyncDataSourceJob = import_string('core.jobs.SyncDataSourceJob') return SyncDataSourceJob.enqueue( instance=self, - user=(request.user if request else None), - run_now=(request is None), + user=request.user ) def get_backend(self):