diff options
author | Sami Hiltunen <shiltunen@gitlab.com> | 2021-08-12 13:47:20 +0300 |
---|---|---|
committer | Sami Hiltunen <shiltunen@gitlab.com> | 2021-08-31 15:57:48 +0300 |
commit | 3ba2a6b75add398b278b5ac571350aca73c419bc (patch) | |
tree | 5914e6ff505d0905ed52ec582ea65adef402ab80 | |
parent | 1836583ff226a634932a9e2f424acc3e8882d9d9 (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.go | 7 | ||||
-rw-r--r-- | internal/praefect/router_per_repository_test.go | 7 |
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"], |