feat: link backup runs to snapshot records

Add a nullable SnapshotRecord foreign key to BackupRun and populate it
when run_pobsync_backup records a completed or failed snapshot. Keep the
existing snapshot_path for audit compatibility while making run-to-snapshot
navigation explicit in the database and admin.
This commit is contained in:
2026-05-19 11:13:06 +02:00
parent 0a49c5719c
commit 5808800981
5 changed files with 48 additions and 9 deletions

View File

@@ -43,8 +43,10 @@ class RunBackupRecordsSnapshotTests(TestCase):
call_command("run_pobsync_backup", host.host, prefix=str(Path(tmp) / "home"), stdout=StringIO())
self.assertEqual(BackupRun.objects.count(), 1)
run = BackupRun.objects.get()
self.assertEqual(SnapshotRecord.objects.count(), 1)
record = SnapshotRecord.objects.get()
self.assertEqual(run.snapshot, record)
self.assertEqual(record.host, host)
self.assertEqual(record.kind, "scheduled")
self.assertEqual(record.status, "success")
@@ -74,6 +76,7 @@ class RunBackupRecordsSnapshotTests(TestCase):
run = BackupRun.objects.get()
self.assertEqual(run.status, BackupRun.Status.FAILED)
record = SnapshotRecord.objects.get()
self.assertEqual(run.snapshot, record)
self.assertEqual(record.kind, "incomplete")
self.assertEqual(record.status, "failed")
@@ -99,4 +102,5 @@ class RunBackupRecordsSnapshotTests(TestCase):
)
self.assertEqual(BackupRun.objects.count(), 1)
self.assertIsNone(BackupRun.objects.get().snapshot)
self.assertEqual(SnapshotRecord.objects.count(), 0)