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-08-12 13:47:20 +0300
committerSami Hiltunen <shiltunen@gitlab.com>2021-08-31 15:57:48 +0300
commit3ba2a6b75add398b278b5ac571350aca73c419bc (patch)
tree5914e6ff505d0905ed52ec582ea65adef402ab80
parent1836583ff226a634932a9e2f424acc3e8882d9d9 (diff)
Return repository id from the Router's RouteRepositoryMutator
This commit returns the repository's ID from RouteRepositoryMutator. The repository ID is needed in the request finalizers later to propagate the repository id into the replication jobs.
-rw-r--r--internal/praefect/router_per_repository.go7
-rw-r--r--internal/praefect/router_per_repository_test.go7
2 files changed, 12 insertions, 2 deletions
diff --git a/internal/praefect/router_per_repository.go b/internal/praefect/router_per_repository.go
index 326d375cb..4a70bb912 100644
--- a/internal/praefect/router_per_repository.go
+++ b/internal/praefect/router_per_repository.go
@@ -214,7 +214,12 @@ func (r *PerRepositoryRouter) RouteRepositoryMutator(ctx context.Context, virtua
return RepositoryMutatorRoute{}, fmt.Errorf("get host assignments: %w", err)
}
- var route RepositoryMutatorRoute
+ repositoryID, err := r.rs.GetRepositoryID(ctx, virtualStorage, relativePath)
+ if err != nil {
+ return RepositoryMutatorRoute{}, fmt.Errorf("get repository id: %w", err)
+ }
+
+ route := RepositoryMutatorRoute{RepositoryID: repositoryID}
for _, assigned := range assignedStorages {
node, healthy := healthySet[assigned]
if assigned == primary {
diff --git a/internal/praefect/router_per_repository_test.go b/internal/praefect/router_per_repository_test.go
index a964b41b1..332bf30b8 100644
--- a/internal/praefect/router_per_repository_test.go
+++ b/internal/praefect/router_per_repository_test.go
@@ -371,7 +371,11 @@ func TestPerRepositoryRouter_RouteRepositoryMutator(t *testing.T) {
},
},
tc.assignedNodes,
- datastore.MockRepositoryStore{},
+ datastore.MockRepositoryStore{
+ GetRepositoryIDFunc: func(ctx context.Context, virtualStorage, relativePath string) (int64, error) {
+ return 1, nil
+ },
+ },
nil,
)
@@ -387,6 +391,7 @@ func TestPerRepositoryRouter_RouteRepositoryMutator(t *testing.T) {
}
require.Equal(t, RepositoryMutatorRoute{
+ RepositoryID: 1,
Primary: RouterNode{
Storage: "primary",
Connection: conns[tc.virtualStorage]["primary"],