diff options
author | James Fargher <jfargher@gitlab.com> | 2023-04-13 23:47:20 +0300 |
---|---|---|
committer | James Fargher <jfargher@gitlab.com> | 2023-04-14 06:52:27 +0300 |
commit | 65575adf7706dbcc143f47ab22e3b69fb257a102 (patch) | |
tree | 5b609b742a20901631e843151061cd9dfde7a1f3 | |
parent | 49eaff470d7e60bd2a61ffcc96f7ac1eba31fa00 (diff) |
backup: Tidy up repository error messages
RemoteRepository mostly only wraps RPC calls which all have their own
context, but we do need to explicitly mention "remote repository" so
that we can tell which strategy was used as we intend to implement this
using localrepo as well.
-rw-r--r-- | internal/backup/filesystem_sink.go | 2 | ||||
-rw-r--r-- | internal/backup/repository.go | 22 |
2 files changed, 12 insertions, 12 deletions
diff --git a/internal/backup/filesystem_sink.go b/internal/backup/filesystem_sink.go index bd9e61a40..a199978c8 100644 --- a/internal/backup/filesystem_sink.go +++ b/internal/backup/filesystem_sink.go @@ -48,7 +48,7 @@ func (fs *FilesystemSink) GetReader(ctx context.Context, relativePath string) (i f, err := os.Open(path) if err != nil { if errors.Is(err, os.ErrNotExist) { - err = fmt.Errorf("%q: %w", path, ErrDoesntExist) + return nil, ErrDoesntExist } return nil, fmt.Errorf("filesystem sink: %w", err) } diff --git a/internal/backup/repository.go b/internal/backup/repository.go index b504ce477..1249d214b 100644 --- a/internal/backup/repository.go +++ b/internal/backup/repository.go @@ -41,7 +41,7 @@ func (rr *remoteRepository) IsEmpty(ctx context.Context) (bool, error) { case status.Code(err) == codes.NotFound: return true, nil case err != nil: - return false, fmt.Errorf("IsEmpty: %w", err) + return false, fmt.Errorf("remote repository: is empty: %w", err) } return !hasLocalBranches.GetValue(), nil } @@ -55,17 +55,17 @@ func (rr *remoteRepository) ListRefs(ctx context.Context) ([]git.Reference, erro Patterns: [][]byte{[]byte("refs/")}, }) if err != nil { - return nil, fmt.Errorf("list refs: %w", err) + return nil, fmt.Errorf("remote repository: list refs: %w", err) } var refs []git.Reference for { resp, err := stream.Recv() - if err == io.EOF { + if errors.Is(err, io.EOF) { break } else if err != nil { - return nil, fmt.Errorf("list refs: %w", err) + return nil, fmt.Errorf("remote repository: list refs: %w", err) } for _, ref := range resp.GetReferences() { refs = append(refs, git.NewReference(git.ReferenceName(ref.GetName()), ref.GetTarget())) @@ -80,7 +80,7 @@ func (rr *remoteRepository) GetCustomHooks(ctx context.Context) (io.Reader, erro repoClient := rr.newRepoClient() stream, err := repoClient.GetCustomHooks(ctx, &gitalypb.GetCustomHooksRequest{Repository: rr.repo}) if err != nil { - return nil, err + return nil, fmt.Errorf("remote repository: get custom hooks: %w", err) } return streamio.NewReader(func() ([]byte, error) { @@ -94,7 +94,7 @@ func (rr *remoteRepository) CreateBundle(ctx context.Context, out io.Writer, pat repoClient := rr.newRepoClient() stream, err := repoClient.CreateBundleFromRefList(ctx) if err != nil { - return err + return fmt.Errorf("remote repository: create bundle: %w", err) } c := chunk.New(&createBundleFromRefListSender{ stream: stream, @@ -106,7 +106,7 @@ func (rr *remoteRepository) CreateBundle(ctx context.Context, out io.Writer, pat if errors.Is(err, io.EOF) { break } else if err != nil { - return err + return fmt.Errorf("remote repository: create bundle: %w", err) } line = bytes.TrimSuffix(line, []byte("\n")) @@ -115,14 +115,14 @@ func (rr *remoteRepository) CreateBundle(ctx context.Context, out io.Writer, pat Repository: rr.repo, Patterns: [][]byte{line}, }); err != nil { - return err + return fmt.Errorf("remote repository: create bundle: %w", err) } } if err := c.Flush(); err != nil { - return err + return fmt.Errorf("remote repository: create bundle: %w", err) } if err := stream.CloseSend(); err != nil { - return err + return fmt.Errorf("remote repository: create bundle: %w", err) } bundle := streamio.NewReader(func() ([]byte, error) { @@ -134,7 +134,7 @@ func (rr *remoteRepository) CreateBundle(ctx context.Context, out io.Writer, pat }) if _, err := io.Copy(out, bundle); err != nil { - return err + return fmt.Errorf("remote repository: create bundle: %w", err) } return nil |