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

Christian Ebner c.ebner at proxmox.com
Tue Feb 4 15:54:49 CET 2025


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.




More information about the pbs-devel mailing list