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,