upgrade script

This commit is contained in:
Iñigo Etxaniz
2026-11-07 08:30:59 +00:00
parent 5220bd54c5
commit 4de1d3e008
2 changed files with 34 additions and 13 deletions
+30 -9
View File
@@ -60,9 +60,19 @@ def db_call(method, path, payload):
return body.get("data")
def already_stored(start_ms):
rows = db_call("POST", f"/api/db-query/{TABLE}/", {"filters": [], "orderBy": ["start_time"], "limit": 1000}) or []
return any(abs(row["start_time"] - start_ms) < MATCH_MS for row in rows)
def stored_rows():
return db_call("POST", f"/api/db-query/{TABLE}/", {"filters": [], "orderBy": ["start_time"], "limit": 1000}) or []
def find_row(rows, start_ms):
return next((row for row in rows if abs(row["start_time"] - start_ms) < MATCH_MS), None)
def open_row(start_ms):
row = {"start_time": start_ms, "end_time": None, "duration_s": 0, "coverage": 0}
for prefix in ("cpu", "ram", "disk"):
row[f"{prefix}_mean"], row[f"{prefix}_max"] = 0, 0
return row
def mean_max(series, start_ms, end_ms):
@@ -87,16 +97,27 @@ def build_row(start_ms, end_ms):
return row
def main():
session = previous_session(current_boot_ms())
def close_previous(rows, boot_ms):
session = previous_session(boot_ms)
if session is None:
print("no previous session in the uptime history", flush=True)
return
if already_stored(session[0]):
print("previous session already stored", session[0], flush=True)
return
row = build_row(*session)
print("stored", db_call("POST", f"/api/db/{TABLE}/", row), row, flush=True)
stored = find_row(rows, session[0])
if stored is None:
print("previous session stored", db_call("POST", f"/api/db/{TABLE}/", row), row, flush=True)
elif stored.get("end_time") is None:
db_call("PUT", f"/api/db/{TABLE}/{stored['id']}/", row)
print("previous session closed", stored["id"], row, flush=True)
def main():
boot_ms = current_boot_ms()
rows = stored_rows()
if find_row(rows, boot_ms) is not None:
return
close_previous(rows, boot_ms)
print("current session opened", db_call("POST", f"/api/db/{TABLE}/", open_row(boot_ms)), flush=True)
if __name__ == "__main__":