[pbs-devel] [PATCH proxmox/proxmox-backup 0/7] trigger sync jobs on mount

Hannes Laimer h.laimer at proxmox.com
Fri Feb 28 09:22:23 CET 2025



On 2/4/25 15:54, Christian Ebner wrote:
> On 1/16/25 07:45, Hannes Laimer wrote:
>> Sync jobs now have a run-on-mount flag, that, if set, runs the job 
>> whenever
>> a relevant removable datastore is mounted.
>>
>>
>> * proxmox:
>> Hannes Laimer (1):
>>    rest-server: add function that returns a join handle for spawn
>>
>>   proxmox-rest-server/src/worker_task.rs | 21 +++++++++++++++++++--
>>   1 file changed, 19 insertions(+), 2 deletions(-)
>>
>> * proxmox-backup:
>> Hannes Laimer (6):
>>    api types: add run-on-mount flag to SyncJobConfig
>>    api: admin: run configured sync jobs when a datastore is mounted
>>    api: admin: trigger sync jobs only on datastore mount
>>    bin: manager: run uuid_mount/mount tasks on the proxy
>>    ui: add run-on-mount checkbox to SyncJob form
>>    ui: add task title for triggering sync jobs
>>
>>   pbs-api-types/src/jobs.rs                   |  3 +
>>   src/api2/admin/datastore.rs                 | 96 +++++++++++++++++++--
>>   src/api2/admin/sync.rs                      |  2 +-
>>   src/bin/proxmox_backup_manager/datastore.rs | 42 +++++----
>>   src/server/sync.rs                          |  7 +-
>>   www/Utils.js                                |  1 +
>>   www/window/SyncJobEdit.js                   | 23 ++++-
>>   7 files changed, 147 insertions(+), 27 deletions(-)
>>
> 
> High level comments:
> As mentioned in the comments to patch 3, decoupling the mount logic from 
> the sync job logic would be desirable for better maintainability and 
> possible future extension to other jobs such as prune, verify, garbage 
> collection, ecc.
> 
> The run on mount flag should be an optional parameter of the sync job 
> config, as otherwise per-existing configs are not valid anymore.
> Also, clearing the schedule for the sync jobs when the run on mount flag 
> is set is not really necessary in my opinion, as a sync job may be 
> configured just fine with both.
> 
> Further, this still needs a
> ```
> diff --git a/src/api2/config/sync.rs b/src/api2/config/sync.rs
> index a8ea93465..f356bc588 100644
> --- a/src/api2/config/sync.rs
> +++ b/src/api2/config/sync.rs
> @@ -666,6 +666,7 @@ acl:1:/remote/remote1/ 
> remotestore1:write at pbs:RemoteSyncOperator
>           limit: pbs_api_types::RateLimitConfig::default(), // no limit
>           transfer_last: None,
>           sync_direction: None, // use default
> +        run_on_mount: false,
>       };
> 
>       // should work without ACLs
> ```
> for the tests to build and pass successfully.

Thanks a lot for taking a look and the feedback!




More information about the pbs-devel mailing list