diff --git a/pbs-api-types/src/jobs.rs b/pbs-api-types/src/jobs.rs index de546d5e..885b10d4 100644 --- a/pbs-api-types/src/jobs.rs +++ b/pbs-api-types/src/jobs.rs @@ -281,7 +281,7 @@ pub struct VerificationJobStatus { type: BackupNamespace, optional: true, }, - "recursion-depth": { + "max-depth": { schema: crate::NS_MAX_DEPTH_SCHEMA, optional: true, }, @@ -308,7 +308,7 @@ pub struct TapeBackupJobSetup { #[serde(skip_serializing_if = "Option::is_none", default)] pub ns: Option, #[serde(skip_serializing_if = "Option::is_none", default)] - pub recursion_depth: Option, + pub max_depth: Option, } #[api( diff --git a/src/api2/config/tape_backup_job.rs b/src/api2/config/tape_backup_job.rs index 624bfb05..6f888a73 100644 --- a/src/api2/config/tape_backup_job.rs +++ b/src/api2/config/tape_backup_job.rs @@ -134,6 +134,10 @@ pub enum DeletableProperty { NotifyUser, /// Delete the 'group_filter' property GroupFilter, + /// Delete the 'max-depth' property + MaxDepth, + /// Delete the 'ns' property + Ns, } #[api( @@ -207,6 +211,12 @@ pub fn update_tape_backup_job( DeletableProperty::GroupFilter => { data.setup.group_filter = None; } + DeletableProperty::MaxDepth => { + data.setup.max_depth = None; + } + DeletableProperty::Ns => { + data.setup.ns = None; + } } } } @@ -236,6 +246,12 @@ pub fn update_tape_backup_job( if update.setup.group_filter.is_some() { data.setup.group_filter = update.setup.group_filter; } + if update.setup.ns.is_some() { + data.setup.ns = update.setup.ns; + } + if update.setup.max_depth.is_some() { + data.setup.max_depth = update.setup.max_depth; + } let schedule_changed = data.schedule != update.schedule; if update.schedule.is_some() { diff --git a/src/api2/tape/backup.rs b/src/api2/tape/backup.rs index 0c29b441..e2da7a49 100644 --- a/src/api2/tape/backup.rs +++ b/src/api2/tape/backup.rs @@ -405,7 +405,7 @@ fn backup_worker( let changer_name = update_media_online_status(&setup.drive)?; let root_namespace = setup.ns.clone().unwrap_or_default(); - let ns_magic = !root_namespace.is_root() || setup.recursion_depth != Some(0); + let ns_magic = !root_namespace.is_root() || setup.max_depth != Some(0); let pool = MediaPool::with_config(status_path, pool_config, changer_name, false)?; @@ -413,8 +413,7 @@ fn backup_worker( PoolWriter::new(pool, &setup.drive, worker, email, force_media_set, ns_magic)?; let mut group_list = Vec::new(); - let namespaces = - datastore.recursive_iter_backup_ns_ok(root_namespace, setup.recursion_depth)?; + let namespaces = datastore.recursive_iter_backup_ns_ok(root_namespace, setup.max_depth)?; for ns in namespaces { group_list.extend(datastore.list_backup_groups(ns)?); }