diff --git a/modules/zfs/cmd/zfs-tools/manifest_test.go b/modules/zfs/cmd/zfs-tools/manifest_test.go index cac180233..9572dd4db 100644 --- a/modules/zfs/cmd/zfs-tools/manifest_test.go +++ b/modules/zfs/cmd/zfs-tools/manifest_test.go @@ -480,13 +480,15 @@ func TestTheManifestsBusStateKeeperAndTools(t *testing.T) { if ev["storage"] != "stream" || ev["template"] != "events" || opts["max-age-days"] != float64(30) || strings.Join(kinds, ",") != strings.Join(EventKinds, ",") { t.Errorf("the events stream: %v", ev) } - for _, n := range []string{"applied", "schedule", "findings"} { + for _, n := range []string{"applied", "schedule"} { if e := reqs[n]; e == nil || e["storage"] != "key-value" || e["template"] != "state" { t.Errorf("the state %s: %v", n, e) } } - if reqs["findings"]["options"] != nil { - t.Errorf("findings declares no stream of its own (A-32): %v", reqs["findings"]) + // A-46: findings is a state of the module's `state` list, as every observer's, and not asked for in requires, where the + // conditions keeper would not read it. + if reqs["findings"] != nil || fmt.Sprint(tree["state"]) != "[findings]" { + t.Errorf("findings is a state of the state list, not of requires (A-46): %v, %v", tree["state"], reqs["findings"]) } l := reqs[LedgerName] lo, _ := l["options"].(map[string]any) diff --git a/modules/zfs/module.json b/modules/zfs/module.json index ef2fb0e1a..ef1a00543 100644 --- a/modules/zfs/module.json +++ b/modules/zfs/module.json @@ -17,6 +17,9 @@ "owner": "zfs-keeper" } }, + "state": [ + "findings" + ], "requires": [ { "name": "events", @@ -49,11 +52,6 @@ "storage": "key-value", "template": "state" }, - { - "name": "findings", - "storage": "key-value", - "template": "state" - }, { "name": "snapshots", "storage": "ledger",