pacman reads the node-engine's packages as mesh-host.packages, the bucket each engine writes (ADR 0565 clause 6, issue 1953)
The read node-engine.packages named a bucket node-engine_packages that nothing writes: the engine's manifest is mesh-host's, so its state is mesh-host_packages, read as disk-load reads mesh-host.data. The view still names which source answered, the engine's key or the controller's mirror. Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
This commit is contained in:
@@ -30,7 +30,7 @@ that seat (ADR 0207).
|
|||||||
`package.changed`. A list over the bus's cap on a value is not written: the key keeps its last value and
|
`package.changed`. A list over the bus's cap on a value is not written: the key keeps its last value and
|
||||||
`<node>.not-current` says the size and since when, which the health says too. `pacman_packages`,
|
`<node>.not-current` says the size and since when, which the health says too. `pacman_packages`,
|
||||||
`pacman_updates`, `pacman_installed` and `pacman_foreign` answer every node from these states, and what no
|
`pacman_updates`, `pacman_installed` and `pacman_foreign` answer every node from these states, and what no
|
||||||
module declares from the node-engine's `packages`, else the controller's `declared-packages` until its lease is written, without asking a machine.
|
module declares from the node-engine's `packages` (read as `mesh-host.packages`, the engine's manifest's name), else the controller's `declared-packages` until its lease is written, without asking a machine.
|
||||||
- **Upgrades as runs, one node at a time (ADR 0508).** Every full upgrade and every rollback is a run in the
|
- **Upgrades as runs, one node at a time (ADR 0508).** Every full upgrade and every rollback is a run in the
|
||||||
state `runs` at `<node>.<run>`, written at each step and emitted as it: the package record taken and read back
|
state `runs` at `<node>.<run>`, written at each step and emitted as it: the package record taken and read back
|
||||||
(`records`, kept `record-days`), the DKMS gate before the transaction (a kernel an installed DKMS module's own
|
(`records`, kept `record-days`), the DKMS gate before the transaction (a kernel an installed DKMS module's own
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ func TestTheKeeperPutsTheNodesPackagesOnARealBusAndAnotherInstanceReadsThem(t *t
|
|||||||
}
|
}
|
||||||
buckets[name] = kv
|
buckets[name] = kv
|
||||||
}
|
}
|
||||||
declared, err := js.CreateKeyValue(ctx, jetstream.KeyValueConfig{Bucket: "node-engine_packages"})
|
declared, err := js.CreateKeyValue(ctx, jetstream.KeyValueConfig{Bucket: "mesh-host_packages"})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,6 +14,8 @@ import (
|
|||||||
"reflect"
|
"reflect"
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"git.novox.be/novox/mesh-sdk/go/delivery"
|
||||||
)
|
)
|
||||||
|
|
||||||
// rawManifest is the manifest as written, every field kept.
|
// rawManifest is the manifest as written, every field kept.
|
||||||
@@ -133,7 +135,7 @@ func TestTheKeeperDeclaresTheModulesStatesAndEvents(t *testing.T) {
|
|||||||
}
|
}
|
||||||
// The verbs read which packages each node's modules declare; the process reads no other module's state
|
// The verbs read which packages each node's modules declare; the process reads no other module's state
|
||||||
// (ADR 0507 §5, ADR 0436 §1).
|
// (ADR 0507 §5, ADR 0436 §1).
|
||||||
if got := strs(raw["reads"]); !reflect.DeepEqual(got, []string{"node-engine.packages", "mesh-controller.declared-packages"}) {
|
if got := strs(raw["reads"]); !reflect.DeepEqual(got, []string{delivery.EnginePackagesRead, "mesh-controller.declared-packages"}) {
|
||||||
t.Errorf("reads: %v", got)
|
t.Errorf("reads: %v", got)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,9 +24,10 @@ const DeclaredPackagesState = SourceEngine
|
|||||||
// whose engine has written no key yet, until the controller's lease is written away (ADR 0565 clause 6).
|
// whose engine has written no key yet, until the controller's lease is written away (ADR 0565 clause 6).
|
||||||
const ControllerDeclaredState = "mesh-controller.declared-packages"
|
const ControllerDeclaredState = "mesh-controller.declared-packages"
|
||||||
|
|
||||||
// The sources a node's declaration is read from, said in the answer.
|
// The sources a node's declaration is read from, said in the answer: the node-engine's state, read by its manifest's
|
||||||
|
// name (mesh-host.packages, its bucket mesh-host_packages; mesh-sdk delivery.EnginePackagesRead), and the mirror.
|
||||||
const (
|
const (
|
||||||
SourceEngine = "node-engine.packages"
|
SourceEngine = delivery.EnginePackagesRead
|
||||||
SourceController = "mesh-controller.declared-packages"
|
SourceController = "mesh-controller.declared-packages"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"reads": [
|
"reads": [
|
||||||
"node-engine.packages",
|
"mesh-host.packages",
|
||||||
"mesh-controller.declared-packages"
|
"mesh-controller.declared-packages"
|
||||||
],
|
],
|
||||||
"uses": [
|
"uses": [
|
||||||
|
|||||||
Reference in New Issue
Block a user