From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate001.proxmox.com (gate001.proxmox.com [IPv6:2a0f:8001:1:32::40]) by lore.proxmox.com (Postfix) with ESMTPS id 77E451FF0E4 for ; Tue, 11 Aug 2026 15:41:57 +0200 (CEST) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id C5E982155A; Tue, 11 Aug 2026 15:41:56 +0200 (CEST) Mime-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=UTF-8 Date: Tue, 11 Aug 2026 15:41:52 +0200 Message-Id: To: "Nicolas Frey" , Subject: Re: [PATCH proxmox 3/3] pbs-api-types: zfs: define schema for recordsize From: "Shan Shaji" X-Mailer: aerc 0.20.0 References: <20260804124021.83704-1-s.shaji@proxmox.com> <20260804124021.83704-4-s.shaji@proxmox.com> <8f67a923-1469-4742-91c0-a1355e366e5b@proxmox.com> In-Reply-To: <8f67a923-1469-4742-91c0-a1355e366e5b@proxmox.com> X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1786455698658 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.878 Adjusted score from AWL reputation of From: address DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment (newer systems) RCVD_IN_DNSWL_MED -2.3 Sender listed at https://www.dnswl.org/, medium trust SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: T5NTOK4XJCLAK6BWGQGMCXPSO3PPC5IP X-Message-ID-Hash: T5NTOK4XJCLAK6BWGQGMCXPSO3PPC5IP X-MailFrom: s.shaji@proxmox.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox Backup Server development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Hi, Thanks for testing the changes.=20 On Tue Aug 11, 2026 at 1:12 PM CEST, Nicolas Frey wrote: > when using the CLI, this currently creates a zpool even though the > validation *should* fail. e.g. the following command: > > proxmox-backup-manager disk zpool create test1 \ > --devices sdc --raidlevel single --recordsize=3D12 > > prints this error: > > command "zfs" "set" "recordsize=3D12" "relatime=3Don" "test1" failed - > status code: 255 - cannot set property for 'test1': 'recordsize' must > be power of 2 from 512B to 16M > > but still creates a zfs pool with the default 128K record size. Somehow missed this one, thank you for finding it. will send a v2 > On 8/4/26 2:40 PM, Shan Shaji wrote: >> Signed-off-by: Shan Shaji >> --- >> pbs-api-types/src/zfs.rs | 5 +++++ >> 1 file changed, 5 insertions(+) >>=20 >> diff --git a/pbs-api-types/src/zfs.rs b/pbs-api-types/src/zfs.rs >> index 2cfbd403..3cfb9f8f 100644 >> --- a/pbs-api-types/src/zfs.rs >> +++ b/pbs-api-types/src/zfs.rs >> @@ -6,6 +6,7 @@ use proxmox_schema::*; >> =20 >> const_regex! { >> pub ZPOOL_NAME_REGEX =3D r"^[a-zA-Z][a-z0-9A-Z\-_.:]+$"; >> + ZFS_RECORD_SIZE_REGEX =3D r"^(?i)([1-9][0-9]*)([km])?$"; >> } >> =20 >> pub const ZFS_ASHIFT_SCHEMA: Schema =3D IntegerSchema::new("Pool sector= size exponent.") >> @@ -18,6 +19,10 @@ pub const ZPOOL_NAME_SCHEMA: Schema =3D StringSchema:= :new("ZFS Pool Name") >> .format(&ApiStringFormat::Pattern(&ZPOOL_NAME_REGEX)) >> .schema(); >> =20 >> +pub const ZFS_RECORD_SIZE_SCHEMA: Schema =3D StringSchema::new("ZFS Rec= ordsize. Use numbers with optional k or m suffix (e.g., 128k).") >> + .format(&ApiStringFormat::Pattern(&ZFS_RECORD_SIZE_REGEX)) > > consider using `ApiStringFormat::VerifyFn` to verify the record size, > analagous to the one you have in javascript Ack >> + .schema(); >> + >> #[api(default: "On")] >> #[derive(Debug, Copy, Clone, PartialEq, Eq, Serialize, Deserialize)] >> #[serde(rename_all =3D "lowercase")]