From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 7EA6F1FF16F for ; Tue, 19 Aug 2025 13:53:53 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id A1AB61352F; Tue, 19 Aug 2025 13:55:38 +0200 (CEST) Date: Tue, 19 Aug 2025 13:55:05 +0200 Message-Id: From: "Lukas Wagner" To: "Proxmox Datacenter Manager development discussion" , "Dominik Csapak" Mime-Version: 1.0 X-Mailer: aerc 0.20.1-0-g2ecb8770224a References: <20250516133611.3499075-1-d.csapak@proxmox.com> <20250516133611.3499075-15-d.csapak@proxmox.com> In-Reply-To: <20250516133611.3499075-15-d.csapak@proxmox.com> X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1755604463123 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.023 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 Subject: Re: [pdm-devel] [PATCH datacenter-manager 14/21] ui: pve wizard: info: detect hostname and fingerprint X-BeenThere: pdm-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Datacenter Manager development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox Datacenter Manager development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pdm-devel-bounces@lists.proxmox.com Sender: "pdm-devel" On Fri May 16, 2025 at 3:36 PM CEST, Dominik Csapak wrote: > Instead of always inserting the initial host into the nodelist > (which will always be duplicate since it will be also contained in > the node list), try to match the hostname and or fingerprint with > any of the given node, so we can deduplicate that. > > Signed-off-by: Dominik Csapak > --- > ui/src/remotes/wizard_page_info.rs | 35 ++++++++++++++++++++++++------ > 1 file changed, 28 insertions(+), 7 deletions(-) > > diff --git a/ui/src/remotes/wizard_page_info.rs b/ui/src/remotes/wizard_page_info.rs > index 882eebd..04b0004 100644 > --- a/ui/src/remotes/wizard_page_info.rs > +++ b/ui/src/remotes/wizard_page_info.rs > @@ -108,13 +108,34 @@ async fn scan(connection_params: ConnectParams, form_ctx: FormContext) -> Result > ScanResult::TlsResult(_) => bail!("Untrusted certificate or invalid fingerprint"), > ScanResult::Remote(remote) => remote, > }; > - result.nodes.insert( > - 0, > - PropertyString::new(NodeUrl { > - hostname, > - fingerprint, > - }), > - ); > + > + // try to detect inserted hostname/fingerprint IMO the comment does not really help with understanding what the code below does. Maybe elaborate a bit here (e.g. similar to the commit message, that explains it quite well) > + let mut found = false; `found` what? (e.g maybe call it `found_probed_node` or sth :) ) > + for node in result.nodes.iter_mut() { > + if node.hostname == hostname { > + if fingerprint.is_none() { > + node.fingerprint = None; > + } > + found = true; > + continue; > + } > + if node.fingerprint.as_ref().map(|fp| fp.to_uppercase()) > + == fingerprint.as_ref().map(|fp| fp.to_uppercase()) > + { > + found = true; > + node.hostname = hostname.clone(); > + continue; > + } > + } > + if !found { > + result.nodes.insert( > + 0, > + PropertyString::new(NodeUrl { > + hostname, > + fingerprint: fingerprint.map(|fp| fp.to_uppercase()), > + }), > + ); > + } > result.nodes.sort_by(|a, b| a.hostname.cmp(&b.hostname)); > Ok(result) > } _______________________________________________ pdm-devel mailing list pdm-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel