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:
authorJames Liu <jliu@gitlab.com>2024-01-09 03:00:49 +0300
committerJames Liu <jliu@gitlab.com>2024-01-09 03:00:49 +0300
commit2625753feda7773bac2a4c3b4f6ef312c46bda3d (patch)
tree939019820da16c68ebc650166d97a608d5e820db /internal/praefect
parent8c890dbc9e8936f41dd2f9e7af65a5ed8b854ca3 (diff)
Revert "Merge branch 'jliu-track-restored-repos-2' into 'master'"
This reverts commit 7de65fabe6eaf803771cf0dd5d53dbaf1e628d56, reversing changes made to 0ffc495be9bb5a8f4ff60764b545443d54210e56.
Diffstat (limited to 'internal/praefect')
-rw-r--r--internal/praefect/datastore/repository_store.go27
-rw-r--r--internal/praefect/remove_all.go1
-rw-r--r--internal/praefect/remove_all_test.go1
-rw-r--r--internal/praefect/server.go3
-rw-r--r--internal/praefect/walkrepos.go47
-rw-r--r--internal/praefect/walkrepos_test.go88
6 files changed, 0 insertions, 167 deletions
diff --git a/internal/praefect/datastore/repository_store.go b/internal/praefect/datastore/repository_store.go
index 4925fcb50..77dce6ba0 100644
--- a/internal/praefect/datastore/repository_store.go
+++ b/internal/praefect/datastore/repository_store.go
@@ -111,8 +111,6 @@ type RepositoryStore interface {
MarkVirtualStorageUnverified(ctx context.Context, virtualStorage string) (int64, error)
// MarkStorageUnverified marsk all replicas on the storage as unverified.
MarkStorageUnverified(ctx context.Context, virtualStorage, storage string) (int64, error)
- // ListRepositoryPaths retrieves the relative path for all repositories present on the given virtual storage.
- ListRepositoryPaths(ctx context.Context, virtualStorage string) ([]string, error)
}
// PostgresRepositoryStore is a Postgres implementation of RepositoryStore.
@@ -918,28 +916,3 @@ func (rs *PostgresRepositoryStore) GetReplicaPath(ctx context.Context, repositor
return replicaPath, nil
}
-
-// ListRepositoryPaths retrieves the relative path for all repositories present on the given virtual storage.
-func (rs *PostgresRepositoryStore) ListRepositoryPaths(ctx context.Context, virtualStorage string) ([]string, error) {
- rows, err := rs.db.QueryContext(ctx, `
-SELECT relative_path
-FROM repositories
-WHERE virtual_storage = $1
-`, virtualStorage)
- if err != nil {
- return nil, fmt.Errorf("query: %w", err)
- }
- defer rows.Close()
-
- var relativePaths []string
- for rows.Next() {
- var relativePath string
- if err := rows.Scan(&relativePath); err != nil {
- return nil, fmt.Errorf("scan: %w", err)
- }
-
- relativePaths = append(relativePaths, relativePath)
- }
-
- return relativePaths, rows.Err()
-}
diff --git a/internal/praefect/remove_all.go b/internal/praefect/remove_all.go
index 9c383cd0e..9fa08206f 100644
--- a/internal/praefect/remove_all.go
+++ b/internal/praefect/remove_all.go
@@ -32,7 +32,6 @@ func RemoveAllHandler(rs datastore.RepositoryStore, conns Connections) grpc.Stre
conn := conn
group.Go(func() error {
- //nolint:staticcheck
_, err := gitalypb.NewRepositoryServiceClient(conn).RemoveAll(ctx, &gitalypb.RemoveAllRequest{
StorageName: rewrittenStorage,
})
diff --git a/internal/praefect/remove_all_test.go b/internal/praefect/remove_all_test.go
index 6b5e6f848..965ffb95b 100644
--- a/internal/praefect/remove_all_test.go
+++ b/internal/praefect/remove_all_test.go
@@ -96,7 +96,6 @@ Issue: https://gitlab.com/gitlab-org/gitaly/-/issues/5269`)
_, err = client.RepositorySize(ctx, &gitalypb.RepositorySizeRequest{Repository: &gitalypb.Repository{}})
testhelper.RequireGrpcError(t, errServedByGitaly, err)
- //nolint:staticcheck
resp, err := client.RemoveAll(ctx, &gitalypb.RemoveAllRequest{StorageName: virtualStorage})
require.NoError(t, err)
diff --git a/internal/praefect/server.go b/internal/praefect/server.go
index c52b160f5..54cbee079 100644
--- a/internal/praefect/server.go
+++ b/internal/praefect/server.go
@@ -195,9 +195,6 @@ func NewGRPCServer(
"DeleteObjectPool": DeleteObjectPoolHandler(deps.RepositoryStore, deps.Logger, deps.Conns),
"GetObjectPool": GetObjectPoolHandler(deps.RepositoryStore, deps.Router),
})
- proxy.RegisterStreamHandlers(srv, "gitaly.InternalGitaly", map[string]grpc.StreamHandler{
- "WalkRepos": WalkReposHandler(deps.RepositoryStore),
- })
}
return srv
diff --git a/internal/praefect/walkrepos.go b/internal/praefect/walkrepos.go
deleted file mode 100644
index 1f321a4c7..000000000
--- a/internal/praefect/walkrepos.go
+++ /dev/null
@@ -1,47 +0,0 @@
-package praefect
-
-import (
- "fmt"
-
- "gitlab.com/gitlab-org/gitaly/v16/internal/gitaly/storage"
- "gitlab.com/gitlab-org/gitaly/v16/internal/praefect/datastore"
- "gitlab.com/gitlab-org/gitaly/v16/internal/structerr"
- "gitlab.com/gitlab-org/gitaly/v16/proto/go/gitalypb"
- "google.golang.org/grpc"
-)
-
-// WalkReposHandler implements an interceptor for the WalkRepos RPC, invoked when calling
-// through Praefect. Instead of walking the storage directory in the filesystem, this Praefect
-// implementation queries the database for all known repositories in the given virtual storage.
-// As a consequence, the modification_time parameter can't be populated in the response.
-func WalkReposHandler(rs datastore.RepositoryStore) grpc.StreamHandler {
- return func(srv interface{}, stream grpc.ServerStream) error {
- sendRepo := func(relPath string) error {
- return stream.SendMsg(&gitalypb.WalkReposResponse{
- RelativePath: relPath,
- })
- }
-
- var req gitalypb.WalkReposRequest
- if err := stream.RecvMsg(&req); err != nil {
- return fmt.Errorf("receive request: %w", err)
- }
-
- if req.StorageName == "" {
- return structerr.NewInvalidArgument("%w", storage.ErrStorageNotSet)
- }
-
- repos, err := rs.ListRepositoryPaths(stream.Context(), req.StorageName)
- if err != nil {
- return structerr.NewInternal("list repository paths: %w", err)
- }
-
- for _, repo := range repos {
- if err := sendRepo(repo); err != nil {
- return structerr.NewInternal("send repository path: %w", err)
- }
- }
-
- return nil
- }
-}
diff --git a/internal/praefect/walkrepos_test.go b/internal/praefect/walkrepos_test.go
deleted file mode 100644
index 63301caf5..000000000
--- a/internal/praefect/walkrepos_test.go
+++ /dev/null
@@ -1,88 +0,0 @@
-package praefect
-
-import (
- "net"
- "path/filepath"
- "testing"
-
- "github.com/stretchr/testify/require"
- "gitlab.com/gitlab-org/gitaly/v16/internal/gitaly/storage"
- "gitlab.com/gitlab-org/gitaly/v16/internal/grpc/protoregistry"
- "gitlab.com/gitlab-org/gitaly/v16/internal/praefect/config"
- "gitlab.com/gitlab-org/gitaly/v16/internal/praefect/datastore"
- "gitlab.com/gitlab-org/gitaly/v16/internal/structerr"
- "gitlab.com/gitlab-org/gitaly/v16/internal/testhelper"
- "gitlab.com/gitlab-org/gitaly/v16/internal/testhelper/testdb"
- "gitlab.com/gitlab-org/gitaly/v16/proto/go/gitalypb"
- "google.golang.org/grpc"
- "google.golang.org/grpc/credentials/insecure"
-)
-
-func TestWalkReposHandler(t *testing.T) {
- t.Parallel()
-
- db := testdb.New(t)
- for _, tc := range []struct {
- desc string
- request *gitalypb.WalkReposRequest
- responses []*gitalypb.WalkReposResponse
- expectedErr error
- }{
- {
- desc: "missing storage name",
- request: &gitalypb.WalkReposRequest{},
- expectedErr: structerr.NewInvalidArgument("%w", storage.ErrStorageNotSet),
- },
- {
- desc: "repositories found",
- request: &gitalypb.WalkReposRequest{StorageName: "virtual-storage"},
- responses: []*gitalypb.WalkReposResponse{
- {RelativePath: "relative-path"},
- {RelativePath: "relative-path-2"},
- },
- },
- } {
- t.Run(tc.desc, func(t *testing.T) {
- db.TruncateAll(t)
- rs := datastore.NewPostgresRepositoryStore(db, map[string][]string{"virtual-storage": {"storage"}})
- ctx := testhelper.Context(t)
-
- require.NoError(t, rs.CreateRepository(ctx, 0, "virtual-storage", "relative-path", "relative-path", "storage", nil, nil, false, false))
- require.NoError(t, rs.CreateRepository(ctx, 1, "virtual-storage", "relative-path-2", "relative-path-2", "storage", nil, nil, false, false))
-
- tmp := testhelper.TempDir(t)
-
- ln, err := net.Listen("unix", filepath.Join(tmp, "praefect"))
- require.NoError(t, err)
-
- srv := NewGRPCServer(&Dependencies{
- Config: config.Config{Failover: config.Failover{ElectionStrategy: config.ElectionStrategyPerRepository}},
- Logger: testhelper.SharedLogger(t),
- RepositoryStore: rs,
- Registry: protoregistry.GitalyProtoPreregistered,
- }, nil)
- defer srv.Stop()
-
- go testhelper.MustServe(t, srv, ln)
-
- clientConn, err := grpc.DialContext(ctx, "unix://"+ln.Addr().String(), grpc.WithTransportCredentials(insecure.NewCredentials()))
- require.NoError(t, err)
- defer testhelper.MustClose(t, clientConn)
-
- client := gitalypb.NewInternalGitalyClient(clientConn)
-
- stream, err := client.WalkRepos(ctx, tc.request)
- if tc.expectedErr != nil {
- // Consume the first message and test for errors only if we're expecting an error.
- _, err = stream.Recv()
- testhelper.RequireGrpcError(t, tc.expectedErr, err)
- return
- }
- require.NoError(t, err)
-
- actualRepos, err := testhelper.Receive(stream.Recv)
- require.NoError(t, err)
- testhelper.ProtoEqual(t, tc.responses, actualRepos)
- })
- }
-}