Просмотр исходного кода

Fixes #13812: Record data source sync failure when run via syncdatasource command

Jeremy Stretch 2 лет назад
Родитель
Сommit
a67236fc3c
1 измененных файлов с 8 добавлено и 3 удалено
  1. 8 3
      netbox/core/management/commands/syncdatasource.py

+ 8 - 3
netbox/core/management/commands/syncdatasource.py

@@ -1,5 +1,6 @@
 from django.core.management.base import BaseCommand, CommandError
 
+from core.choices import DataSourceStatusChoices
 from core.models import DataSource
 
 
@@ -33,9 +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.sync()
-            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.")