From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 8F9461FF146 for ; Tue, 26 May 2026 16:26:02 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 5DC7130C5; Tue, 26 May 2026 16:26:02 +0200 (CEST) Message-ID: <7ab8c208-872c-4f73-a218-dcd26d20e552@proxmox.com> Date: Tue, 26 May 2026 16:25:59 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Beta Subject: Re: [PATCH datacenter-manager] ui: auto-installer: correctly validate numeric counters in form To: Lukas Wagner , pdm-devel@lists.proxmox.com References: <20260526140647.3594593-1-d.csapak@proxmox.com> Content-Language: en-US From: Dominik Csapak In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1779805534790 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.050 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 Message-ID-Hash: K5GSFIADWF23ZLNEGKMXNDFE6LPIC2PW X-Message-ID-Hash: K5GSFIADWF23ZLNEGKMXNDFE6LPIC2PW X-MailFrom: d.csapak@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 Datacenter Manager development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: On 5/26/26 4:18 PM, Lukas Wagner wrote: > On Tue May 26, 2026 at 4:06 PM CEST, Dominik Csapak wrote: >> field values are usually strings, so when a user entered any number >> here, it would display: >> >> invalid value: "1" >> >> since only numbers were expected here. >> >> To fix this, simply parse strings into numbers. >> >> Signed-off-by: Dominik Csapak >> --- >> ui/src/remotes/auto_installer/prepared_answer_form.rs | 7 ++++++- >> 1 file changed, 6 insertions(+), 1 deletion(-) >> >> diff --git a/ui/src/remotes/auto_installer/prepared_answer_form.rs b/ui/src/remotes/auto_installer/prepared_answer_form.rs >> index d932efe7..b5c59626 100644 >> --- a/ui/src/remotes/auto_installer/prepared_answer_form.rs >> +++ b/ui/src/remotes/auto_installer/prepared_answer_form.rs >> @@ -1040,7 +1040,12 @@ fn kv_list_to_template_counter_map_validate(v: &Vec<(String, Value)>) -> Result< >> let mut map = BTreeMap::::new(); >> for (k, v) in v { >> if TEMPLATE_COUNTER_NAME_REGEX.is_match(k) { >> - match v.as_i64().and_then(|v| v.try_into().ok()) { >> + let value = match v { >> + Value::Number(number) => number.as_i64(), >> + Value::String(text) => text.parse().ok(), >> + _ => None, >> + }; >> + match value.and_then(|v| v.try_into().ok()) { >> Some(v) => { >> map.insert(k.clone(), v); >> } > > I'm still getting a 'invalid value: ""' when adding a new template > counter, the error goes away once I edit the "Current Value" (e.g delete > the '0' and type in '0' again). > > Can you reproduce this? yep, true. i'll see what i can do