refactor: Introduce config struct for operations

This commit is contained in:
Felicitas Pojtinger
2021-12-15 01:33:01 +01:00
parent 1ea34eb02a
commit 479def3d80
12 changed files with 138 additions and 155 deletions
+14 -16
View File
@@ -37,13 +37,13 @@ func (o *Operations) Archive(
o.diskOperationLock.Lock()
defer o.diskOperationLock.Unlock()
writer, err := o.getWriter()
writer, err := o.backend.GetWriter()
if err != nil {
return []*tar.Header{}, err
}
dirty := false
tw, cleanup, err := tarext.NewTapeWriter(writer.Drive, writer.DriveIsRegular, o.recordSize)
tw, cleanup, err := tarext.NewTapeWriter(writer.Drive, writer.DriveIsRegular, o.pipes.RecordSize)
if err != nil {
return []*tar.Header{}, err
}
@@ -51,7 +51,7 @@ func (o *Operations) Archive(
lastIndexedRecord := int64(0)
lastIndexedBlock := int64(0)
if !overwrite {
lastIndexedRecord, lastIndexedBlock, err = o.metadataPersister.GetLastIndexedRecordAndBlock(context.Background(), o.recordSize)
lastIndexedRecord, lastIndexedBlock, err = o.metadata.Metadata.GetLastIndexedRecordAndBlock(context.Background(), o.pipes.RecordSize)
if err != nil {
return []*tar.Header{}, err
}
@@ -103,7 +103,7 @@ func (o *Operations) Archive(
o.pipes.Compression,
compressionLevel,
writer.DriveIsRegular,
o.recordSize,
o.pipes.RecordSize,
)
if err != nil {
return err
@@ -124,7 +124,7 @@ func (o *Operations) Archive(
return err
}
} else {
buf := make([]byte, mtio.BlockSize*o.recordSize)
buf := make([]byte, mtio.BlockSize*o.pipes.RecordSize)
if _, err := io.CopyBuffer(compressor, signer, buf); err != nil {
return err
}
@@ -207,7 +207,7 @@ func (o *Operations) Archive(
o.pipes.Compression,
compressionLevel,
writer.DriveIsRegular,
o.recordSize,
o.pipes.RecordSize,
)
if err != nil {
return err
@@ -223,7 +223,7 @@ func (o *Operations) Archive(
return err
}
} else {
buf := make([]byte, mtio.BlockSize*o.recordSize)
buf := make([]byte, mtio.BlockSize*o.pipes.RecordSize)
if _, err := io.CopyBuffer(compressor, file, buf); err != nil {
return err
}
@@ -259,32 +259,30 @@ func (o *Operations) Archive(
index = 0 // If we are starting fresh, index from start
}
if err := o.closeWriter(); err != nil {
if err := o.backend.CloseWriter(); err != nil {
return []*tar.Header{}, err
}
reader, err := o.getReader()
reader, err := o.backend.GetReader()
if err != nil {
return []*tar.Header{}, err
}
defer o.closeReader()
defer o.backend.CloseReader()
drive, err := o.getDrive()
drive, err := o.backend.GetDrive()
if err != nil {
return []*tar.Header{}, err
}
defer o.closeDrive()
defer o.backend.CloseDrive()
return hdrs, recovery.Index(
reader,
drive,
config.MetadataConfig{
Metadata: o.metadataPersister,
},
o.metadata,
o.pipes,
o.crypto,
o.recordSize,
o.pipes.RecordSize,
int(lastIndexedRecord),
int(lastIndexedBlock),
overwrite,