fix: deduplicate sidecars/systemd, block system-critical stops, filter runtime paths
This commit is contained in:
@@ -137,55 +137,6 @@ def reset_state(mode=None):
|
||||
save_state(state)
|
||||
|
||||
|
||||
def mark_completed(step):
|
||||
state = load_state()
|
||||
if step not in state["completed_steps"]:
|
||||
state["completed_steps"].append(step)
|
||||
save_state(state)
|
||||
|
||||
|
||||
def is_completed(step):
|
||||
return step in load_state().get("completed_steps", [])
|
||||
|
||||
|
||||
def set_error(step, stdout, stderr, suggestion=""):
|
||||
state = load_state()
|
||||
state["paused"] = True
|
||||
state["last_error"] = {
|
||||
"step": step,
|
||||
"timestamp": datetime.now().isoformat(),
|
||||
"stdout": stdout,
|
||||
"stderr": stderr,
|
||||
"suggestion": suggestion,
|
||||
}
|
||||
save_state(state)
|
||||
|
||||
|
||||
def clear_error():
|
||||
state = load_state()
|
||||
state["paused"] = False
|
||||
state["last_error"] = None
|
||||
save_state(state)
|
||||
|
||||
|
||||
def reset_state(mode=None):
|
||||
"""Сбрасывает состояние для нового запуска (source, target или полностью)."""
|
||||
global _LAST_STATE
|
||||
# Загружаем текущее, чтобы не потерять пути к архивам если пользователь хочет
|
||||
# Но completed_steps и stage сбрасываем
|
||||
state = load_state()
|
||||
state["stage"] = "INIT"
|
||||
state["mode"] = mode
|
||||
state["completed_steps"] = []
|
||||
state["interrupted_at"] = None
|
||||
state["resumable_hint"] = None
|
||||
state["last_error"] = None
|
||||
state["paused"] = False
|
||||
state["updated_at"] = datetime.now().isoformat()
|
||||
_LAST_STATE = state
|
||||
save_state(state)
|
||||
|
||||
|
||||
def set_interrupted():
|
||||
"""Помечает, что скрипт был прерван (Ctrl+C, SIGTERM)."""
|
||||
state = load_state()
|
||||
|
||||
Reference in New Issue
Block a user