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:
authorWill Chandler <wchandler@gitlab.com>2023-10-13 06:18:42 +0300
committerWill Chandler <wchandler@gitlab.com>2023-10-13 06:22:43 +0300
commitbed2c51bdefe44dcd78dd10fafd1e46ec08204d9 (patch)
tree62dd53bf10ea10ea6ff66cb4834162e48646c4d4
parent64342c8fb2b7f7c90f4eb7f830b2e527b22f8b1e (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.go6
-rw-r--r--internal/cli/praefect/subcmd_track_repository_test.go9
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",
},
},
}