mirror of
https://github.com/vmware-tanzu/velero.git
synced 2026-06-08 15:22:47 +00:00
add incremental aware object writer
Signed-off-by: Lyndon-Li <lyonghui@vmware.com>
This commit is contained in:
1
changelogs/unreleased/9845-Lyndon-Li
Normal file
1
changelogs/unreleased/9845-Lyndon-Li
Normal file
@@ -0,0 +1 @@
|
||||
Fix issue #9823, add incremental ware object writer for block data mover
|
||||
@@ -22,7 +22,6 @@ import (
|
||||
"io"
|
||||
"os"
|
||||
"strings"
|
||||
"sync"
|
||||
"sync/atomic"
|
||||
"time"
|
||||
|
||||
@@ -84,8 +83,6 @@ type kopiaObjectWriterEx struct {
|
||||
ctx context.Context
|
||||
rawRepoWriter repo.RepositoryWriter
|
||||
parentEntries []object.IndirectObjectEntry
|
||||
entries []object.IndirectObjectEntry
|
||||
entryLock sync.Mutex
|
||||
blockSize int64
|
||||
description string
|
||||
compressor compression.Name
|
||||
@@ -855,12 +852,12 @@ func (kow *kopiaObjectWriter) Close() error {
|
||||
|
||||
// TODO add implementation in following PRs
|
||||
func (kow *kopiaObjectWriterEx) Write(p []byte) (int, error) {
|
||||
return 0, nil
|
||||
return 0, errors.New("not implemented")
|
||||
}
|
||||
|
||||
// TODO add implementation in following PRs
|
||||
func (kow *kopiaObjectWriterEx) WriteAt(p []byte, offset int64) (int, error) {
|
||||
return 0, nil
|
||||
return 0, errors.New("not implemented")
|
||||
}
|
||||
|
||||
func (kow *kopiaObjectWriterEx) Checkpoint() (udmrepo.ID, error) {
|
||||
@@ -869,12 +866,12 @@ func (kow *kopiaObjectWriterEx) Checkpoint() (udmrepo.ID, error) {
|
||||
|
||||
// TODO add implementation in following PRs
|
||||
func (kow *kopiaObjectWriterEx) Result() (udmrepo.ID, error) {
|
||||
return udmrepo.ID(""), nil
|
||||
return udmrepo.ID(""), errors.New("not implemented")
|
||||
}
|
||||
|
||||
// TODO add implementation in following PRs
|
||||
func (kow *kopiaObjectWriterEx) Close() error {
|
||||
return nil
|
||||
return errors.New("not implemented")
|
||||
}
|
||||
|
||||
// getCompressorForObject returns the compressor for an object, at present, we don't support compression
|
||||
|
||||
@@ -133,7 +133,7 @@ func TestGetFlattenedEntries(t *testing.T) {
|
||||
kr := &kopiaRepository{logger: velerotest.NewLogger()}
|
||||
rawID := object.ID{}
|
||||
_, err := kr.getFlattenedEntries(context.Background(), rawID)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
assert.Contains(t, err.Error(), "object is not an indirect object")
|
||||
}
|
||||
|
||||
@@ -178,6 +178,14 @@ func TestNewObjectWriterEx(t *testing.T) {
|
||||
rawWriter: repomocks.NewMockRepositoryWriter(t),
|
||||
expectedErr: "parent object is only supported for block mode",
|
||||
},
|
||||
{
|
||||
name: "block mode success with async writes",
|
||||
opt: udmrepo.ObjectWriteOptions{
|
||||
AccessMode: udmrepo.ObjectDataAccessModeBlock,
|
||||
AsyncWrites: 4,
|
||||
},
|
||||
rawWriter: repomocks.NewMockRepositoryWriter(t),
|
||||
},
|
||||
}
|
||||
|
||||
for _, tc := range testCases {
|
||||
|
||||
Reference in New Issue
Block a user