refactor: Set RecordSize of PipeConfig instead of passing it as a parameter

This commit is contained in:
Felicitas Pojtinger
2022-01-09 03:12:44 +01:00
parent f1f338734b
commit ccf02168d4
12 changed files with 36 additions and 46 deletions

View File

@@ -79,6 +79,7 @@ var recoveryFetchCmd = &cobra.Command{
Compression: viper.GetString(compressionFlag),
Encryption: viper.GetString(encryptionFlag),
Signature: viper.GetString(signatureFlag),
RecordSize: viper.GetInt(recordSizeFlag),
},
config.CryptoConfig{
Recipient: recipient,
@@ -102,7 +103,6 @@ var recoveryFetchCmd = &cobra.Command{
return os.MkdirAll(path, mode)
},
viper.GetInt(recordSizeFlag),
viper.GetInt(recordFlag),
viper.GetInt(blockFlag),
viper.GetString(toFlag),

View File

@@ -89,7 +89,6 @@ var recoveryIndexCmd = &cobra.Command{
Password: viper.GetString(passwordFlag),
},
viper.GetInt(recordSizeFlag),
viper.GetInt(recordFlag),
viper.GetInt(blockFlag),
viper.GetBool(overwriteFlag),

View File

@@ -64,6 +64,7 @@ var recoveryQueryCmd = &cobra.Command{
Compression: viper.GetString(compressionFlag),
Encryption: viper.GetString(encryptionFlag),
Signature: viper.GetString(signatureFlag),
RecordSize: viper.GetInt(recordSizeFlag),
},
config.CryptoConfig{
Recipient: recipient,
@@ -71,7 +72,6 @@ var recoveryQueryCmd = &cobra.Command{
Password: viper.GetString(passwordFlag),
},
viper.GetInt(recordSizeFlag),
viper.GetInt(recordFlag),
viper.GetInt(blockFlag),

View File

@@ -220,7 +220,6 @@ func (f *STFS) Initialize(rootProposal string, rootPerm os.FileMode) (root strin
f.readOps.GetPipes(),
f.readOps.GetCrypto(),
f.readOps.GetPipes().RecordSize,
0,
0,
true,

View File

@@ -274,7 +274,6 @@ func (o *Operations) Archive(
o.pipes,
o.crypto,
o.pipes.RecordSize,
int(lastIndexedRecord),
int(lastIndexedBlock),
overwrite,

View File

@@ -122,7 +122,6 @@ func (o *Operations) Delete(name string) error {
o.pipes,
o.crypto,
o.pipes.RecordSize,
int(lastIndexedRecord),
int(lastIndexedBlock),
false,

View File

@@ -141,7 +141,6 @@ func (o *Operations) Move(from string, to string) error {
o.pipes,
o.crypto,
o.pipes.RecordSize,
int(lastIndexedRecord),
int(lastIndexedBlock),
false,

View File

@@ -97,7 +97,6 @@ func (o *Operations) Restore(
getDst,
mkdirAll,
o.pipes.RecordSize,
int(dbhdr.Record),
int(dbhdr.Block),
dst,

View File

@@ -302,7 +302,6 @@ func (o *Operations) Update(
o.pipes,
o.crypto,
o.pipes.RecordSize,
int(lastIndexedRecord),
int(lastIndexedBlock),
false,

View File

@@ -26,7 +26,6 @@ func Fetch(
getDst func(path string, mode fs.FileMode) (io.WriteCloser, error),
mkdirAll func(path string, mode fs.FileMode) error,
recordSize int,
record int,
block int,
to string,
@@ -39,7 +38,7 @@ func Fetch(
var tr *tar.Reader
if reader.DriveIsRegular {
// Seek to record and block
if _, err := reader.Drive.Seek(int64((recordSize*mtio.BlockSize*record)+block*mtio.BlockSize), io.SeekStart); err != nil {
if _, err := reader.Drive.Seek(int64((pipes.RecordSize*mtio.BlockSize*record)+block*mtio.BlockSize), io.SeekStart); err != nil {
return err
}
@@ -51,7 +50,7 @@ func Fetch(
}
// Seek to block
br := bufio.NewReaderSize(drive.Drive, mtio.BlockSize*recordSize)
br := bufio.NewReaderSize(drive.Drive, mtio.BlockSize*pipes.RecordSize)
if _, err := br.Read(make([]byte, block*mtio.BlockSize)); err != nil {
return err
}

View File

@@ -26,7 +26,6 @@ func Index(
pipes config.PipeConfig,
crypto config.CryptoConfig,
recordSize int,
record int,
block int,
overwrite bool,
@@ -51,7 +50,7 @@ func Index(
if reader.DriveIsRegular {
// Seek to record and block
if _, err := reader.Drive.Seek(int64((recordSize*mtio.BlockSize*record)+block*mtio.BlockSize), 0); err != nil {
if _, err := reader.Drive.Seek(int64((pipes.RecordSize*mtio.BlockSize*record)+block*mtio.BlockSize), 0); err != nil {
return err
}
@@ -71,19 +70,19 @@ func Index(
}
nextTotalBlocks := math.Ceil(float64((curr)) / float64(mtio.BlockSize))
record = int64(nextTotalBlocks) / int64(recordSize)
block = int64(nextTotalBlocks) - (record * int64(recordSize))
record = int64(nextTotalBlocks) / int64(pipes.RecordSize)
block = int64(nextTotalBlocks) - (record * int64(pipes.RecordSize))
if block < 0 {
record--
block = int64(recordSize) - 1
} else if block >= int64(recordSize) {
block = int64(pipes.RecordSize) - 1
} else if block >= int64(pipes.RecordSize) {
record++
block = 0
}
// Seek to record and block
if _, err := reader.Drive.Seek(int64((recordSize*mtio.BlockSize*int(record))+int(block)*mtio.BlockSize), io.SeekStart); err != nil {
if _, err := reader.Drive.Seek(int64((pipes.RecordSize*mtio.BlockSize*int(record))+int(block)*mtio.BlockSize), io.SeekStart); err != nil {
return err
}
@@ -138,10 +137,10 @@ func Index(
}
nextTotalBlocks := math.Ceil(float64(curr+(currAndSize-curr)) / float64(mtio.BlockSize))
record = int64(nextTotalBlocks) / int64(recordSize)
block = int64(nextTotalBlocks) - (record * int64(recordSize))
record = int64(nextTotalBlocks) / int64(pipes.RecordSize)
block = int64(nextTotalBlocks) - (record * int64(pipes.RecordSize))
if block > int64(recordSize) {
if block > int64(pipes.RecordSize) {
record++
block = 0
}
@@ -155,7 +154,7 @@ func Index(
}
// Seek to block
br := bufio.NewReaderSize(drive.Drive, mtio.BlockSize*recordSize)
br := bufio.NewReaderSize(drive.Drive, mtio.BlockSize*pipes.RecordSize)
if _, err := br.Read(make([]byte, block*mtio.BlockSize)); err != nil {
return err
}
@@ -163,7 +162,7 @@ func Index(
record := int64(record)
block := int64(block)
curr := int64((recordSize * mtio.BlockSize * int(record)) + (int(block) * mtio.BlockSize))
curr := int64((pipes.RecordSize * mtio.BlockSize * int(record)) + (int(block) * mtio.BlockSize))
counter := &ioext.CounterReader{Reader: br, BytesRead: int(curr)}
i := 0
@@ -184,8 +183,8 @@ func Index(
}
block = 0
br = bufio.NewReaderSize(drive.Drive, mtio.BlockSize*recordSize)
curr = int64(int64(recordSize) * mtio.BlockSize * record)
br = bufio.NewReaderSize(drive.Drive, mtio.BlockSize*pipes.RecordSize)
curr = int64(int64(pipes.RecordSize) * mtio.BlockSize * record)
counter = &ioext.CounterReader{Reader: br, BytesRead: int(curr)}
tr = tar.NewReader(counter)
@@ -218,10 +217,10 @@ func Index(
currAndSize := int64(counter.BytesRead)
nextTotalBlocks := math.Ceil(float64(curr+(currAndSize-curr)) / float64(mtio.BlockSize))
record = int64(nextTotalBlocks) / int64(recordSize)
block = int64(nextTotalBlocks) - (record * int64(recordSize))
record = int64(nextTotalBlocks) / int64(pipes.RecordSize)
block = int64(nextTotalBlocks) - (record * int64(pipes.RecordSize))
if block > int64(recordSize) {
if block > int64(pipes.RecordSize) {
record++
block = 0
}

View File

@@ -20,7 +20,6 @@ func Query(
pipes config.PipeConfig,
crypto config.CryptoConfig,
recordSize int,
record int,
block int,
@@ -30,7 +29,7 @@ func Query(
if state.DriveIsRegular {
// Seek to record and block
if _, err := state.Drive.Seek(int64((recordSize*mtio.BlockSize*record)+block*mtio.BlockSize), 0); err != nil {
if _, err := state.Drive.Seek(int64((pipes.RecordSize*mtio.BlockSize*record)+block*mtio.BlockSize), 0); err != nil {
return []*tar.Header{}, err
}
@@ -49,19 +48,19 @@ func Query(
}
nextTotalBlocks := math.Ceil(float64((curr)) / float64(mtio.BlockSize))
record = int64(nextTotalBlocks) / int64(recordSize)
block = int64(nextTotalBlocks) - (record * int64(recordSize))
record = int64(nextTotalBlocks) / int64(pipes.RecordSize)
block = int64(nextTotalBlocks) - (record * int64(pipes.RecordSize))
if block < 0 {
record--
block = int64(recordSize) - 1
} else if block >= int64(recordSize) {
block = int64(pipes.RecordSize) - 1
} else if block >= int64(pipes.RecordSize) {
record++
block = 0
}
// Seek to record and block
if _, err := state.Drive.Seek(int64((recordSize*mtio.BlockSize*int(record))+int(block)*mtio.BlockSize), io.SeekStart); err != nil {
if _, err := state.Drive.Seek(int64((pipes.RecordSize*mtio.BlockSize*int(record))+int(block)*mtio.BlockSize), io.SeekStart); err != nil {
return []*tar.Header{}, err
}
@@ -122,10 +121,10 @@ func Query(
}
nextTotalBlocks := math.Ceil(float64(curr+(currAndSize-curr)) / float64(mtio.BlockSize))
record = int64(nextTotalBlocks) / int64(recordSize)
block = int64(nextTotalBlocks) - (record * int64(recordSize))
record = int64(nextTotalBlocks) / int64(pipes.RecordSize)
block = int64(nextTotalBlocks) - (record * int64(pipes.RecordSize))
if block > int64(recordSize) {
if block > int64(pipes.RecordSize) {
record++
block = 0
}
@@ -137,7 +136,7 @@ func Query(
}
// Seek to block
br := bufio.NewReaderSize(state.Drive, mtio.BlockSize*recordSize)
br := bufio.NewReaderSize(state.Drive, mtio.BlockSize*pipes.RecordSize)
if _, err := br.Read(make([]byte, block*mtio.BlockSize)); err != nil {
return []*tar.Header{}, err
}
@@ -145,7 +144,7 @@ func Query(
record := int64(record)
block := int64(block)
curr := int64((recordSize * mtio.BlockSize * int(record)) + (int(block) * mtio.BlockSize))
curr := int64((pipes.RecordSize * mtio.BlockSize * int(record)) + (int(block) * mtio.BlockSize))
counter := &ioext.CounterReader{Reader: br, BytesRead: int(curr)}
tr := tar.NewReader(counter)
@@ -165,8 +164,8 @@ func Query(
}
block = 0
br = bufio.NewReaderSize(state.Drive, mtio.BlockSize*recordSize)
curr := int64(int64(recordSize) * mtio.BlockSize * record)
br = bufio.NewReaderSize(state.Drive, mtio.BlockSize*pipes.RecordSize)
curr := int64(int64(pipes.RecordSize) * mtio.BlockSize * record)
counter := &ioext.CounterReader{Reader: br, BytesRead: int(curr)}
tr = tar.NewReader(counter)
@@ -202,10 +201,10 @@ func Query(
currAndSize := int64(counter.BytesRead)
nextTotalBlocks := math.Ceil(float64(curr+(currAndSize-curr)) / float64(mtio.BlockSize))
record = int64(nextTotalBlocks) / int64(recordSize)
block = int64(nextTotalBlocks) - (record * int64(recordSize))
record = int64(nextTotalBlocks) / int64(pipes.RecordSize)
block = int64(nextTotalBlocks) - (record * int64(pipes.RecordSize))
if block > int64(recordSize) {
if block > int64(pipes.RecordSize) {
record++
block = 0
}