[pbs-devel] [PATCH proxmox-backup 1/3] api: syncjob: correctly update/delete 'unmount-on-done' field

Robert Obkircher r.obkircher at proxmox.com
Wed Oct 29 14:24:01 CET 2025


On 10/14/25 13:53, Hannes Laimer wrote:
> Signed-off-by: Hannes Laimer <h.laimer at proxmox.com>
> ---
>   src/api2/config/sync.rs | 8 ++++++++
>   1 file changed, 8 insertions(+)
>
> diff --git a/src/api2/config/sync.rs b/src/api2/config/sync.rs
> index 358409b5..ab68391c 100644
> --- a/src/api2/config/sync.rs
> +++ b/src/api2/config/sync.rs
> @@ -341,6 +341,8 @@ pub enum DeletableProperty {
>       VerifiedOnly,
>       /// Delete the run_on_mount property,
>       RunOnMount,
> +    /// Delete the unmount_on_done property,
> +    UnmountOnDone,
>       /// Delete the sync_direction property,
>       SyncDirection,
>   }
> @@ -463,6 +465,9 @@ pub fn update_sync_job(
>                   DeletableProperty::RunOnMount => {
>                       data.run_on_mount = None;
>                   }
> +                DeletableProperty::UnmountOnDone => {
> +                    data.unmount_on_done = None;
> +                }
>                   DeletableProperty::SyncDirection => {
>                       data.sync_direction = None;
>                   }
> @@ -515,6 +520,9 @@ pub fn update_sync_job(
>       if let Some(run_on_mount) = update.run_on_mount {
>           data.run_on_mount = Some(run_on_mount);
>       }
> +    if let Some(unmount_on_done) = update.unmount_on_done {
> +        data.unmount_on_done = Some(unmount_on_done);
> +    }
>       if let Some(sync_direction) = update.sync_direction {
>           data.sync_direction = Some(sync_direction);
>       }
Make deb failed with an error in this file:

error[E0063]: missing field `unmount_on_done` in initializer of 
`SyncJobConfig`
    --> src/api2/config/sync.rs:684:19
     |
684 |     let mut job = SyncJobConfig {
     |                   ^^^^^^^^^^^^^ missing `unmount_on_done`


I added "unmount_on_done: None" and performed the following tests:
- create local and removable datastore
- create pull sync job with "run on mount" and "unmount when done"
- detach/reattach disk
     - ok, got sync email and was unmounted
- disabled unmount when done
- detach/reattach disk
     - ok, got sync email, remained mounted
- enabled "unmount when done" again
- manually start sync job with "run now"
      - ok, got sync email
      - remained mounted as explained by the cover letter. As a user 
this might be confusing.
- created 3 more sync jobs, all with unmount when done
     - ok, got 4 emails and was unmounted

Tested-by: Robert Obkircher <r.obkircher at proxmox.com>





More information about the pbs-devel mailing list