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:
-rw-r--r--internal/praefect/service/info/repositories.go37
1 files changed, 19 insertions, 18 deletions
diff --git a/internal/praefect/service/info/repositories.go b/internal/praefect/service/info/repositories.go
index ec6bb1a4b..ba6f1f90a 100644
--- a/internal/praefect/service/info/repositories.go
+++ b/internal/praefect/service/info/repositories.go
@@ -7,6 +7,7 @@ import (
"gitlab.com/gitlab-org/gitaly/v14/internal/helper"
"gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb"
"golang.org/x/sync/errgroup"
+ "google.golang.org/grpc"
)
// RepositoryReplicas returns a list of repositories that includes the checksum of the primary as well as the replicas
@@ -29,11 +30,6 @@ func (s *Server) RepositoryReplicas(ctx context.Context, in *gitalypb.Repository
return nil, fmt.Errorf("get host assignments: %w", err)
}
- replicaPath, err := s.rs.GetReplicaPath(ctx, repositoryID)
- if err != nil {
- return nil, fmt.Errorf("get replica path: %w", err)
- }
-
secondaries := make([]string, 0, len(assignments)-1)
primaryIsAssigned := false
for _, assignment := range assignments {
@@ -51,7 +47,7 @@ func (s *Server) RepositoryReplicas(ctx context.Context, in *gitalypb.Repository
var resp gitalypb.RepositoryReplicasResponse
- if resp.Primary, err = s.getRepositoryDetails(ctx, virtualStorage, primary, relativePath, replicaPath); err != nil {
+ if resp.Primary, err = s.getRepositoryDetails(ctx, virtualStorage, primary, relativePath); err != nil {
return nil, helper.ErrInternal(err)
}
@@ -64,7 +60,7 @@ func (s *Server) RepositoryReplicas(ctx context.Context, in *gitalypb.Repository
storage := storage // rescoping
g.Go(func() error {
var err error
- resp.Replicas[i], err = s.getRepositoryDetails(ctx, virtualStorage, storage, relativePath, replicaPath)
+ resp.Replicas[i], err = s.getRepositoryDetails(ctx, virtualStorage, storage, relativePath)
return err
})
}
@@ -76,28 +72,33 @@ func (s *Server) RepositoryReplicas(ctx context.Context, in *gitalypb.Repository
return &resp, nil
}
-func (s *Server) getRepositoryDetails(ctx context.Context, virtualStorage, storage, relativePath, replicaPath string) (*gitalypb.RepositoryReplicasResponse_RepositoryDetails, error) {
+func (s *Server) getRepositoryDetails(ctx context.Context, virtualStorage, storage, relativePath string) (*gitalypb.RepositoryReplicasResponse_RepositoryDetails, error) {
conn, ok := s.conns[virtualStorage][storage]
if !ok {
return nil, fmt.Errorf("no connection to %q/%q", virtualStorage, storage)
}
- resp, err := gitalypb.NewRepositoryServiceClient(conn).CalculateChecksum(ctx,
+ return getChecksum(
+ ctx,
+ &gitalypb.Repository{
+ StorageName: storage,
+ RelativePath: relativePath,
+ }, conn)
+}
+
+func getChecksum(ctx context.Context, repo *gitalypb.Repository, cc *grpc.ClientConn) (*gitalypb.RepositoryReplicasResponse_RepositoryDetails, error) {
+ client := gitalypb.NewRepositoryServiceClient(cc)
+
+ resp, err := client.CalculateChecksum(ctx,
&gitalypb.CalculateChecksumRequest{
- Repository: &gitalypb.Repository{
- StorageName: storage,
- RelativePath: replicaPath,
- },
+ Repository: repo,
})
if err != nil {
return nil, err
}
return &gitalypb.RepositoryReplicasResponse_RepositoryDetails{
- Repository: &gitalypb.Repository{
- StorageName: storage,
- RelativePath: relativePath,
- },
- Checksum: resp.GetChecksum(),
+ Repository: repo,
+ Checksum: resp.GetChecksum(),
}, nil
}