diff --git a/contracts/go/clients/meshcatalogclient/fingerprint.go b/contracts/go/clients/meshcatalogclient/fingerprint.go index 6ed3c43a..3bf2a7b9 100644 --- a/contracts/go/clients/meshcatalogclient/fingerprint.go +++ b/contracts/go/clients/meshcatalogclient/fingerprint.go @@ -18,9 +18,3 @@ type Toolchain2 struct { Version string Recipe string } - -// KeyPart is meshcatalogkey.KeyPart, the codec of a catalog key's parts (design 47 G §670). -func KeyPart(fp string) (string, error) { return meshcatalogkey.KeyPart(fp) } - -// ParseKeyPart is meshcatalogkey.ParseKeyPart. -func ParseKeyPart(part string) (string, error) { return meshcatalogkey.ParseKeyPart(part) } diff --git a/contracts/go/clients/meshcatalogclient/fingerprint_test.go b/contracts/go/clients/meshcatalogclient/fingerprint_test.go deleted file mode 100644 index ec575e0a..00000000 --- a/contracts/go/clients/meshcatalogclient/fingerprint_test.go +++ /dev/null @@ -1,34 +0,0 @@ -package meshcatalogclient - -import ( - "strings" - "testing" -) - -// The key part holds only bus key characters and parsing gives the fingerprint back; a src1 or malformed value is refused, -// naming it. -func TestFingerprintKeyPart(t *testing.T) { - fp := SourcePrefix2 + strings.Repeat("ab", 32) - part, err := KeyPart(fp) - if err != nil { - t.Fatal(err) - } - if len(part) != 64 || strings.Trim(part, "0123456789abcdef") != "" { - t.Errorf("key part %q is not 64 lowercase hex characters", part) - } - back, err := ParseKeyPart(part) - if err != nil || back != fp { - t.Errorf("parse(%q) = %q, %v; want %q", part, back, err, fp) - } - src1 := "src1:" + strings.Repeat("c", 64) - for _, bad := range []string{src1, "src2:", "src2:xyz", "", "src2:" + strings.Repeat("A", 64), "src2:" + strings.Repeat("a", 63)} { - if _, err := KeyPart(bad); err == nil || !strings.Contains(err.Error(), "\""+bad+"\"") { - t.Errorf("KeyPart(%q) = %v, want a refusal naming it", bad, err) - } - } - for _, bad := range []string{src1, "src2:" + strings.Repeat("a", 64), strings.Repeat("a", 63), strings.Repeat("A", 64), "", "zz"} { - if _, err := ParseKeyPart(bad); err == nil || !strings.Contains(err.Error(), "\""+bad+"\"") { - t.Errorf("ParseKeyPart(%q) = %v, want a refusal naming it", bad, err) - } - } -} diff --git a/contracts/go/clients/meshcatalogclient/module.go b/contracts/go/clients/meshcatalogclient/module.go index d07b3692..be56b854 100644 --- a/contracts/go/clients/meshcatalogclient/module.go +++ b/contracts/go/clients/meshcatalogclient/module.go @@ -6,6 +6,7 @@ import ( "path" "strings" + "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogkey" seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-sdk/go/keys" ) @@ -92,7 +93,7 @@ func CheckModule(m seat.ModulesByModuleValue) error { return fmt.Errorf("meshcatalogclient: a refused module warns: a refusal names problems") } if m.Fp2 != "" { - if _, err := KeyPart(m.Fp2); err != nil { + if _, err := meshcatalogkey.KeyPart(m.Fp2); err != nil { return err } } diff --git a/modules/mesh-delivery-assigner/asks/asks.go b/modules/mesh-delivery-assigner/asks/asks.go index 7fe58160..41e01ef1 100644 --- a/modules/mesh-delivery-assigner/asks/asks.go +++ b/modules/mesh-delivery-assigner/asks/asks.go @@ -16,7 +16,7 @@ import ( "git.novox.be/novox/mesh-contracts/go/clients/meshmoduleassignerclient" "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogkey" "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" "git.novox.be/novox/mesh-delivery/sdk/kept" @@ -92,7 +92,7 @@ func RestoreAskKey(node, module, fingerprint string) (string, error) { // BackupAskKey is the key of the ask about a module's failed backup on a node before it applies a fingerprint: // `backup...`. func BackupAskKey(node, module, fingerprint string) (string, error) { - part, err := meshcatalogclient.KeyPart(fingerprint) + part, err := meshcatalogkey.KeyPart(fingerprint) if err != nil { return "", err } @@ -162,7 +162,7 @@ func ParseAnyAskKey(key string) (AskKey, error) { if err != nil || isNode { return refused(fmt.Errorf("a backup ask is backup...")) } - fp, err := meshcatalogclient.ParseKeyPart(part) + fp, err := meshcatalogkey.ParseKeyPart(part) if err != nil { return refused(err) } diff --git a/modules/mesh-delivery-assigner/asks/go.mod b/modules/mesh-delivery-assigner/asks/go.mod index 6ed0f8c5..f3d1affe 100644 --- a/modules/mesh-delivery-assigner/asks/go.mod +++ b/modules/mesh-delivery-assigner/asks/go.mod @@ -6,6 +6,7 @@ require ( git.novox.be/novox/mesh-contracts/go/clients/meshmoduleassignerclient v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogkey v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-delivery/sdk v0.0.0-00010101000000-000000000000 diff --git a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/composed.go b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/composed.go index b70b521c..2ce918da 100644 --- a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/composed.go +++ b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/composed.go @@ -5,7 +5,7 @@ import ( "strings" "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogkey" ) // Every node's published compositions, read only to compare (novox/hq ADR 0593 §8): each node's engine writes its own @@ -44,7 +44,7 @@ func published(values map[string][]byte) map[string][]publishedRow { _, module, part, isNode, err := nodeengineclient.ParseComposedKey(key) var fp string if err == nil && !isNode { - fp, err = meshcatalogclient.ParseKeyPart(part) + fp, err = meshcatalogkey.ParseKeyPart(part) } switch { case err != nil: diff --git a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/seat_tools_test.go b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/seat_tools_test.go index 36b9656b..0cd6b438 100644 --- a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/seat_tools_test.go +++ b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/seat_tools_test.go @@ -17,6 +17,7 @@ import ( "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogkey" "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-sdk/go/keys" "git.novox.be/novox/mesh-sdk/go/seatlist" @@ -527,7 +528,7 @@ func wantsVerbs(t *testing.T) { indexer := &fakeIndexer{views: map[string]map[string][]byte{"mesh-delivery-indexer.modules": {}, "mesh-delivery-indexer.manifests": {}}} // ADR 0593 §6, §8: what each node published, every node's bucket as one state: anchor's own composition and its web at // a fingerprint, and laptop's web refused there. - partNew, _ := meshcatalogclient.KeyPart(fpNew) + partNew, _ := meshcatalogkey.KeyPart(fpNew) webKey, _ := nodeengineclient.ComposedKey("anchor", "web", partNew) refusedKey, _ := nodeengineclient.ComposedKey("laptop", "web", partNew) st[buckets.ComposedRead].values["anchor.node"], _ = nodeengineclient.EncodeComposition(nodeengineclient.Composition{Node: "anchor"}) diff --git a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/tools.go b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/tools.go index c122bd9f..7d9be903 100644 --- a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/tools.go +++ b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/tools.go @@ -16,6 +16,8 @@ import ( "time" "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" + + "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogkey" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" stdio "git.novox.be/novox/mesh-sdk/go" @@ -414,7 +416,7 @@ func serveTools() error { // shortFP is a fingerprint's first twelve hex digits. func shortFP(fp string) string { - part, err := meshcatalogclient.KeyPart(fp) + part, err := meshcatalogkey.KeyPart(fp) if err != nil || len(part) < 12 { return fp } diff --git a/modules/mesh-delivery-assigner/go.mod b/modules/mesh-delivery-assigner/go.mod index e7424a86..f9a537fe 100644 --- a/modules/mesh-delivery-assigner/go.mod +++ b/modules/mesh-delivery-assigner/go.mod @@ -51,8 +51,10 @@ require git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshwatchdo 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 +require git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogkey v0.0.0-00010101000000-000000000000 replace git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient => ../../contracts/go/clients/meshcatalogclient +replace git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogkey => ../../contracts/go/clients/meshcatalogkey require git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient v0.0.0-00010101000000-000000000000 diff --git a/modules/mesh-delivery-assigner/internal/assign/wants.go b/modules/mesh-delivery-assigner/internal/assign/wants.go index 63a15400..f11b29b7 100644 --- a/modules/mesh-delivery-assigner/internal/assign/wants.go +++ b/modules/mesh-delivery-assigner/internal/assign/wants.go @@ -5,6 +5,7 @@ import ( "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogkey" mwc "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshwantsclient" "git.novox.be/novox/mesh-delivery/modules/mesh-grants/grantsstate" "maps" @@ -741,7 +742,7 @@ func normal(w mwc.Want) mwc.Want { } func short(fp string) string { - part, err := meshcatalogclient.KeyPart(fp) + part, err := meshcatalogkey.KeyPart(fp) if err != nil || len(part) < 12 { return fp } diff --git a/modules/mesh-delivery-assigner/internal/puts/puts.go b/modules/mesh-delivery-assigner/internal/puts/puts.go index 2ba7ee20..58a8e5c0 100644 --- a/modules/mesh-delivery-assigner/internal/puts/puts.go +++ b/modules/mesh-delivery-assigner/internal/puts/puts.go @@ -10,7 +10,7 @@ import ( "time" nec "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogkey" "git.novox.be/novox/mesh-sdk/go/keys" ) @@ -100,7 +100,7 @@ func (p Put) Said(at time.Time, step, words string) Put { var digestForm = regexp.MustCompile(`^sha256:[0-9a-f]{64}$`) func (p Put) check() error { - if _, err := meshcatalogclient.KeyPart(p.FP); err != nil { + if _, err := meshcatalogkey.KeyPart(p.FP); err != nil { return fmt.Errorf("puts: a put's fingerprint: %w", err) } if p.Why == "" { diff --git a/modules/mesh-delivery-indexer/go.mod b/modules/mesh-delivery-indexer/go.mod index d636d4fe..af3efc9b 100644 --- a/modules/mesh-delivery-indexer/go.mod +++ b/modules/mesh-delivery-indexer/go.mod @@ -7,6 +7,7 @@ require ( git.novox.be/novox/mesh-contracts/go/seats/meshmoduleassigner v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshhandactsclient v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogkey v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-delivery/contracts/go/seats/git v0.0.0-00010101000000-000000000000 diff --git a/modules/mesh-delivery-indexer/internal/index/candidate_values.go b/modules/mesh-delivery-indexer/internal/index/candidate_values.go index 0868cad3..17b8f5a7 100644 --- a/modules/mesh-delivery-indexer/internal/index/candidate_values.go +++ b/modules/mesh-delivery-indexer/internal/index/candidate_values.go @@ -8,6 +8,8 @@ import ( "strings" "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" + + "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogkey" "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-sdk/go/keys" @@ -50,7 +52,7 @@ func checkCandidateModule(m meshcatalog.CandidatesByGroupValuePullsItemFpsValue) return err } if m.Fp2 != "" { - if _, err := meshcatalogclient.KeyPart(m.Fp2); err != nil { + if _, err := meshcatalogkey.KeyPart(m.Fp2); err != nil { return err } }