36 lines
926 B
Python
36 lines
926 B
Python
|
|
import json
|
||
|
|
import time
|
||
|
|
|
||
|
|
EVENT_LOG = "/tmp/agent-events.log"
|
||
|
|
|
||
|
|
|
||
|
|
def emit_event(event):
|
||
|
|
event.setdefault("run_id", None)
|
||
|
|
event.setdefault("node", None)
|
||
|
|
event.setdefault("timestamp", time.time())
|
||
|
|
line = json.dumps(event)
|
||
|
|
print(line)
|
||
|
|
print("EVENT WRITTEN")
|
||
|
|
try:
|
||
|
|
with open(EVENT_LOG, "a", encoding="utf-8") as event_log:
|
||
|
|
event_log.write(line + "\n")
|
||
|
|
event_log.flush()
|
||
|
|
except OSError as exc:
|
||
|
|
print(f"[event:error] failed to write event log: {exc}")
|
||
|
|
|
||
|
|
|
||
|
|
def emit_run_progress(run_id, run):
|
||
|
|
emit_event(
|
||
|
|
{
|
||
|
|
"type": "run_progress",
|
||
|
|
"run_id": run_id,
|
||
|
|
"node": None,
|
||
|
|
"received": run.get("received", 0),
|
||
|
|
"expected": run.get("expected", 0),
|
||
|
|
"message": (
|
||
|
|
f"run progress: {run.get('received', 0)}/"
|
||
|
|
f"{run.get('expected', 0)}"
|
||
|
|
),
|
||
|
|
}
|
||
|
|
)
|