Replace rollback with manual version selection and simplify updater
This commit is contained in:
@@ -14,6 +14,8 @@ from .releases import (
|
||||
read_current_version,
|
||||
save_update_state,
|
||||
start_background_task,
|
||||
list_available_releases,
|
||||
apply_update_version,
|
||||
)
|
||||
from .services import (
|
||||
FirewallToolMissing,
|
||||
@@ -82,6 +84,11 @@ class Handler(BaseHTTPRequestHandler):
|
||||
state = _load_diag_state()
|
||||
return self._send(200, {"entries": entries, "state": state})
|
||||
|
||||
if self.path.startswith("/api/update/releases"):
|
||||
state = load_update_state()
|
||||
channel = state.get("channel") or "stable"
|
||||
return self._send(200, {"releases": list_available_releases(channel)})
|
||||
|
||||
return self._send(404, {"error": "not found"})
|
||||
|
||||
# POST endpoints
|
||||
@@ -122,6 +129,15 @@ class Handler(BaseHTTPRequestHandler):
|
||||
state = check_for_update()
|
||||
return self._send(200, state)
|
||||
|
||||
if self.path.startswith("/api/update/apply_version"):
|
||||
version = payload.get("version")
|
||||
if not version:
|
||||
return self._send(400, {"error": "version required"})
|
||||
state = load_update_state()
|
||||
chan = payload.get("channel") or state.get("channel") or "stable"
|
||||
result = apply_update_version(version, chan)
|
||||
return self._send(200, result)
|
||||
|
||||
if self.path.startswith("/api/update/apply"):
|
||||
start_background_task("apply")
|
||||
state = load_update_state()
|
||||
@@ -130,14 +146,6 @@ class Handler(BaseHTTPRequestHandler):
|
||||
save_update_state(state)
|
||||
return self._send(202, state)
|
||||
|
||||
if self.path.startswith("/api/update/rollback"):
|
||||
start_background_task("rollback")
|
||||
state = load_update_state()
|
||||
state["status"] = "in_progress"
|
||||
state["message"] = "Starting rollback"
|
||||
save_update_state(state)
|
||||
return self._send(202, state)
|
||||
|
||||
if self.path.startswith("/api/update/auto"):
|
||||
state = load_update_state()
|
||||
state["auto_check"] = bool(payload.get("enable"))
|
||||
|
||||
Reference in New Issue
Block a user