From e52d9d779110548092f67d8fbf3184f456be07ac Mon Sep 17 00:00:00 2001 From: jochen Date: Thu, 5 Nov 2026 16:36:50 +0100 Subject: [PATCH] =?UTF-8?q?Assigner:=20the=20node's=20presence=20is=20read?= =?UTF-8?q?=20through=20the=20watchdogs=20client's=20key=20and=20codec,=20?= =?UTF-8?q?no=20seat=20codec=20of=20its=20own=20(ADR=200634=20=C2=A74;=20i?= =?UTF-8?q?ssue=201966)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cmd/mesh-delivery-assigner/pass_test.go | 4 ++-- .../cmd/mesh-delivery-assigner/world.go | 12 ++++-------- modules/mesh-delivery-assigner/go.mod | 1 + 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/pass_test.go b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/pass_test.go index 5664b66b..81e1bccb 100644 --- a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/pass_test.go +++ b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/pass_test.go @@ -7,7 +7,7 @@ import ( "errors" "fmt" "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" - watchdogs "git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshwatchdogs" + wdc "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshwatchdogsclient" mwc "git.novox.be/novox/mesh-contracts/placement/go/clients/meshwantsclient" "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" mdc "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" @@ -1189,5 +1189,5 @@ func mustAskID(a asks.Ask) string { // presenceValue is a node's presence as the watchman writes it. func presenceValue(online bool) ([]byte, error) { - return json.Marshal(watchdogs.PresenceByNodeValue{V: 1, Online: online}) + return json.Marshal(wdc.NodePresence{V: 1, Online: online}) } diff --git a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/world.go b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/world.go index 4e225851..4d0f1ca1 100644 --- a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/world.go +++ b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/world.go @@ -5,7 +5,7 @@ import ( "errors" "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" - watchdogs "git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshwatchdogs" + wdc "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshwatchdogsclient" mwc "git.novox.be/novox/mesh-contracts/placement/go/clients/meshwantsclient" "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" mdc "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" @@ -17,7 +17,6 @@ import ( "mesh-delivery-assigner/internal/buckets" "slices" "sort" - "strings" "sync" "time" @@ -328,14 +327,11 @@ func (w *world) records() map[string]nodeengine.NodeRecord { // presenceOf reads one key of the watchman's presence: a node's key (``) with the node's online or not; the keys of // the parts (`part..`) are not a node's and are none here. func presenceOf(key string, value []byte) (node string, online, ok bool) { - if strings.Contains(key, ".") { + node, part, _, err := wdc.ParsePresenceKey(key) + if err != nil || node == "" || part != "" { return "", false, false } - node, ok = watchdogs.ParsePresenceByNodeKey(key) - if !ok { - return "", false, false - } - p, err := watchdogs.DecodePresenceByNodeValue(value) + p, err := wdc.DecodeNodePresence(value) if err != nil { return "", false, false } diff --git a/modules/mesh-delivery-assigner/go.mod b/modules/mesh-delivery-assigner/go.mod index 4b0ad299..15478b61 100644 --- a/modules/mesh-delivery-assigner/go.mod +++ b/modules/mesh-delivery-assigner/go.mod @@ -44,6 +44,7 @@ replace git.novox.be/novox/mesh-delivery/modules/mesh-grants/grantsstate => ../m require git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshconditionsclient v0.0.0-00010101000000-000000000000 require git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshwatchdogs v0.0.0-00010101000000-000000000000 +require git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshwatchdogsclient v0.0.0-00010101000000-000000000000 require git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient v0.0.0-00010101000000-000000000000 replace git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient => ../../contracts/go/clients/meshcatalogclient require git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient v0.0.0-00010101000000-000000000000