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 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 {
|
let prune_options = PruneOptions {
|
||||||
keep_last: param["keep-last"].as_u64(),
|
keep_last: param["keep-last"].as_u64(),
|
||||||
keep_daily: param["keep-daily"].as_u64(),
|
keep_daily: param["keep-daily"].as_u64(),
|
||||||
@ -322,6 +302,17 @@ fn prune(
|
|||||||
keep_yearly: param["keep-yearly"].as_u64(),
|
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)?;
|
let mut prune_info = compute_prune_info(list, &prune_options)?;
|
||||||
|
|
||||||
prune_info.reverse(); // delete older snapshots first
|
prune_info.reverse(); // delete older snapshots first
|
||||||
|
@ -113,6 +113,16 @@ impl PruneOptions {
|
|||||||
self.keep_yearly = value;
|
self.keep_yearly = value;
|
||||||
self
|
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(
|
pub fn compute_prune_info(
|
||||||
|
Loading…
Reference in New Issue
Block a user