Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSami Hiltunen <shiltunen@gitlab.com>2021-07-27 14:47:09 +0300
committerSami Hiltunen <shiltunen@gitlab.com>2021-08-31 15:56:58 +0300
commitb790880102f46230eec34519b8abbfd13cdaaab5 (patch)
tree1e1669e9ebe1332264e3d694bbee8b796c408116
parent8710a86448097c24eda824c1040f9d6d22d024df (diff)
Pass relative path to CreateRepository
CreateRepository will need to know the relative path of the repository the client is trying to create in order to check whether a repository with it already exists or not. This commit pipes the relative path to CreateRepository to prepare for follow-up changes even though the relative path is not yet used.
-rw-r--r--internal/praefect/coordinator.go2
-rw-r--r--internal/praefect/router.go2
-rw-r--r--internal/praefect/router_node_manager.go2
-rw-r--r--internal/praefect/router_per_repository.go2
-rw-r--r--internal/praefect/router_per_repository_test.go2
5 files changed, 5 insertions, 5 deletions
diff --git a/internal/praefect/coordinator.go b/internal/praefect/coordinator.go
index c77b48ecc..b4c007e3a 100644
--- a/internal/praefect/coordinator.go
+++ b/internal/praefect/coordinator.go
@@ -456,7 +456,7 @@ func (c *Coordinator) mutatorStreamParameters(ctx context.Context, call grpcCall
var route RepositoryMutatorRoute
switch change {
case datastore.CreateRepo:
- route, err = c.router.RouteRepositoryCreation(ctx, virtualStorage)
+ route, err = c.router.RouteRepositoryCreation(ctx, virtualStorage, targetRepo.RelativePath)
if err != nil {
return nil, fmt.Errorf("route repository creation: %w", err)
}
diff --git a/internal/praefect/router.go b/internal/praefect/router.go
index a2147a27e..bc708ffd9 100644
--- a/internal/praefect/router.go
+++ b/internal/praefect/router.go
@@ -50,5 +50,5 @@ type Router interface {
RouteRepositoryMutator(ctx context.Context, virtualStorage, relativePath string) (RepositoryMutatorRoute, error)
// RouteRepositoryCreation decides returns the primary and secondaries that should handle the repository creation
// request. It is up to the caller to store the assignments and primary information after finishing the RPC.
- RouteRepositoryCreation(ctx context.Context, virtualStorage string) (RepositoryMutatorRoute, error)
+ RouteRepositoryCreation(ctx context.Context, virtualStorage, relativePath string) (RepositoryMutatorRoute, error)
}
diff --git a/internal/praefect/router_node_manager.go b/internal/praefect/router_node_manager.go
index 015a8985a..4395d4dfc 100644
--- a/internal/praefect/router_node_manager.go
+++ b/internal/praefect/router_node_manager.go
@@ -119,7 +119,7 @@ func (r *nodeManagerRouter) RouteRepositoryMutator(ctx context.Context, virtualS
// RouteRepositoryCreation includes healthy secondaries in the transaction and sets the unhealthy secondaries as
// replication targets. The virtual storage's primary acts as the primary for every repository.
-func (r *nodeManagerRouter) RouteRepositoryCreation(ctx context.Context, virtualStorage string) (RepositoryMutatorRoute, error) {
+func (r *nodeManagerRouter) RouteRepositoryCreation(ctx context.Context, virtualStorage, relativePath string) (RepositoryMutatorRoute, error) {
shard, err := r.mgr.GetShard(ctx, virtualStorage)
if err != nil {
return RepositoryMutatorRoute{}, fmt.Errorf("get shard: %w", err)
diff --git a/internal/praefect/router_per_repository.go b/internal/praefect/router_per_repository.go
index fc022cddb..3a1a98f4e 100644
--- a/internal/praefect/router_per_repository.go
+++ b/internal/praefect/router_per_repository.go
@@ -237,7 +237,7 @@ func (r *PerRepositoryRouter) RouteRepositoryMutator(ctx context.Context, virtua
// RouteRepositoryCreation picks a random healthy node to act as the primary node and selects the secondary nodes
// if assignments are enabled. Healthy secondaries take part in the transaction, unhealthy secondaries are set as
// replication targets.
-func (r *PerRepositoryRouter) RouteRepositoryCreation(ctx context.Context, virtualStorage string) (RepositoryMutatorRoute, error) {
+func (r *PerRepositoryRouter) RouteRepositoryCreation(ctx context.Context, virtualStorage, relativePath string) (RepositoryMutatorRoute, error) {
healthyNodes, err := r.healthyNodes(virtualStorage)
if err != nil {
return RepositoryMutatorRoute{}, err
diff --git a/internal/praefect/router_per_repository_test.go b/internal/praefect/router_per_repository_test.go
index 5a0a1e864..4bb27d0bf 100644
--- a/internal/praefect/router_per_repository_test.go
+++ b/internal/praefect/router_per_repository_test.go
@@ -557,7 +557,7 @@ func TestPerRepositoryRouter_RouteRepositoryCreation(t *testing.T) {
nil,
nil,
map[string]int{"virtual-storage-1": tc.replicationFactor},
- ).RouteRepositoryCreation(ctx, tc.virtualStorage)
+ ).RouteRepositoryCreation(ctx, tc.virtualStorage, "relative-path")
if tc.error != nil {
require.Equal(t, tc.error, err)
return