From 37796ff73f19c6a3eaee6d71d8aea80ff3dc6abc Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Thu, 21 Jan 2021 17:12:01 +0100 Subject: [PATCH] tape: change code hierarchy to improve docs --- src/api2/config/changer.rs | 2 +- src/api2/config/drive.rs | 2 +- src/api2/tape/backup.rs | 4 ++-- src/api2/tape/changer.rs | 14 +++++++------ src/api2/tape/drive.rs | 22 ++++++++++----------- src/api2/tape/media.rs | 2 +- src/api2/tape/restore.rs | 6 ++++-- src/bin/proxmox-tape.rs | 2 +- src/bin/proxmox_tape/changer.rs | 6 ++++-- src/bin/proxmox_tape/drive.rs | 4 +--- src/bin/sg-tape-cmd.rs | 4 ++-- src/tape/changer/mod.rs | 5 +++++ src/tape/{ => changer}/online_status_map.rs | 10 ++++++---- src/tape/drive/linux_tape.rs | 16 +++++++-------- src/tape/drive/mam.rs | 2 +- src/tape/drive/mod.rs | 7 +++++-- src/tape/drive/virtual_tape.rs | 10 ++++++---- src/tape/inventory.rs | 2 +- src/tape/mod.rs | 9 ++------- src/tape/pool_writer.rs | 10 ++++++---- 20 files changed, 76 insertions(+), 63 deletions(-) rename src/tape/{ => changer}/online_status_map.rs (97%) diff --git a/src/api2/config/changer.rs b/src/api2/config/changer.rs index c1e8c59e..c420dda1 100644 --- a/src/api2/config/changer.rs +++ b/src/api2/config/changer.rs @@ -21,7 +21,7 @@ use crate::{ ScsiTapeChanger, LinuxTapeDrive, }, - tape::{ + tape::drive::{ linux_tape_changer_list, check_drive_path, lookup_drive, diff --git a/src/api2/config/drive.rs b/src/api2/config/drive.rs index 54601795..e48926a7 100644 --- a/src/api2/config/drive.rs +++ b/src/api2/config/drive.rs @@ -16,7 +16,7 @@ use crate::{ LinuxTapeDrive, ScsiTapeChanger, }, - tape::{ + tape::drive::{ linux_tape_device_list, check_drive_path, lookup_drive, diff --git a/src/api2/tape/backup.rs b/src/api2/tape/backup.rs index 2288a393..6aa12d56 100644 --- a/src/api2/tape/backup.rs +++ b/src/api2/tape/backup.rs @@ -37,8 +37,8 @@ use crate::{ PoolWriter, MediaPool, SnapshotReader, - media_changer, - update_changer_online_status, + drive::media_changer, + changer::update_changer_online_status, }, }; diff --git a/src/api2/tape/changer.rs b/src/api2/tape/changer.rs index 43545a66..4c1b57e9 100644 --- a/src/api2/tape/changer.rs +++ b/src/api2/tape/changer.rs @@ -17,13 +17,15 @@ use crate::{ }, tape::{ TAPE_STATUS_DIR, - ElementStatus, - OnlineStatusMap, Inventory, - linux_tape_changer_list, - mtx_status, - mtx_status_to_online_set, - mtx_transfer, + drive::linux_tape_changer_list, + changer::{ + OnlineStatusMap, + ElementStatus, + mtx_status, + mtx_status_to_online_set, + mtx_transfer, + }, }, }; diff --git a/src/api2/tape/drive.rs b/src/api2/tape/drive.rs index bdad9bb9..6e625905 100644 --- a/src/api2/tape/drive.rs +++ b/src/api2/tape/drive.rs @@ -43,24 +43,24 @@ use crate::{ server::WorkerTask, tape::{ TAPE_STATUS_DIR, - TapeDriver, MediaPool, Inventory, MediaCatalog, MediaId, - linux_tape_device_list, - open_drive, - media_changer, - required_media_changer, - update_changer_online_status, - linux_tape::{ - LinuxTapeHandle, - open_linux_tape_device, - }, - file_formats::{ + file_formats::{ MediaLabel, MediaSetLabel, }, + drive::{ + TapeDriver, + LinuxTapeHandle, + open_linux_tape_device, + linux_tape_device_list, + media_changer, + required_media_changer, + open_drive, + }, + changer::update_changer_online_status, }, }; diff --git a/src/api2/tape/media.rs b/src/api2/tape/media.rs index 9d698bc8..70af454c 100644 --- a/src/api2/tape/media.rs +++ b/src/api2/tape/media.rs @@ -33,7 +33,7 @@ use crate::{ Inventory, MediaPool, MediaCatalog, - update_online_status, + changer::update_online_status, }, }; diff --git a/src/api2/tape/restore.rs b/src/api2/tape/restore.rs index 2b4102d1..f5ec3652 100644 --- a/src/api2/tape/restore.rs +++ b/src/api2/tape/restore.rs @@ -55,10 +55,8 @@ use crate::{ MediaId, MediaCatalog, ChunkArchiveDecoder, - TapeDriver, MediaPool, Inventory, - request_and_load_media, file_formats::{ PROXMOX_BACKUP_MEDIA_LABEL_MAGIC_1_0, PROXMOX_BACKUP_SNAPSHOT_ARCHIVE_MAGIC_1_0, @@ -67,6 +65,10 @@ use crate::{ PROXMOX_BACKUP_CHUNK_ARCHIVE_MAGIC_1_0, MediaContentHeader, }, + drive::{ + TapeDriver, + request_and_load_media, + } }, }; diff --git a/src/bin/proxmox-tape.rs b/src/bin/proxmox-tape.rs index 7995977d..ae76fd7c 100644 --- a/src/bin/proxmox-tape.rs +++ b/src/bin/proxmox-tape.rs @@ -41,7 +41,7 @@ use proxmox_backup::{ media_pool::complete_pool_name, }, tape::{ - open_drive, + drive::open_drive, complete_media_label_text, complete_media_set_uuid, file_formats::{ diff --git a/src/bin/proxmox_tape/changer.rs b/src/bin/proxmox_tape/changer.rs index f9bff02b..a8dabf9c 100644 --- a/src/bin/proxmox_tape/changer.rs +++ b/src/bin/proxmox_tape/changer.rs @@ -19,8 +19,10 @@ use proxmox_backup::{ }, }, tape::{ - complete_changer_path, - media_changer, + drive::{ + media_changer, + complete_changer_path, + }, }, config::{ self, diff --git a/src/bin/proxmox_tape/drive.rs b/src/bin/proxmox_tape/drive.rs index 217b7c86..2b442adf 100644 --- a/src/bin/proxmox_tape/drive.rs +++ b/src/bin/proxmox_tape/drive.rs @@ -17,9 +17,7 @@ use proxmox_backup::{ DRIVE_NAME_SCHEMA, }, }, - tape::{ - complete_drive_path, - }, + tape::drive::complete_drive_path, config::drive::{ complete_drive_name, complete_changer_name, diff --git a/src/bin/sg-tape-cmd.rs b/src/bin/sg-tape-cmd.rs index 8621b02e..475b2cbb 100644 --- a/src/bin/sg-tape-cmd.rs +++ b/src/bin/sg-tape-cmd.rs @@ -31,8 +31,8 @@ use proxmox_backup::{ LinuxTapeDrive, }, tape::{ - TapeDriver, - linux_tape::{ + drive::{ + TapeDriver, LinuxTapeHandle, open_linux_tape_device, check_tape_is_linux_tape_device, diff --git a/src/tape/changer/mod.rs b/src/tape/changer/mod.rs index 6e92bbe2..ec1f1e31 100644 --- a/src/tape/changer/mod.rs +++ b/src/tape/changer/mod.rs @@ -1,3 +1,5 @@ +//! Media changer implementation (SCSI media changer) + mod email; pub use email::*; @@ -10,6 +12,9 @@ pub use mtx_wrapper::*; mod mtx; pub use mtx::*; +mod online_status_map; +pub use online_status_map::*; + use anyhow::{bail, Error}; /// Interface to the media changer device for a single drive diff --git a/src/tape/online_status_map.rs b/src/tape/changer/online_status_map.rs similarity index 97% rename from src/tape/online_status_map.rs rename to src/tape/changer/online_status_map.rs index 52042217..53f5fa45 100644 --- a/src/tape/online_status_map.rs +++ b/src/tape/changer/online_status_map.rs @@ -12,11 +12,13 @@ use crate::{ ScsiTapeChanger, }, tape::{ - MediaChange, Inventory, - MtxStatus, - ElementStatus, - mtx_status, + changer::{ + MediaChange, + MtxStatus, + ElementStatus, + mtx_status, + }, }, }; diff --git a/src/tape/drive/linux_tape.rs b/src/tape/drive/linux_tape.rs index 440edba3..84f1d05a 100644 --- a/src/tape/drive/linux_tape.rs +++ b/src/tape/drive/linux_tape.rs @@ -26,17 +26,17 @@ use crate::{ tape::{ TapeRead, TapeWrite, - TapeAlertFlags, - Lp17VolumeStatistics, - read_mam_attributes, - mam_extract_media_usage, - read_tape_alert_flags, - read_volume_statistics, - set_encryption, drive::{ + linux_mtio::*, LinuxTapeDrive, TapeDriver, - linux_mtio::*, + TapeAlertFlags, + Lp17VolumeStatistics, + read_mam_attributes, + mam_extract_media_usage, + read_tape_alert_flags, + read_volume_statistics, + set_encryption, }, file_formats::{ PROXMOX_TAPE_BLOCK_SIZE, diff --git a/src/tape/drive/mam.rs b/src/tape/drive/mam.rs index 5af4297e..ae3da41a 100644 --- a/src/tape/drive/mam.rs +++ b/src/tape/drive/mam.rs @@ -10,7 +10,7 @@ use proxmox::tools::io::ReadExt; use crate::{ api2::types::MamAttribute, tape::{ - TapeAlertFlags, + drive::TapeAlertFlags, sgutils2::SgRaw, }, }; diff --git a/src/tape/drive/mod.rs b/src/tape/drive/mod.rs index 8f6f11da..8c6d31d0 100644 --- a/src/tape/drive/mod.rs +++ b/src/tape/drive/mod.rs @@ -1,3 +1,5 @@ +//! Tape drivers + mod virtual_tape; mod linux_mtio; @@ -10,7 +12,8 @@ pub use volume_statistics::*; mod encryption; pub use encryption::*; -pub mod linux_tape; +mod linux_tape; +pub use linux_tape::*; mod mam; pub use mam::*; @@ -44,7 +47,6 @@ use crate::{ TapeWrite, TapeRead, MediaId, - MtxMediaChanger, file_formats::{ PROXMOX_BACKUP_MEDIA_LABEL_MAGIC_1_0, PROXMOX_BACKUP_MEDIA_SET_LABEL_MAGIC_1_0, @@ -54,6 +56,7 @@ use crate::{ }, changer::{ MediaChange, + MtxMediaChanger, send_load_media_email, }, }, diff --git a/src/tape/drive/virtual_tape.rs b/src/tape/drive/virtual_tape.rs index 126c8d3a..218c4f83 100644 --- a/src/tape/drive/virtual_tape.rs +++ b/src/tape/drive/virtual_tape.rs @@ -15,10 +15,12 @@ use crate::{ tape::{ TapeWrite, TapeRead, - MtxStatus, - DriveStatus, - ElementStatus, - changer::MediaChange, + changer::{ + MediaChange, + MtxStatus, + DriveStatus, + ElementStatus, + }, drive::{ VirtualTapeDrive, TapeDriver, diff --git a/src/tape/inventory.rs b/src/tape/inventory.rs index 8babcbf5..e8855f16 100644 --- a/src/tape/inventory.rs +++ b/src/tape/inventory.rs @@ -31,12 +31,12 @@ use crate::{ }, tape::{ TAPE_STATUS_DIR, - OnlineStatusMap, MediaSet, file_formats::{ MediaLabel, MediaSetLabel, }, + changer::OnlineStatusMap, }, }; diff --git a/src/tape/mod.rs b/src/tape/mod.rs index 2729eef9..18d86d71 100644 --- a/src/tape/mod.rs +++ b/src/tape/mod.rs @@ -26,14 +26,9 @@ pub use media_set::*; mod inventory; pub use inventory::*; -mod changer; -pub use changer::*; +pub mod changer; -mod drive; -pub use drive::*; - -mod online_status_map; -pub use online_status_map::*; +pub mod drive; mod media_pool; pub use media_pool::*; diff --git a/src/tape/pool_writer.rs b/src/tape/pool_writer.rs index 075d799e..75d64366 100644 --- a/src/tape/pool_writer.rs +++ b/src/tape/pool_writer.rs @@ -15,7 +15,6 @@ use crate::{ TAPE_STATUS_DIR, MAX_CHUNK_ARCHIVE_SIZE, COMMIT_BLOCK_SIZE, - TapeDriver, TapeWrite, ChunkArchiveWriter, SnapshotReader, @@ -25,10 +24,13 @@ use crate::{ MediaCatalog, MediaSetCatalog, tape_write_snapshot_archive, - request_and_load_media, - tape_alert_flags_critical, - media_changer, file_formats::MediaSetLabel, + drive::{ + TapeDriver, + request_and_load_media, + tape_alert_flags_critical, + media_changer, + }, }, config::tape_encryption_keys::load_key_configs, };