diff --git a/modules/mesh-config/README.md b/modules/mesh-config/README.md index 4435a66a7..b3ebf2b9a 100644 --- a/modules/mesh-config/README.md +++ b/modules/mesh-config/README.md @@ -67,7 +67,7 @@ them, newest first; with `proposal`, one read whole, with whether the router's a - The seat verb `renames` answers the open renames and the nodes holding each open (the checker asks it); the tools `config_renames` (all, with the closed windows), `config_rename_again` (move by hand after a refusal) and `config_rename_close` (drop a node by hand, a hand act). -- On the indexer's `manifest-accepted` it asks the indexer's `indexer_config_readers`; an indexer that does not serve +- On the seat mesh-catalog's `manifest-accepted` it asks the indexer's `indexer_config_readers`; an indexer that does not serve it answers "not known" and nothing retires. A value (or secret) nobody reads is **retiring** once no node runs a build that reads it: `retiring` is said and the operator is asked once; the value is removed only on the Approve (a secret through the seat mesh-vault's `retire`, with a hand act naming node, module, name and ask), `retired` diff --git a/modules/mesh-config/cmd/mesh-config/main.go b/modules/mesh-config/cmd/mesh-config/main.go index c519abbc5..16a839755 100644 --- a/modules/mesh-config/cmd/mesh-config/main.go +++ b/modules/mesh-config/cmd/mesh-config/main.go @@ -238,7 +238,7 @@ func hearing(c *Config) { // hearingDelivery takes the delivery parts' words that close a rename window or retire a value, each asked again until // the runtime takes the subscription: the status view's `delivered`, the node-engine seat's `manifest-reads-changed` -// (a returning node-engine; design 32) and the indexer's `manifest-accepted`. At its start it judges the windows once, +// (a returning node-engine; design 32) and the seat mesh-catalog's `manifest-accepted`. At its start it judges the windows once, // since an event said while this module was down is not said again. func hearingDelivery(c *Config) { <-stdio.Served() @@ -258,7 +258,7 @@ func hearingDelivery(c *Config) { } return c.Windows(b.Node) }}, - {"mesh-delivery-indexer.manifest-accepted", func(e stdio.Envelope) []string { + {"mesh-catalog.manifest-accepted", func(e stdio.Envelope) []string { var b struct { Module string `json:"module"` } diff --git a/modules/mesh-config/cmd/mesh-config/whole_integration_test.go b/modules/mesh-config/cmd/mesh-config/whole_integration_test.go index 65bc05851..9b29419bf 100644 --- a/modules/mesh-config/cmd/mesh-config/whole_integration_test.go +++ b/modules/mesh-config/cmd/mesh-config/whole_integration_test.go @@ -775,7 +775,7 @@ func TestConfigWholeRenamesAndRetiresAgainstTheBus(t *testing.T) { p2.mu.Lock() p2.readers = []ReaderRow{{Module: "radio", Key: "band", Kind: KindValue, Readers: []string{}}} p2.mu.Unlock() - p2.event("mesh-delivery-indexer.manifest-accepted", map[string]any{"module": "radio"}) + p2.event("mesh-catalog.manifest-accepted", map[string]any{"module": "radio"}) eventually(t, "the retirement waits on g14", func() bool { raw, ok := p2.get(RetiringState, "radio.band") return ok && strings.Contains(string(raw), RetireDraining) diff --git a/modules/mesh-config/module.json b/modules/mesh-config/module.json index 117fa37eb..71f027224 100644 --- a/modules/mesh-config/module.json +++ b/modules/mesh-config/module.json @@ -24,7 +24,7 @@ "gitea.forge.pull-request.closed", "mesh-delivery-view.delivered", "node-engine.manifest-reads-changed", - "mesh-delivery-indexer.manifest-accepted", + "mesh-catalog.manifest-accepted", "mesh-delivery-indexer.views.modules", "mesh-delivery-indexer.views.manifests", "mesh-delivery-indexer.views.predefined", diff --git a/modules/nats/cmd/nats-tools/keep.go b/modules/nats/cmd/nats-tools/keep.go index a499a25be..09d7bd408 100644 --- a/modules/nats/cmd/nats-tools/keep.go +++ b/modules/nats/cmd/nats-tools/keep.go @@ -52,8 +52,8 @@ func AcceptedOf(body []byte) (keeper.Accepted, error) { return keeper.Accepted{Module: a.Module, Digest: a.Digest, Revision: a.Revision, BusState: a.BusState}, nil } -// AcceptedSubject is the indexer's manifest-accepted on the shared events stream. -var AcceptedSubject = "mesh.mod." + keeper.FirstViewOwner + ".event." + delivery.ManifestAcceptedEvent +// AcceptedSubject is the seat mesh-catalog's manifest-accepted on the shared events stream. +var AcceptedSubject = "mesh.seat.mesh-catalog.event." + delivery.ManifestAcceptedEvent // The router's records of asks, read under this module's own name (ADR 0259 §3), as the mail sender reads them. const asksBucket = "messenger_asks" diff --git a/modules/nats/cmd/nats-tools/manifest_test.go b/modules/nats/cmd/nats-tools/manifest_test.go index 84c98aa99..2f63445ca 100644 --- a/modules/nats/cmd/nats-tools/manifest_test.go +++ b/modules/nats/cmd/nats-tools/manifest_test.go @@ -184,8 +184,11 @@ func TestTheBussManifestMountsItsProgramsIntoTheUpstreamImage(t *testing.T) { if len(nm.Claims) != 1 || nm.Claims[0].Name != "mesh-broker" || !slices.Equal(nm.Claims[0].Serves, ReadingVerbs) { t.Errorf("claims are %+v: mesh-broker, serving its reading verbs %v alone", nm.Claims, ReadingVerbs) } - if !slices.Equal(nm.Consumes, []string{"mesh-delivery-indexer.manifest-accepted"}) { - t.Errorf("consumes %v: the indexer's manifest-accepted alone (ADR 0595 §4)", nm.Consumes) + if !slices.Equal(nm.Consumes, []string{"mesh-catalog.manifest-accepted"}) { + t.Errorf("consumes %v: the seat mesh-catalog's manifest-accepted alone (ADR 0595 §4)", nm.Consumes) + } + if AcceptedSubject != "mesh.seat.mesh-catalog.event.manifest-accepted" { + t.Errorf("the keeper's durable consumer filters on %s, not on the seat mesh-catalog's event", AcceptedSubject) } for _, want := range []string{"mesh-delivery-indexer.indexer_bus_state", "seat:mesh-hand-acts.hand-act"} { if !slices.Contains(nm.Invokes, want) { diff --git a/modules/nats/module.json b/modules/nats/module.json index a066dcda9..c207dc885 100644 --- a/modules/nats/module.json +++ b/modules/nats/module.json @@ -57,7 +57,7 @@ "mesh-delivery-indexer.indexer_bus_state" ], "consumes": [ - "mesh-delivery-indexer.manifest-accepted" + "mesh-catalog.manifest-accepted" ], "uses": [ "operator-channel"