(bugfix) preserve saved global backup root in Django setup form
Fix the global config edit view so default initial values are only used when creating a new config, preventing saved backup_root values from being hidden by form defaults. Keep pobsync_home as an internal runtime setting instead of exposing it in the normal Django setup form. Mount a host backup directory into Docker at /backups and document POBSYNC_BACKUP_ROOT so backup_root behaves predictably in containers.
This commit is contained in:
@@ -76,7 +76,6 @@ class ViewTests(TestCase):
|
||||
{
|
||||
"name": "default",
|
||||
"backup_root": "/backups",
|
||||
"pobsync_home": "/opt/pobsync",
|
||||
"ssh_user": "backup",
|
||||
"ssh_port": "2222",
|
||||
"ssh_options": "StrictHostKeyChecking=no\nBatchMode=yes",
|
||||
@@ -100,6 +99,7 @@ class ViewTests(TestCase):
|
||||
self.assertContains(response, "Global config saved for default.")
|
||||
config = GlobalConfig.objects.get(name="default")
|
||||
self.assertEqual(config.backup_root, "/backups")
|
||||
self.assertEqual(config.pobsync_home, "/opt/pobsync")
|
||||
self.assertEqual(config.ssh_user, "backup")
|
||||
self.assertEqual(config.ssh_port, 2222)
|
||||
self.assertEqual(config.ssh_options, ["StrictHostKeyChecking=no", "BatchMode=yes"])
|
||||
@@ -109,6 +109,21 @@ class ViewTests(TestCase):
|
||||
self.assertEqual(config.retention_daily, 7)
|
||||
self.assertEqual(config.retention_yearly, 1)
|
||||
|
||||
def test_global_config_form_renders_saved_backup_root_on_edit(self) -> None:
|
||||
self.client.force_login(self.staff_user)
|
||||
GlobalConfig.objects.create(
|
||||
name="default",
|
||||
backup_root="/mnt/pobsync/backups",
|
||||
pobsync_home="/custom/legacy/home",
|
||||
)
|
||||
|
||||
response = self.client.get(reverse("edit_global_config"))
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertContains(response, "/mnt/pobsync/backups")
|
||||
self.assertNotContains(response, "/opt/pobsync/backups")
|
||||
self.assertNotContains(response, "Pobsync home")
|
||||
|
||||
def test_create_host_config_form_creates_host(self) -> None:
|
||||
self.client.force_login(self.staff_user)
|
||||
|
||||
@@ -196,7 +211,7 @@ class ViewTests(TestCase):
|
||||
self.assertContains(response, "web-01")
|
||||
self.assertContains(response, "success")
|
||||
self.assertContains(response, "ABCDEFGH")
|
||||
self.assertContains(response, '"ok": true')
|
||||
self.assertContains(response, ""ok": true")
|
||||
self.assertContains(response, reverse("snapshot_detail", args=[snapshot.id]))
|
||||
|
||||
def test_snapshot_detail_renders_metadata_runs_and_children(self) -> None:
|
||||
|
||||
Reference in New Issue
Block a user