From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id DC848B3AF8 for ; Wed, 29 Nov 2023 14:27:57 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id BFDEA79B0 for ; Wed, 29 Nov 2023 14:27:27 +0100 (CET) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS for ; Wed, 29 Nov 2023 14:27:26 +0100 (CET) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 88D1D408B9 for ; Wed, 29 Nov 2023 14:27:26 +0100 (CET) Date: Wed, 29 Nov 2023 14:27:19 +0100 From: Fabian =?iso-8859-1?q?Gr=FCnbichler?= To: Proxmox Backup Server development discussion References: <20231129113637.204053-1-c.ebner@proxmox.com> <20231129113637.204053-2-c.ebner@proxmox.com> In-Reply-To: <20231129113637.204053-2-c.ebner@proxmox.com> MIME-Version: 1.0 User-Agent: astroid/0.16.0 (https://github.com/astroidmail/astroid) Message-Id: <1701264220.irmoe4u1io.astroid@yuna.none> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-SPAM-LEVEL: Spam detection results: 0 AWL 0.064 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record T_SCC_BODY_TEXT_LINE -0.01 - Subject: Re: [pbs-devel] [PATCH proxmox-backup 1/2] api: create default prune job on datastore creation X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Nov 2023 13:27:57 -0000 On November 29, 2023 12:36 pm, Christian Ebner wrote: > Create a default prune job when a datastore is created as part of a > disk/zpool creation transaction via e.g.: > `proxmox-backup-manager disk fs create --disk > --add-datastore true` is this documented anywhere? `proxmox-backup-manager datastore create ..` does not add any schedules/jobs by default, it's just the web UI that does (but that also tells you about this, and allows you to override it!) I agree that it probably makes sense, but it should be consistent - web UI does it, but then it should display it (and it would need to become a new optional parameter here, maybe by extending "add_datastore", else overriding would not be possible) - proxmox-backup-manager does it, but then it should also do it for a "plain" datastore creation by default? > Signed-off-by: Christian Ebner > --- > Currently depends on this patch to apply: > https://lists.proxmox.com/pipermail/pbs-devel/2023-November/007336.html >=20 > I can send a v2 without this interdependecy if requested. >=20 > src/api2/node/disks/directory.rs | 25 +++++++++++++++++++++++-- > src/api2/node/disks/zfs.rs | 27 ++++++++++++++++++++++++--- > 2 files changed, 47 insertions(+), 5 deletions(-) >=20 > diff --git a/src/api2/node/disks/directory.rs b/src/api2/node/disks/direc= tory.rs > index af2e1a14..89260b8e 100644 > --- a/src/api2/node/disks/directory.rs > +++ b/src/api2/node/disks/directory.rs > @@ -6,10 +6,11 @@ use proxmox_router::{Permission, Router, RpcEnvironment= , RpcEnvironmentType}; > use proxmox_schema::api; > use proxmox_section_config::SectionConfigData; > use proxmox_sys::task_log; > +use proxmox_uuid::Uuid; > =20 > use pbs_api_types::{ > - DataStoreConfig, BLOCKDEVICE_NAME_SCHEMA, STORAGE_NAME_SCHEMA, NODE_= SCHEMA, PRIV_SYS_AUDIT, > - PRIV_SYS_MODIFY, UPID_SCHEMA, > + DataStoreConfig, KeepOptions, PruneJobConfig, PruneJobOptions, BLOCK= DEVICE_NAME_SCHEMA, > + NODE_SCHEMA, PRIV_SYS_AUDIT, PRIV_SYS_MODIFY, STORAGE_NAME_SCHEMA, U= PID_SCHEMA, > }; > =20 > use crate::tools::disks::{ > @@ -210,6 +211,26 @@ pub fn create_datastore_disk( > datastore, > Some(&worker), > )?; > + > + crate::api2::config::prune::do_create_prune_job( > + PruneJobConfig { > + id: { > + let mut id =3D format!("default-{}-{}", name= , Uuid::generate()); > + id.truncate(32); > + id > + }, > + store: name.clone(), > + comment: None, > + disable: false, > + schedule: String::from("daily"), > + options: PruneJobOptions { > + keep: KeepOptions::default(), > + max_depth: None, > + ns: None, > + }, > + }, > + Some(&worker), > + )?; > } > =20 > Ok(()) > diff --git a/src/api2/node/disks/zfs.rs b/src/api2/node/disks/zfs.rs > index e225b9a7..7bc46986 100644 > --- a/src/api2/node/disks/zfs.rs > +++ b/src/api2/node/disks/zfs.rs > @@ -4,11 +4,12 @@ use serde_json::{json, Value}; > use proxmox_router::{Permission, Router, RpcEnvironment, RpcEnvironmentT= ype}; > use proxmox_schema::api; > use proxmox_sys::{task_error, task_log}; > +use proxmox_uuid::Uuid; > =20 > use pbs_api_types::{ > - DataStoreConfig, ZfsCompressionType, ZfsRaidLevel, ZpoolListItem, ST= ORAGE_NAME_SCHEMA, > - DISK_ARRAY_SCHEMA, DISK_LIST_SCHEMA, NODE_SCHEMA, PRIV_SYS_AUDIT, PR= IV_SYS_MODIFY, UPID_SCHEMA, > - ZFS_ASHIFT_SCHEMA, ZPOOL_NAME_SCHEMA, > + DataStoreConfig, KeepOptions, PruneJobConfig, PruneJobOptions, ZfsCo= mpressionType, > + ZfsRaidLevel, ZpoolListItem, DISK_ARRAY_SCHEMA, DISK_LIST_SCHEMA, NO= DE_SCHEMA, PRIV_SYS_AUDIT, > + PRIV_SYS_MODIFY, STORAGE_NAME_SCHEMA, UPID_SCHEMA, ZFS_ASHIFT_SCHEMA= , ZPOOL_NAME_SCHEMA, > }; > =20 > use crate::tools::disks::{ > @@ -325,6 +326,26 @@ pub fn create_zpool( > datastore, > Some(&worker), > )?; > + > + crate::api2::config::prune::do_create_prune_job( > + PruneJobConfig { > + id: { > + let mut id =3D format!("default-{}-{}", name= , Uuid::generate()); > + id.truncate(32); > + id > + }, > + store: name.clone(), > + comment: None, > + disable: false, > + schedule: String::from("daily"), > + options: PruneJobOptions { > + keep: KeepOptions::default(), > + max_depth: None, > + ns: None, > + }, > + }, > + Some(&worker), > + )?; > } > =20 > Ok(()) > --=20 > 2.39.2 >=20 >=20 >=20 > _______________________________________________ > pbs-devel mailing list > pbs-devel@lists.proxmox.com > https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel >=20 >=20 >=20