Резервные копии: наблюдатель позднего выключения перепроверяет отмену после опроса машины и не запускает её, если «Выключить» нажали в этот момент

Этот коммит содержится в:
2026-09-26 09:34:57 +09:00
родитель 657d54fc75
Коммит 83300b6c5a
2 изменённых файлов: 20 добавлений и 0 удалений
+17
Просмотреть файл
@@ -643,3 +643,20 @@ def test_late_restart_watch_is_cancelled_by_user_action(fast_worker, monkeypatch
watchers[0].join(timeout=5)
assert not watchers[0].is_alive() and ["virsh", "start", "web01"] not in virsh.calls
assert "Наблюдение снято" in core.read_operation(operation["id"])["log_tail"]
def test_late_restart_rechecks_cancel_after_shutdown(fast_worker, monkeypatch):
virsh = FakeVirsh(running=True, shuts_down=False)
monkeypatch.setattr(core, "run_cmd", virsh)
monkeypatch.setattr(backups, "LATE_SHUTDOWN_WATCH", 5.0)
operation = core.new_operation("backup", "Резервная копия web01", vm_name="web01")
def shut_down_by_user(vm):
backups.cancel_late_restart(vm) # «Выключить» нажали, пока наблюдатель спрашивал состояние машины
return False
monkeypatch.setattr(core, "vm_is_running", shut_down_by_user)
backups.restart_after_late_shutdown(operation, "web01")
assert ["virsh", "start", "web01"] not in virsh.calls
assert "Наблюдение снято" in core.read_operation(operation["id"])["log_tail"]
assert "web01" not in backups.LATE_WATCHES