Incident model follow-ups: per-node retry policy and resume form (#3604207)
Follow-ups to the incident model (#3604207), continuing on the same issue fork.
Per-node retry policy
The dead-letter cutoff is no longer a fixed 3:
- a
max_advance_attemptssetting (default 3) sets the site-wide default; - a node's
retry.max_attemptsoverrides it, andretry.backoffdelays retries (viaDelayedRequeueException, honored by cron's queue runner); - a Retry policy NodeFeature edits both in the modeler (applies to any task node; gateways excluded);
- the engine resolves node -> setting -> constant.
EngineDeadLetterTestcovers the per-node and global cutoffs.
Resume with variables
- a Resume action on each incident opens a form listing the instance's
variables (JSON-encoded, so structured values can be corrected); submitting
writes the edits and retries the branch, resolved as
resumed; resumeIncident()now sets its own resolution rather than delegating to retry, so retry and resume read distinctly in the trail;- covered by a kernel test (variable write + completion) and a functional test (the form resolves the incident over HTTP).
Tests
Core kernel suite green (80); orchestra_cm kernel green (13, the feature-list test now expects the retry feature); incident UI functional tests pass in the container.
Migration (pre-1.0)
No update hook; the new config key is picked up on fresh installs and is read with a safe default when absent, so existing sites need only a cache rebuild.