diff options
author | Will Chandler <wchandler@gitlab.com> | 2023-10-13 06:18:42 +0300 |
---|---|---|
committer | Will Chandler <wchandler@gitlab.com> | 2023-10-13 06:22:43 +0300 |
commit | bed2c51bdefe44dcd78dd10fafd1e46ec08204d9 (patch) | |
tree | 62dd53bf10ea10ea6ff66cb4834162e48646c4d4 | |
parent | 64342c8fb2b7f7c90f4eb7f830b2e527b22f8b1e (diff) |
praefect: Get repository ID of repos in database
Currently the `track-repositories` Praefect command checks if the target
repo is already tracked in the database, but does not retrieve the
repository ID in this scenario, returning 0 instead. As a result,
track requests will fail when we use the invalid repository ID returned.
Fetch the actual repository ID in this scenario.
Changelog: fixed
-rw-r--r-- | internal/cli/praefect/subcmd_track_repository.go | 6 | ||||
-rw-r--r-- | internal/cli/praefect/subcmd_track_repository_test.go | 9 |
2 files changed, 10 insertions, 5 deletions
diff --git a/internal/cli/praefect/subcmd_track_repository.go b/internal/cli/praefect/subcmd_track_repository.go index 4b5dd1026..65618de74 100644 --- a/internal/cli/praefect/subcmd_track_repository.go +++ b/internal/cli/praefect/subcmd_track_repository.go @@ -286,7 +286,11 @@ func (req *trackRepositoryRequest) trackRepository( if err != nil { if errors.Is(err, datastore.ErrRepositoryAlreadyExists) { fmt.Fprintf(w, "repository is already tracked in praefect database") - return 0, nil + existingID, err := ds.GetRepositoryID(ctx, req.VirtualStorage, req.RelativePath) + if err != nil { + return 0, fmt.Errorf("GetRepositoryID: %w", err) + } + return existingID, nil } return 0, fmt.Errorf("ReserveRepositoryID: %w", err) diff --git a/internal/cli/praefect/subcmd_track_repository_test.go b/internal/cli/praefect/subcmd_track_repository_test.go index f1b2e5308..59cf7369f 100644 --- a/internal/cli/praefect/subcmd_track_repository_test.go +++ b/internal/cli/praefect/subcmd_track_repository_test.go @@ -198,13 +198,14 @@ func TestTrackRepositorySubcommand(t *testing.T) { expectedOutput: []string{"Added replication job to replicate repository to \"gitaly-2\".\n"}, }, { - desc: "records already exist", - relativePath: relativePathAlreadyExist, - repositoryExists: true, + desc: "records already exist", + relativePath: relativePathAlreadyExist, + repositoryExists: true, + replicateImmediately: true, expectedOutput: []string{ "repository is already tracked in praefect database", "Finished adding new repository to be tracked in praefect database.", - "Added replication job to replicate repository to \"gitaly-2\".\n", + "Finished replicating repository to \"gitaly-2\".\n", }, }, } |