feat: Port tape access management to move, restore and update cmds

This commit is contained in:
Felix Pojtinger
2021-12-14 22:54:53 +01:00
parent 022cdfd402
commit c003317cde
10 changed files with 113 additions and 82 deletions
+1 -1
View File
@@ -53,7 +53,7 @@ var deleteCmd = &cobra.Command{
tm := tape.NewTapeManager(
viper.GetString(driveFlag),
viper.GetInt(recordSizeFlag),
viper.GetBool(overwriteFlag),
false,
)
ops := operations.NewOperations(
+13 -25
View File
@@ -46,36 +46,24 @@ var moveCmd = &cobra.Command{
return err
}
writer, writerIsRegular, err := tape.OpenTapeWriteOnly(
tm := tape.NewTapeManager(
viper.GetString(driveFlag),
viper.GetInt(recordSizeFlag),
false,
)
if err != nil {
return err
}
defer writer.Close()
reader, readerIsRegular, err := tape.OpenTapeReadOnly(
viper.GetString(driveFlag),
)
if err != nil {
return err
}
defer reader.Close()
return operations.Move(
config.DriveWriterConfig{
Drive: writer,
DriveIsRegular: writerIsRegular,
},
config.DriveConfig{
Drive: reader,
DriveIsRegular: readerIsRegular,
},
config.DriveReaderConfig{
Drive: reader,
DriveIsRegular: readerIsRegular,
},
ops := operations.NewOperations(
tm.GetWriter,
tm.Close,
tm.GetReader,
tm.Close,
tm.GetDrive,
tm.Close,
)
return ops.Move(
config.MetadataConfig{
Metadata: viper.GetString(metadataFlag),
},
+15 -14
View File
@@ -50,23 +50,24 @@ var restoreCmd = &cobra.Command{
return err
}
reader, readerIsRegular, err := tape.OpenTapeReadOnly(
tm := tape.NewTapeManager(
viper.GetString(driveFlag),
viper.GetInt(recordSizeFlag),
false,
)
if err != nil {
return nil
}
defer reader.Close()
return operations.Restore(
config.DriveReaderConfig{
Drive: reader,
DriveIsRegular: readerIsRegular,
},
config.DriveConfig{
Drive: reader,
DriveIsRegular: readerIsRegular,
},
ops := operations.NewOperations(
tm.GetWriter,
tm.Close,
tm.GetReader,
tm.Close,
tm.GetDrive,
tm.Close,
)
return ops.Restore(
config.MetadataConfig{
Metadata: viper.GetString(metadataFlag),
},
+13 -25
View File
@@ -53,36 +53,24 @@ var updateCmd = &cobra.Command{
return err
}
writer, writerIsRegular, err := tape.OpenTapeWriteOnly(
tm := tape.NewTapeManager(
viper.GetString(driveFlag),
viper.GetInt(recordSizeFlag),
false,
)
if err != nil {
return err
}
defer writer.Close()
reader, readerIsRegular, err := tape.OpenTapeReadOnly(
viper.GetString(driveFlag),
)
if err != nil {
return err
}
defer reader.Close()
if _, err := operations.Update(
config.DriveWriterConfig{
Drive: writer,
DriveIsRegular: writerIsRegular,
},
config.DriveConfig{
Drive: reader,
DriveIsRegular: readerIsRegular,
},
config.DriveReaderConfig{
Drive: reader,
DriveIsRegular: readerIsRegular,
},
ops := operations.NewOperations(
tm.GetWriter,
tm.Close,
tm.GetReader,
tm.Close,
tm.GetDrive,
tm.Close,
)
if _, err := ops.Update(
config.MetadataConfig{
Metadata: viper.GetString(metadataFlag),
},