node-engine: the verbs seat-list and seat-list-again (the operator and the healers) and the state findings, with fixtures (ADR 0636 §1, §7; issue 1966)

This commit is contained in:
2026-11-05 14:34:07 +01:00
parent af804f5abf
commit f4a69e85f2
6 changed files with 629 additions and 1 deletions
+17
View File
@@ -0,0 +1,17 @@
[
{
"name": "the finding of a seat list unread, as the engine writes it",
"of": "state:findings/<key>",
"given": {
"v": 1,
"key": "machine.ace.seat-list-unread",
"kind": "seat-list-unread",
"subject": {"scope": "machine", "id": "ace", "machine": "ace"},
"severity": "warning",
"summary": "the seat list has not been read for five minutes",
"source": "node-engine.seat-list",
"observer": "mesh-host",
"at": "2026-11-05T14:00:00Z"
}
}
]
+45
View File
@@ -72,5 +72,50 @@
}
]
}
},
{
"name": "seat-list answers what the engine holds and what it waits for",
"of": "verb:seat-list.answer",
"given": {
"status": {
"heard": false,
"held": [
{
"seat": "node-engine",
"source": "bootstrap"
},
{
"seat": "node-files",
"source": "trunk",
"digest": "3f2a9c"
}
],
"waiting": [
"node-engine"
],
"last-error": "no answer"
},
"health": "the seat list is held from the bootstrap and nothing new is acted on"
}
},
{
"name": "seat-list-again answers the error when the read failed",
"of": "verb:seat-list-again.answer",
"given": {
"status": {
"heard": false,
"held": [
{
"seat": "node-engine",
"source": "bootstrap"
}
],
"waiting": [
"node-engine"
]
},
"health": "the seat list is held from the bootstrap",
"error": "seatlist: no answer"
}
}
]