Make proxmox_storage a global setting instead of a per-job snapshot
Backup jobs stored their own proxmox_storage column, copied from settings at creation time and never resynced. process_backup preferred that frozen job value, so changing Settings > Proxmox storage had no effect on existing jobs. Drop the per-job column and always use the current global setting when starting a backup. Also copies AGENTS.md to CLAUDE.md.
This commit is contained in:
@@ -245,7 +245,7 @@ async def process_backup(backup_id: str) -> None:
|
||||
commands.start_proxmox_backup,
|
||||
node=backup["node"],
|
||||
vmid=int(backup["guest_vmid"]),
|
||||
storage=(job or {}).get("proxmox_storage") or settings["proxmox_storage"],
|
||||
storage=settings["proxmox_storage"],
|
||||
mode=(job or {}).get("backup_mode") or settings["default_backup_mode"],
|
||||
compression=(job or {}).get("compression") or settings["default_compression"],
|
||||
)
|
||||
|
||||
+3
-5
@@ -51,10 +51,10 @@ def create_job(payload: dict) -> dict:
|
||||
"""
|
||||
INSERT INTO backup_jobs(
|
||||
guest_vmid, guest_name, guest_type, node, enabled, cron_schedule,
|
||||
proxmox_storage, backup_mode, compression, retention_type, retention_value,
|
||||
backup_mode, compression, retention_type, retention_value,
|
||||
next_run_at, created_at, updated_at
|
||||
)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
||||
""",
|
||||
(
|
||||
payload["guest_vmid"],
|
||||
@@ -63,7 +63,6 @@ def create_job(payload: dict) -> dict:
|
||||
payload["node"],
|
||||
int(payload.get("enabled", True)),
|
||||
payload["cron_schedule"],
|
||||
payload["proxmox_storage"],
|
||||
payload["backup_mode"],
|
||||
payload["compression"],
|
||||
payload["retention_type"],
|
||||
@@ -88,7 +87,7 @@ def update_job(job_id: int, payload: dict) -> dict:
|
||||
"""
|
||||
UPDATE backup_jobs SET
|
||||
guest_vmid = ?, guest_name = ?, guest_type = ?, node = ?, enabled = ?,
|
||||
cron_schedule = ?, proxmox_storage = ?, backup_mode = ?, compression = ?,
|
||||
cron_schedule = ?, backup_mode = ?, compression = ?,
|
||||
retention_type = ?, retention_value = ?, next_run_at = ?, updated_at = ?
|
||||
WHERE id = ?
|
||||
""",
|
||||
@@ -99,7 +98,6 @@ def update_job(job_id: int, payload: dict) -> dict:
|
||||
merged["node"],
|
||||
int(merged["enabled"]),
|
||||
merged["cron_schedule"],
|
||||
merged["proxmox_storage"],
|
||||
merged["backup_mode"],
|
||||
merged["compression"],
|
||||
merged["retention_type"],
|
||||
|
||||
@@ -50,7 +50,6 @@ class JobPayload(BaseModel):
|
||||
node: str
|
||||
enabled: bool = True
|
||||
cron_schedule: str
|
||||
proxmox_storage: str
|
||||
backup_mode: str
|
||||
compression: str
|
||||
retention_type: str
|
||||
@@ -64,7 +63,6 @@ class PartialJobPayload(BaseModel):
|
||||
node: str | None = None
|
||||
enabled: bool | None = None
|
||||
cron_schedule: str | None = None
|
||||
proxmox_storage: str | None = None
|
||||
backup_mode: str | None = None
|
||||
compression: str | None = None
|
||||
retention_type: str | None = None
|
||||
|
||||
@@ -179,3 +179,10 @@ def run_migrations() -> None:
|
||||
"INSERT INTO schema_migrations(version, applied_at) VALUES (?, ?)",
|
||||
(4, now),
|
||||
)
|
||||
if 5 not in applied:
|
||||
now = utc_now()
|
||||
conn.execute("ALTER TABLE backup_jobs DROP COLUMN proxmox_storage")
|
||||
conn.execute(
|
||||
"INSERT INTO schema_migrations(version, applied_at) VALUES (?, ?)",
|
||||
(5, now),
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user