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) server-digest SHA256) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id 194E79E683 for ; Mon, 27 Nov 2023 17:29:33 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id EA183B5ED for ; Mon, 27 Nov 2023 17:29:02 +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) server-digest SHA256) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS for ; Mon, 27 Nov 2023 17:29:01 +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 2B61F44C0E for ; Mon, 27 Nov 2023 17:29:01 +0100 (CET) Message-ID: Date: Mon, 27 Nov 2023 17:29:00 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird From: Lukas Wagner To: Proxmox Backup Server development discussion , Markus Frank References: <20231110135010.106015-1-m.frank@proxmox.com> Content-Language: de-AT, en-US In-Reply-To: <20231110135010.106015-1-m.frank@proxmox.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-SPAM-LEVEL: Spam detection results: 0 AWL -0.008 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 - URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [proxmox.com, lib.rs] Subject: Re: [pbs-devel] [PATCH proxmox-backup 1/6] feature #3690: add regex, format & schema for partition names to pbs-api-types 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: Mon, 27 Nov 2023 16:29:33 -0000 Hello, first some general remarks about this series: - the prefix for the commits should be 'fix #num:' or 'close #num:' [1] - patches 1, 2 and 6 are missing subsystem tags (e.g. for 1 this could be 'api-types') - A cover letter with some brief summary of the changes would be nice, so that I don't have to pull up the bugzilla entry first to see what this series is actually about. The features seems to work as intended, I tested it on the latest master. A few things should be changed though before this goes in, see the inline comments for the individual patches. [1] https://pve.proxmox.com/wiki/Developer_Documentation#Commits_and_Commit_Messages On 11/10/23 14:50, Markus Frank wrote: > Signed-off-by: Markus Frank > --- > pbs-api-types/src/lib.rs | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/pbs-api-types/src/lib.rs b/pbs-api-types/src/lib.rs > index 4306eca3..af8ad9cc 100644 > --- a/pbs-api-types/src/lib.rs > +++ b/pbs-api-types/src/lib.rs > @@ -191,6 +191,7 @@ const_regex! { > ); > > pub BLOCKDEVICE_NAME_REGEX = r"^(?:(?:h|s|x?v)d[a-z]+)|(?:nvme\d+n\d+)$"; > + pub BLOCKDEVICE_PARTITION_NAME_REGEX = r"^(?:(?:h|s|x?v)d[a-z]+\d*)|(?:nvme\d+n\d+(p\d+)?)$"; It appears that this regex also matches disks, not only partitions (e.g sda AND sda1 both match). From the rest of the code this seems intended, since you are also able to wipe disks AND partitions, but maybe the name for this constant should reflect that. > pub SUBSCRIPTION_KEY_REGEX = concat!(r"^pbs(?:[cbsp])-[0-9a-f]{10}$"); > } > > @@ -205,6 +206,8 @@ pub const PASSWORD_FORMAT: ApiStringFormat = ApiStringFormat::Pattern(&PASSWORD_ > pub const UUID_FORMAT: ApiStringFormat = ApiStringFormat::Pattern(&UUID_REGEX); > pub const BLOCKDEVICE_NAME_FORMAT: ApiStringFormat = > ApiStringFormat::Pattern(&BLOCKDEVICE_NAME_REGEX); > +pub const BLOCKDEVICE_PARTITION_NAME_FORMAT: ApiStringFormat = > + ApiStringFormat::Pattern(&BLOCKDEVICE_PARTITION_NAME_REGEX); > pub const SUBSCRIPTION_KEY_FORMAT: ApiStringFormat = > ApiStringFormat::Pattern(&SUBSCRIPTION_KEY_REGEX); > pub const SYSTEMD_DATETIME_FORMAT: ApiStringFormat = > @@ -285,6 +288,13 @@ pub const BLOCKDEVICE_NAME_SCHEMA: Schema = > .max_length(64) > .schema(); > > +pub const BLOCKDEVICE_PARTITION_NAME_SCHEMA: Schema = > + StringSchema::new("(Partition) block device name (/sys/class/block/).") > + .format(&BLOCKDEVICE_PARTITION_NAME_FORMAT) > + .min_length(3) > + .max_length(64) > + .schema(); > + > pub const DISK_ARRAY_SCHEMA: Schema = > ArraySchema::new("Disk name list.", &BLOCKDEVICE_NAME_SCHEMA).schema(); > -- - Lukas