[pbs-devel] applied: [PATCH proxmox-backup v2] client/pull: log snapshots that are skipped because of time
Dietmar Maurer
dietmar at proxmox.com
Mon Jun 7 10:51:50 CEST 2021
applied
> On 06/07/2021 10:30 AM Dominik Csapak <d.csapak at proxmox.com> wrote:
>
>
> we skip snapshots that are older than the newest snapshot of the group in
> the target datastore, log it so the user can know why it is not synced
>
> Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
> ---
> changes from v1:
> * condense display trait by
> - omit 0 case (we check fot it anyway)
> - combine other cases by simplifying language (drop 'that is/are',
> change to 'snapshot(s)')
>
> src/client/pull.rs | 57 ++++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 57 insertions(+)
>
> diff --git a/src/client/pull.rs b/src/client/pull.rs
> index 95720973..1ee0e0d1 100644
> --- a/src/client/pull.rs
> +++ b/src/client/pull.rs
> @@ -14,6 +14,7 @@ use crate::{
> backup::*,
> client::*,
> server::WorkerTask,
> + task_log,
> tools::{compute_file_csum, ParallelHandler},
> };
> use proxmox::api::error::{HttpError, StatusCode};
> @@ -443,6 +444,51 @@ pub async fn pull_snapshot_from(
> Ok(())
> }
>
> +struct SkipInfo {
> + oldest: i64,
> + newest: i64,
> + count: u64,
> +}
> +
> +impl SkipInfo {
> + fn update(&mut self, backup_time: i64) {
> + self.count += 1;
> +
> + if backup_time < self.oldest {
> + self.oldest = backup_time;
> + }
> +
> + if backup_time > self.newest {
> + self.newest = backup_time;
> + }
> + }
> +
> + fn affected(&self) -> Result<String, Error> {
> + match self.count {
> + 0 => Ok(String::new()),
> + 1 => proxmox::tools::time::epoch_to_rfc3339_utc(self.oldest),
> + _ => {
> + Ok(format!(
> + "{} .. {}",
> + proxmox::tools::time::epoch_to_rfc3339_utc(self.oldest)?,
> + proxmox::tools::time::epoch_to_rfc3339_utc(self.newest)?,
> + ))
> + }
> + }
> + }
> +}
> +
> +impl std::fmt::Display for SkipInfo {
> + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
> + write!(
> + f,
> + "skipped: {} snapshot(s) ({}) older than the newest local snapshot",
> + self.count,
> + self.affected().map_err(|_| std::fmt::Error)?
> + )
> + }
> +}
> +
> pub async fn pull_group(
> worker: &WorkerTask,
> client: &HttpClient,
> @@ -477,6 +523,12 @@ pub async fn pull_group(
>
> progress.group_snapshots = list.len() as u64;
>
> + let mut skip_info = SkipInfo {
> + oldest: i64::MAX,
> + newest: i64::MIN,
> + count: 0,
> + };
> +
> for (pos, item) in list.into_iter().enumerate() {
> let snapshot = BackupDir::new(item.backup_type, item.backup_id, item.backup_time)?;
>
> @@ -495,6 +547,7 @@ pub async fn pull_group(
>
> if let Some(last_sync_time) = last_sync {
> if last_sync_time > backup_time {
> + skip_info.update(backup_time);
> continue;
> }
> }
> @@ -552,6 +605,10 @@ pub async fn pull_group(
> }
> }
>
> + if skip_info.count > 0 {
> + task_log!(worker, "{}", skip_info);
> + }
> +
> Ok(())
> }
>
> --
> 2.20.1
>
>
>
> _______________________________________________
> pbs-devel mailing list
> pbs-devel at lists.proxmox.com
> https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel
More information about the pbs-devel
mailing list