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:
Diffstat (limited to 'internal/backup/server_side.go')
-rw-r--r--internal/backup/server_side.go56
1 files changed, 7 insertions, 49 deletions
diff --git a/internal/backup/server_side.go b/internal/backup/server_side.go
index a1a9a37eb..35654f215 100644
--- a/internal/backup/server_side.go
+++ b/internal/backup/server_side.go
@@ -2,9 +2,7 @@ package backup
import (
"context"
- "errors"
"fmt"
- "io"
"gitlab.com/gitlab-org/gitaly/v16/internal/gitaly/storage"
"gitlab.com/gitlab-org/gitaly/v16/internal/grpc/client"
@@ -95,56 +93,25 @@ func (ss ServerSideAdapter) Restore(ctx context.Context, req *RestoreRequest) er
return nil
}
-// RemoveRepository removes the specified repository from its storage.
-func (ss ServerSideAdapter) RemoveRepository(ctx context.Context, req *RemoveRepositoryRequest) error {
- if err := setContextServerInfo(ctx, &req.Server, req.Repo.StorageName); err != nil {
- return fmt.Errorf("server-side remove repo: set context: %w", err)
+// RemoveAllRepositories removes all repositories in the specified storage name.
+func (ss ServerSideAdapter) RemoveAllRepositories(ctx context.Context, req *RemoveAllRepositoriesRequest) error {
+ if err := setContextServerInfo(ctx, &req.Server, req.StorageName); err != nil {
+ return fmt.Errorf("server-side remove all: %w", err)
}
repoClient, err := ss.newRepoClient(ctx, req.Server)
if err != nil {
- return fmt.Errorf("server-side remove repo: create client: %w", err)
+ return fmt.Errorf("server-side remove all: %w", err)
}
- _, err = repoClient.RemoveRepository(ctx, &gitalypb.RemoveRepositoryRequest{Repository: req.Repo})
+ _, err = repoClient.RemoveAll(ctx, &gitalypb.RemoveAllRequest{StorageName: req.StorageName})
if err != nil {
- return fmt.Errorf("server-side remove repo: remove: %w", err)
+ return fmt.Errorf("server-side remove all: %w", err)
}
return nil
}
-// ListRepositories returns a list of repositories found in the given storage.
-func (ss ServerSideAdapter) ListRepositories(ctx context.Context, req *ListRepositoriesRequest) (repos []*gitalypb.Repository, err error) {
- if err := setContextServerInfo(ctx, &req.Server, req.StorageName); err != nil {
- return nil, fmt.Errorf("server-side list repos: set context: %w", err)
- }
-
- internalClient, err := ss.newInternalClient(ctx, req.Server)
- if err != nil {
- return nil, fmt.Errorf("server-side list repos: create client: %w", err)
- }
-
- stream, err := internalClient.WalkRepos(ctx, &gitalypb.WalkReposRequest{StorageName: req.StorageName})
- if err != nil {
- return nil, fmt.Errorf("server-side list repos: walk: %w", err)
- }
-
- for {
- resp, err := stream.Recv()
- if errors.Is(err, io.EOF) {
- break
- }
- if err != nil {
- return nil, err
- }
-
- repos = append(repos, &gitalypb.Repository{RelativePath: resp.RelativePath, StorageName: req.StorageName})
- }
-
- return repos, nil
-}
-
func (ss ServerSideAdapter) newRepoClient(ctx context.Context, server storage.ServerInfo) (gitalypb.RepositoryServiceClient, error) {
conn, err := ss.pool.Dial(ctx, server.Address, server.Token)
if err != nil {
@@ -153,12 +120,3 @@ func (ss ServerSideAdapter) newRepoClient(ctx context.Context, server storage.Se
return gitalypb.NewRepositoryServiceClient(conn), nil
}
-
-func (ss ServerSideAdapter) newInternalClient(ctx context.Context, server storage.ServerInfo) (gitalypb.InternalGitalyClient, error) {
- conn, err := ss.pool.Dial(ctx, server.Address, server.Token)
- if err != nil {
- return nil, err
- }
-
- return gitalypb.NewInternalGitalyClient(conn), nil
-}