Резервные копии: копию нельзя удалить, пока из неё идёт любое восстановление; наблюдатель позднего выключения отменяется

- защита от удаления проверяет все незавершённые восстановления этой копии (под любым именем машины)
- наблюдатель, который запускает машину после позднего выключения, снимается при «Выключить»/«Удалить»
  в панели и при новой копии, и не мешает другим задачам с этой машиной

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019LEUXMcdZo7b87mjkUsPgg
Этот коммит содержится в:
Claude
2026-09-25 18:07:20 +00:00
родитель 3ad50faa46
Коммит 03ca04073f
3 изменённых файлов: 71 добавлений и 25 удалений
+2
Просмотреть файл
@@ -2027,6 +2027,8 @@ def vm_action(request: Request, name: str, action: str):
if not valid_vm_name(name):
return JSONResponse({"ok": False, "error": "Invalid VM name"}, status_code=400)
allowed = {"start": ["virsh", "start", name], "shutdown": ["virsh", "shutdown", name], "reboot": ["virsh", "reboot", name], "destroy": ["virsh", "destroy", name], "autostart": ["virsh", "autostart", name], "autostart-disable": ["virsh", "autostart", "--disable", name]}
if action in ("shutdown", "destroy", "delete"):
backups.cancel_late_restart(name)
if action == "delete":
if vm_state(name) == "running":
run_cmd(["virsh", "destroy", name], timeout=20)