diff options
Diffstat (limited to 'internal/backup/backup.go')
-rw-r--r-- | internal/backup/backup.go | 54 |
1 files changed, 7 insertions, 47 deletions
diff --git a/internal/backup/backup.go b/internal/backup/backup.go index a15f47abe..5eed0724a 100644 --- a/internal/backup/backup.go +++ b/internal/backup/backup.go @@ -211,56 +211,25 @@ func NewManagerLocal( } } -// RemoveRepository removes the specified repository from its storage. -func (mgr *Manager) RemoveRepository(ctx context.Context, req *RemoveRepositoryRequest) error { - if err := setContextServerInfo(ctx, &req.Server, req.Repo.StorageName); err != nil { - return fmt.Errorf("remove repo: set context: %w", err) +// RemoveAllRepositories removes all repositories in the specified storage name. +func (mgr *Manager) RemoveAllRepositories(ctx context.Context, req *RemoveAllRepositoriesRequest) error { + if err := setContextServerInfo(ctx, &req.Server, req.StorageName); err != nil { + return fmt.Errorf("manager: %w", err) } repoClient, err := mgr.newRepoClient(ctx, req.Server) if err != nil { - return fmt.Errorf("remove repo: create client: %w", err) + return fmt.Errorf("manager: %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("remove repo: remove: %w", err) + return fmt.Errorf("manager: %w", err) } return nil } -// ListRepositories returns a list of repositories found in the given storage. -func (mgr *Manager) 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("list repos: set context: %w", err) - } - - internalClient, err := mgr.newInternalClient(ctx, req.Server) - if err != nil { - return nil, fmt.Errorf("list repos: create client: %w", err) - } - - stream, err := internalClient.WalkRepos(ctx, &gitalypb.WalkReposRequest{StorageName: req.StorageName}) - if err != nil { - return nil, fmt.Errorf("list repos: walk: %w", err) - } - - for { - resp, err := stream.Recv() - if errors.Is(err, io.EOF) { - break - } - if err != nil { - return nil, fmt.Errorf("list repos: receiving messages: %w", err) - } - - repos = append(repos, &gitalypb.Repository{RelativePath: resp.RelativePath, StorageName: req.StorageName}) - } - - return repos, nil -} - // Create creates a repository backup. func (mgr *Manager) Create(ctx context.Context, req *CreateRequest) error { if req.VanityRepository == nil { @@ -604,12 +573,3 @@ func (mgr *Manager) newRepoClient(ctx context.Context, server storage.ServerInfo return gitalypb.NewRepositoryServiceClient(conn), nil } - -func (mgr *Manager) newInternalClient(ctx context.Context, server storage.ServerInfo) (gitalypb.InternalGitalyClient, error) { - conn, err := mgr.conns.Dial(ctx, server.Address, server.Token) - if err != nil { - return nil, err - } - - return gitalypb.NewInternalGitalyClient(conn), nil -} |