wip(#3001): convert tests off the container id; drop Source + insert_group
The last of the DAG-container removal. `tests.rs` navigated by the id `submit` returned, so removing the container removed the tests' way of finding what they inserted; they name the roots they assert on now, which is the same handle production uses. Three findings the port surfaced, each a behaviour change rather than a test fix: - Cancelling a rebuild's head no longer drops the job. `Reconcile`'s edge accepts a skipped brace, and a cancel-cascade skips rather than cancels, so the tail stays claimable. Dropping a job means cancelling every id the insert returned. - A directly-cancelled group root reads terminal while a spared tail still runs; the cancel used to land on a node above it, which rolled up Finishing instead. - "One DAG per hive-wide op" is not expressible without a container. The three tests asserting it now assert that every named root is top-level, which is what makes the per-agent subgraphs concurrent. Deletes two tests: one asserted only that two containers get distinct ids, the other re-ran an existing case under a second name. `Source`, `insert_group` and the stop path's `reason` string went dead with the container and are removed with it.
This commit is contained in:
parent
aef7ead0bc
commit
ddc017f01b
6 changed files with 273 additions and 275 deletions
|
|
@ -1,18 +1,18 @@
|
|||
//! Data model for the generic job-DAG queue: node kinds (the primitive
|
||||
//! operations), dependency edges, and the runtime `Dag` / `Node` store.
|
||||
//! The `Source` / `State` / `PermPayload` wire enums live in
|
||||
//! `hive_host_sock::jobs` (they travel on the host admin socket) and are
|
||||
//! re-exported here for the queue's internal use. The graph itself is
|
||||
//! served through `hive_jobq_wire`'s generic projection — there is no
|
||||
//! second, typed view of it any more.
|
||||
//! Data model for the generic job-DAG queue: the node kinds — the primitive
|
||||
//! operations — and what each one carries. The `State` / `PermPayload` wire
|
||||
//! enums live in `hive_host_sock::jobs` (they travel on the host admin
|
||||
//! socket) and are re-exported here for the queue's internal use. The graph
|
||||
//! itself is served through `hive_jobq_wire`'s generic projection — there is
|
||||
//! no second, typed view of it any more.
|
||||
//!
|
||||
//! Two levels: the **DAG** is the unit of cancel / approval-resolution
|
||||
//! and the dashboard group; the **node** is the unit of scheduling /
|
||||
//! execution / build-log, and carries its own `agent` (a
|
||||
//! DAG can span agents). See `docs/coordinator.md::Job queue` for the
|
||||
//! full design.
|
||||
//! **One level, not two.** The node is the unit of everything: scheduling,
|
||||
//! execution, build-log, cancel, and the dashboard group (a group root's
|
||||
//! subtree *is* the group). A DAG used to be a second level above it, with
|
||||
//! its own store and its own id; there is no container node any more, so a
|
||||
//! job is exactly the nodes it declared. See `docs/coordinator.md::Job queue`
|
||||
//! for the full design.
|
||||
|
||||
pub use hive_host_sock::jobs::{PermPayload, Source, State};
|
||||
pub use hive_host_sock::jobs::{PermPayload, State};
|
||||
use serde::Serialize;
|
||||
|
||||
use hive_jobq::TerminalState;
|
||||
|
|
|
|||
Loading…
Reference in a new issue