[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