From 9c08dc0188e1a00866c9c1361bfd67862bec01d7 Mon Sep 17 00:00:00 2001 From: Sami Hiltunen Date: Fri, 26 Mar 2021 09:32:21 +0100 Subject: Inject PrimaryGetter and Connection in Praefect's Info server This commit wires up a PrimaryGetter and Connections into Praefect's Info server as they'll be needed when converting the methods to support variable replication factor and repository specific primaries. ReplicationFactorSetter is also converted into AssignmentStore so the methods can acccess assignments later. --- cmd/praefect/main.go | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'cmd/praefect/main.go') diff --git a/cmd/praefect/main.go b/cmd/praefect/main.go index 0e229b8fb..4daafd172 100644 --- a/cmd/praefect/main.go +++ b/cmd/praefect/main.go @@ -304,6 +304,7 @@ func run(cfgs []starter.Config, conf config.Config) error { healthChecker praefect.HealthChecker nodeSet praefect.NodeSet router praefect.Router + primaryGetter praefect.PrimaryGetter ) if conf.Failover.ElectionStrategy == config.ElectionStrategyPerRepository { nodeSet, err = praefect.DialNodes(ctx, conf.VirtualStorages, protoregistry.GitalyProtoPreregistered, errTracker) @@ -327,6 +328,7 @@ func run(cfgs []starter.Config, conf config.Config) error { } }() + primaryGetter = elector assignmentStore = datastore.NewAssignmentStore(db, conf.StorageNames()) router = praefect.NewPerRepositoryRouter( @@ -342,6 +344,7 @@ func run(cfgs []starter.Config, conf config.Config) error { healthChecker = praefect.HealthChecker(nodeManager) nodeSet = praefect.NodeSetFromNodeManager(nodeManager) router = praefect.NewNodeManagerRouter(nodeManager, rs) + primaryGetter = nodeManager nodeManager.Start(conf.Failover.BootstrapInterval.Duration(), conf.Failover.MonitorInterval.Duration()) } @@ -383,6 +386,8 @@ func run(cfgs []starter.Config, conf config.Config) error { rs, assignmentStore, protoregistry.GitalyProtoPreregistered, + nodeSet.Connections(), + primaryGetter, ) ) metricsCollectors = append(metricsCollectors, transactionManager, coordinator, repl) -- cgit v1.2.3