route-proxy: provisions and the provider come from the provisioner's client, not mesh-sdk (N-1, ADR 0634 §4; issue 1966)

The requires of the two mesh-contracts modules carry a placeholder version the group's re-pin replaces.
This commit is contained in:
2026-11-05 14:09:12 +01:00
parent be74c94151
commit acaebc5ddf
7 changed files with 20 additions and 18 deletions
@@ -11,8 +11,8 @@ import (
"os"
"time"
"git.novox.be/novox/mesh-contracts/provisioning/go/clients/meshprovisionerclient/provider"
stdio "git.novox.be/novox/mesh-sdk/go"
"git.novox.be/novox/mesh-sdk/go/provider"
"route-proxy/contract"
)
@@ -11,7 +11,7 @@ package main
// source of routes (issue 774, research 072 row 34).
import (
"git.novox.be/novox/mesh-sdk/go/provider"
"git.novox.be/novox/mesh-contracts/provisioning/go/clients/meshprovisionerclient/provider"
"route-proxy/contract"
)
@@ -9,9 +9,9 @@ import (
"sync"
"testing"
"git.novox.be/novox/mesh-contracts/provisioning/go/clients/meshprovisionerclient"
"git.novox.be/novox/mesh-contracts/provisioning/go/clients/meshprovisionerclient/provider"
"git.novox.be/novox/mesh-sdk/go/catalogue"
"git.novox.be/novox/mesh-sdk/go/provider"
"git.novox.be/novox/mesh-sdk/go/provisions"
)
// bucketBus is the helper's bus over in-memory buckets.
@@ -56,23 +56,23 @@ func TestAConsumerOfARouteIsToldItsNamesFromItsPlanEntry(t *testing.T) {
"gitea": {"name": "git.example.org", "internal-name": "git.novox.internal", "name-web": "git.example.org"},
"grafana": {"name": "grafana.example.org"},
} {
plan, err := provisions.EncodePlan(provisions.Plan{Node: "g14", Module: module, Plan: catalogue.Plan{
plan, err := meshprovisionerclient.EncodePlan(meshprovisionerclient.Plan{Node: "g14", Module: module, Plan: catalogue.Plan{
Provisions: []catalogue.PlanProvision{{Provision: ProvisionName, Provider: "novox", ProviderModule: ModuleName,
At: "10.7.0.1", From: "novox", As: "mesh_g14_" + module, Names: names}}}})
if err != nil {
t.Fatal(err)
}
key := "g14." + module
if err := bus.Put(context.Background(), provisions.PlansBucket, key, plan); err != nil {
if err := bus.Put(context.Background(), meshprovisionerclient.PlansBucket, key, plan); err != nil {
t.Fatal(err)
}
asked, err := json.Marshal(provisions.Provision{V: provisions.Version, Provision: ProvisionName,
Consumer: provisions.End{Node: "g14", Module: module}, Provider: provisions.End{Node: "novox", Module: ModuleName},
State: provisions.Asked})
asked, err := json.Marshal(meshprovisionerclient.Provision{V: meshprovisionerclient.Version, Provision: ProvisionName,
Consumer: meshprovisionerclient.End{Node: "g14", Module: module}, Provider: meshprovisionerclient.End{Node: "novox", Module: ModuleName},
State: meshprovisionerclient.Asked})
if err != nil {
t.Fatal(err)
}
if err := bus.Put(context.Background(), provisions.ProvisionsBucket, key+"."+ProvisionName, asked); err != nil {
if err := bus.Put(context.Background(), meshprovisionerclient.ProvisionsBucket, key+"."+ProvisionName, asked); err != nil {
t.Fatal(err)
}
}
@@ -97,7 +97,7 @@ func TestAConsumerOfARouteIsToldItsNamesFromItsPlanEntry(t *testing.T) {
t.Errorf("%s says %s %v, want %s", key, k, e.Values[k], v)
}
}
if e.State != provisions.Provided || e.VaultName != "" || e.User != "" || e.Refused != "" {
if e.State != meshprovisionerclient.Provided || e.VaultName != "" || e.User != "" || e.Refused != "" {
t.Errorf("the entry %s is %+v", key, e)
}
}
+3 -3
View File
@@ -10,12 +10,12 @@ import (
"github.com/nats-io/nats.go"
"git.novox.be/novox/mesh-contracts/provisioning/go/clients/meshprovisionerclient"
stdio "git.novox.be/novox/mesh-sdk/go"
"git.novox.be/novox/mesh-sdk/go/announce"
"git.novox.be/novox/mesh-sdk/go/delivery"
"git.novox.be/novox/mesh-sdk/go/membership"
"git.novox.be/novox/mesh-sdk/go/process"
"git.novox.be/novox/mesh-sdk/go/provisions"
"route-proxy/contract"
)
@@ -78,7 +78,7 @@ func followOnce(path string, held *table) error {
if err := followInside(conn.Read(delivery.PlacementRead), held); err != nil {
log.Printf("cannot follow %s, so an internal name is served to this machine alone: %v", delivery.PlacementRead, err)
}
if err := followPlans(conn.Read(provisions.PlansRead), newPlanned(account.Node, say), held, say); err != nil {
if err := followPlans(conn.Read(meshprovisionerclient.PlansRead), newPlanned(account.Node, say), held, say); err != nil {
conn.Close()
return err
}
@@ -105,7 +105,7 @@ func followPlans(plans planWatch, given *planned, held *table, say func(string,
return nil
})
if err != nil {
return fmt.Errorf("watching %s: %w", provisions.PlansRead, err)
return fmt.Errorf("watching %s: %w", meshprovisionerclient.PlansRead, err)
}
read.Store(true)
serve(given, held, say)
+2 -2
View File
@@ -17,8 +17,8 @@ import (
"sort"
"sync"
"git.novox.be/novox/mesh-contracts/provisioning/go/clients/meshprovisionerclient"
"git.novox.be/novox/mesh-sdk/go/catalogue"
"git.novox.be/novox/mesh-sdk/go/provisions"
"route-proxy/contract"
)
@@ -90,7 +90,7 @@ func (p *planned) contributions() []contribution {
// what the plan names and the proxy does not serve, each with why: an entry carrying nothing to serve, a payload or a
// route the contract does not read, or a consumer elsewhere with no address on the private network.
func routesOfPlan(node, key string, value []byte) ([]contribution, []contract.Event, error) {
plan, err := provisions.DecodePlan(value)
plan, err := meshprovisionerclient.DecodePlan(value)
if err != nil {
return nil, nil, err
}
@@ -10,8 +10,8 @@ import (
"strings"
"testing"
"git.novox.be/novox/mesh-contracts/provisioning/go/clients/meshprovisionerclient"
"git.novox.be/novox/mesh-sdk/go/catalogue"
"git.novox.be/novox/mesh-sdk/go/provisions"
"route-proxy/contract"
)
@@ -178,7 +178,7 @@ func TestAPlanEntryIsDialledAtTheMachinePortItCarries(t *testing.T) {
if err != nil {
t.Fatalf("%s: %v", c.name, err)
}
value, err := provisions.EncodePlan(provisions.Plan{Node: c.node, Module: c.module, Plan: catalogue.Plan{
value, err := meshprovisionerclient.EncodePlan(meshprovisionerclient.Plan{Node: c.node, Module: c.module, Plan: catalogue.Plan{
Provisions: []catalogue.PlanProvision{{Provision: contract.Provision, Provider: "anchor",
ProviderModule: contract.Module, Contributed: contributed}}}})
if err != nil {