src/backup/prune.rs: add new helper keeps_something()
This commit is contained in:
parent
4bf0cc3b41
commit
9e3f008804
|
@ -294,26 +294,6 @@ fn prune(
|
|||
|
||||
let datastore = DataStore::lookup_datastore(store)?;
|
||||
|
||||
let mut keep_all = true;
|
||||
|
||||
for opt in &["keep-last", "keep-daily", "keep-weekly", "keep-weekly", "keep-yearly"] {
|
||||
if !param[opt].is_null() {
|
||||
keep_all = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
let worker = WorkerTask::new("prune", Some(store.to_owned()), "root@pam", true)?;
|
||||
let result = try_block! {
|
||||
if keep_all {
|
||||
worker.log("No prune selection - keeping all files.");
|
||||
return Ok(());
|
||||
} else {
|
||||
worker.log(format!("Starting prune on store {}", store));
|
||||
}
|
||||
|
||||
let list = group.list_backups(&datastore.base_path())?;
|
||||
|
||||
let prune_options = PruneOptions {
|
||||
keep_last: param["keep-last"].as_u64(),
|
||||
keep_daily: param["keep-daily"].as_u64(),
|
||||
|
@ -322,6 +302,17 @@ fn prune(
|
|||
keep_yearly: param["keep-yearly"].as_u64(),
|
||||
};
|
||||
|
||||
let worker = WorkerTask::new("prune", Some(store.to_owned()), "root@pam", true)?;
|
||||
let result = try_block! {
|
||||
if !prune_options.keeps_something() {
|
||||
worker.log("No prune selection - keeping all files.");
|
||||
return Ok(());
|
||||
} else {
|
||||
worker.log(format!("Starting prune on store {}", store));
|
||||
}
|
||||
|
||||
let list = group.list_backups(&datastore.base_path())?;
|
||||
|
||||
let mut prune_info = compute_prune_info(list, &prune_options)?;
|
||||
|
||||
prune_info.reverse(); // delete older snapshots first
|
||||
|
|
|
@ -113,6 +113,16 @@ impl PruneOptions {
|
|||
self.keep_yearly = value;
|
||||
self
|
||||
}
|
||||
|
||||
pub fn keeps_something(&self) -> bool {
|
||||
let mut keep_something = false;
|
||||
if let Some(count) = self.keep_last { if count > 0 { keep_something = true; } }
|
||||
if let Some(count) = self.keep_daily { if count > 0 { keep_something = true; } }
|
||||
if let Some(count) = self.keep_weekly { if count > 0 { keep_something = true; } }
|
||||
if let Some(count) = self.keep_monthly { if count > 0 { keep_something = true; } }
|
||||
if let Some(count) = self.keep_yearly { if count > 0 { keep_something = true; } }
|
||||
keep_something
|
||||
}
|
||||
}
|
||||
|
||||
pub fn compute_prune_info(
|
||||
|
|
Loading…
Reference in New Issue