Skip to content

Commit aad794a

Browse files
authored
Merge branch 'main' into dependabot/go_modules/github.com/moby/spdystream-0.5.1
2 parents ac1f6e7 + a75775e commit aad794a

8 files changed

Lines changed: 1157 additions & 188 deletions

File tree

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Fix issue #9723, extend Unified Repo Interface to support block uploader

pkg/repository/udmrepo/kopialib/lib_repo.go

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -388,9 +388,9 @@ func (kr *kopiaRepository) Close(ctx context.Context) error {
388388
return nil
389389
}
390390

391-
func (kr *kopiaRepository) NewObjectWriter(ctx context.Context, opt udmrepo.ObjectWriteOptions) udmrepo.ObjectWriter {
391+
func (kr *kopiaRepository) NewObjectWriter(ctx context.Context, opt udmrepo.ObjectWriteOptions) (udmrepo.ObjectWriter, error) {
392392
if kr.rawWriter == nil {
393-
return nil
393+
return nil, errors.New("repo writer is closed or not open")
394394
}
395395

396396
writer := kr.rawWriter.NewObjectWriter(kopia.SetupKopiaLog(ctx, kr.logger), object.WriterOptions{
@@ -402,12 +402,22 @@ func (kr *kopiaRepository) NewObjectWriter(ctx context.Context, opt udmrepo.Obje
402402
})
403403

404404
if writer == nil {
405-
return nil
405+
return nil, errors.Errorf("error creating writer for object %s", opt.Description)
406406
}
407407

408408
return &kopiaObjectWriter{
409409
rawWriter: writer,
410-
}
410+
}, nil
411+
}
412+
413+
// TODO add implementation in following PRs
414+
func (kr *kopiaRepository) WriteMetadata(ctx context.Context, meta *udmrepo.Metadata, opt udmrepo.ObjectWriteOptions) (udmrepo.ID, error) {
415+
return "", errors.New("not supported")
416+
}
417+
418+
// TODO add implementation in following PRs
419+
func (kr *kopiaRepository) ReadMetadata(ctx context.Context, id udmrepo.ID) (*udmrepo.Metadata, error) {
420+
return nil, errors.New("not supported")
411421
}
412422

413423
func (kr *kopiaRepository) PutManifest(ctx context.Context, manifest udmrepo.RepoManifest) (udmrepo.ID, error) {
@@ -436,6 +446,21 @@ func (kr *kopiaRepository) DeleteManifest(ctx context.Context, id udmrepo.ID) er
436446
return nil
437447
}
438448

449+
// TODO add implementation in following PRs
450+
func (kr *kopiaRepository) SaveSnapshot(ctx context.Context, snap udmrepo.Snapshot) (udmrepo.ID, error) {
451+
return "", errors.New("not supported")
452+
}
453+
454+
// TODO add implementation in following PRs
455+
func (kr *kopiaRepository) GetSnapshot(ctx context.Context, id udmrepo.ID) (udmrepo.Snapshot, error) {
456+
return udmrepo.Snapshot{}, errors.New("not supported")
457+
}
458+
459+
// TODO add implementation in following PRs
460+
func (kr *kopiaRepository) DeleteSnapshot(ctx context.Context, id udmrepo.ID) error {
461+
return errors.New("not supported")
462+
}
463+
439464
func (kr *kopiaRepository) Flush(ctx context.Context) error {
440465
if kr.rawWriter == nil {
441466
return errors.New("repo writer is closed or not open")
@@ -546,8 +571,9 @@ func (kow *kopiaObjectWriter) Write(p []byte) (int, error) {
546571
return kow.rawWriter.Write(p)
547572
}
548573

549-
func (kow *kopiaObjectWriter) Seek(offset int64, whence int) (int64, error) {
550-
return -1, errors.New("not supported")
574+
// TODO add implementation in following PRs
575+
func (kow *kopiaObjectWriter) WriteAt(p []byte, offset int64) (int, error) {
576+
return 0, errors.New("not supported")
551577
}
552578

553579
func (kow *kopiaObjectWriter) Checkpoint() (udmrepo.ID, error) {

pkg/repository/udmrepo/kopialib/lib_repo_test.go

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -663,13 +663,16 @@ func TestNewObjectWriter(t *testing.T) {
663663
rawWriter *repomocks.MockRepositoryWriter
664664
rawWriterRet object.Writer
665665
expectedRet udmrepo.ObjectWriter
666+
expectedErr string
666667
}{
667668
{
668-
name: "raw writer is nil",
669+
name: "raw writer is nil",
670+
expectedErr: "repo writer is closed or not open",
669671
},
670672
{
671-
name: "new object writer fail",
672-
rawWriter: repomocks.NewMockRepositoryWriter(t),
673+
name: "new object writer fail",
674+
rawWriter: repomocks.NewMockRepositoryWriter(t),
675+
expectedErr: "error creating writer for object ",
673676
},
674677
{
675678
name: "succeed",
@@ -688,9 +691,14 @@ func TestNewObjectWriter(t *testing.T) {
688691
kr.rawWriter = tc.rawWriter
689692
}
690693

691-
ret := kr.NewObjectWriter(t.Context(), udmrepo.ObjectWriteOptions{})
694+
ret, err := kr.NewObjectWriter(t.Context(), udmrepo.ObjectWriteOptions{})
692695

693-
assert.Equal(t, tc.expectedRet, ret)
696+
if tc.expectedErr == "" {
697+
require.NoError(t, err)
698+
require.Equal(t, tc.expectedRet, ret)
699+
} else {
700+
require.EqualError(t, err, tc.expectedErr)
701+
}
694702
})
695703
}
696704
}

0 commit comments

Comments
 (0)