mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-31 19:16:29 +00:00
fix(monitoring): normalize cron delivery outcomes
This commit is contained in:
parent
2a46acc9be
commit
2e2c77c30f
2 changed files with 34 additions and 1 deletions
|
|
@ -3982,11 +3982,12 @@ def run_one_job(job: dict, *, adapters=None, loop=None, verbose: bool = False) -
|
|||
|
||||
if not _consume_interrupted_flag(job["id"]):
|
||||
mark_job_run(job["id"], success, error, delivery_error=delivery_error)
|
||||
normalized_deliver = _normalize_deliver_value(job.get("deliver", "local"))
|
||||
if delivery_error:
|
||||
delivery_outcome = "failed"
|
||||
elif should_deliver and unresolved_origin:
|
||||
delivery_outcome = "not_configured"
|
||||
elif should_deliver and job.get("deliver", "local") != "local":
|
||||
elif should_deliver and normalized_deliver != "local":
|
||||
delivery_outcome = "delivered"
|
||||
else:
|
||||
delivery_outcome = "suppressed"
|
||||
|
|
|
|||
|
|
@ -300,6 +300,38 @@ def test_run_one_job_records_unresolved_origin_as_not_configured(monkeypatch):
|
|||
assert finished[-1][1]["delivery_outcome"] == "not_configured"
|
||||
|
||||
|
||||
def test_run_one_job_normalizes_legacy_local_delivery_as_suppressed(monkeypatch):
|
||||
import cron.scheduler as scheduler
|
||||
|
||||
finished = []
|
||||
monkeypatch.setattr(
|
||||
scheduler,
|
||||
"run_job",
|
||||
lambda job, *, defer_agent_teardown=None: (True, "output", "response", None),
|
||||
)
|
||||
monkeypatch.setattr(scheduler, "save_job_output", lambda *_args: None)
|
||||
monkeypatch.setattr(scheduler, "mark_job_run", lambda *_args, **_kwargs: None)
|
||||
monkeypatch.setattr(
|
||||
scheduler,
|
||||
"finish_execution",
|
||||
lambda execution_id, **kwargs: finished.append((execution_id, kwargs)),
|
||||
)
|
||||
monkeypatch.setattr(scheduler, "mark_execution_running", lambda *_args: None)
|
||||
monkeypatch.setattr(scheduler, "claim_dispatch", lambda *_args, **_kwargs: True)
|
||||
monkeypatch.setattr(scheduler, "_consume_interrupted_flag", lambda *_args: False)
|
||||
|
||||
job = {
|
||||
"id": "legacy-local",
|
||||
"name": "Legacy local",
|
||||
"schedule": {"kind": "interval", "minutes": 10},
|
||||
"deliver": ["local"],
|
||||
"execution_id": "exec-legacy-local",
|
||||
}
|
||||
|
||||
assert scheduler.run_one_job(job) is True
|
||||
assert finished[-1][1]["delivery_outcome"] == "suppressed"
|
||||
|
||||
|
||||
def test_provider_start_recovers_interrupted_records_before_tick(monkeypatch):
|
||||
import cron.scheduler_provider as provider
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue