From dc4c09faae751c279ded91b7bdae396ffaa4a7d1 Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Fri, 1 Mar 2019 12:43:11 +0100 Subject: [PATCH] src/backup/datastore.rs: split BackupDir --- src/api2/admin/datastore.rs | 6 ++--- src/api2/admin/datastore/catar.rs | 6 +++-- src/backup/datastore.rs | 37 +++++++++++++++++++++++-------- 3 files changed, 35 insertions(+), 14 deletions(-) diff --git a/src/api2/admin/datastore.rs b/src/api2/admin/datastore.rs index 6eb0bfad..041597fd 100644 --- a/src/api2/admin/datastore.rs +++ b/src/api2/admin/datastore.rs @@ -22,7 +22,7 @@ fn group_backups(backup_list: Vec) -> HashMap, } -/// Uniquely identify backups (relative to data store) +/// Group Backups #[derive(Debug)] -pub struct BackupDir { +pub struct BackupGroup { /// Type of backup pub backup_type: String, /// Unique (for this type) ID pub backup_id: String, +} + +impl BackupGroup { + + pub fn group_path(&self) -> PathBuf { + + let mut relative_path = PathBuf::new(); + + relative_path.push(&self.backup_type); + + relative_path.push(&self.backup_id); + + relative_path + } +} + +/// Uniquely identify a Backup (relative to data store) +#[derive(Debug)] +pub struct BackupDir { + /// Backup group + pub group: BackupGroup, /// Backup timestamp pub backup_time: DateTime, } @@ -41,11 +62,7 @@ impl BackupDir { pub fn relative_path(&self) -> PathBuf { - let mut relative_path = PathBuf::new(); - - relative_path.push(&self.backup_type); - - relative_path.push(&self.backup_id); + let mut relative_path = self.group.group_path(); let date_str = self.backup_time.format("%Y-%m-%dT%H:%M:%S").to_string(); @@ -249,8 +266,10 @@ impl DataStore { list.push(BackupInfo { backup_dir: BackupDir { - backup_type: backup_type.to_owned(), - backup_id: backup_id.to_owned(), + group: BackupGroup { + backup_type: backup_type.to_owned(), + backup_id: backup_id.to_owned(), + }, backup_time: dt, }, files,