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 1C1711FF16B for ; Tue, 26 Aug 2025 14:22:29 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id E1E2C31D7E; Tue, 26 Aug 2025 14:22:33 +0200 (CEST) Date: Tue, 26 Aug 2025 14:22:00 +0200 From: Gabriel Goller To: Stefan Hanreich Message-ID: Mail-Followup-To: Stefan Hanreich , pdm-devel@lists.proxmox.com References: <20250822134942.380480-1-s.hanreich@proxmox.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20250822134942.380480-1-s.hanreich@proxmox.com> User-Agent: NeoMutt/20241002-35-39f9a6 X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1756210915766 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.005 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 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [zone.zone] Subject: Re: [pdm-devel] [RFC network/proxmox{, -backup, -api-types, -yew-comp, -datacenter-manager} v2 00/32] Add initial SDN / EVPN integration 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 Cc: pdm-devel@lists.proxmox.com Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Errors-To: pdm-devel-bounces@lists.proxmox.com Sender: "pdm-devel" Don't have much experience with PDM, so I haven't looked at the code. The patches don't apply cleanly anymore, but after a bit of manual tinkering it works. As we found out together filtering vnets doesn't work so we need to filter in the frontend for vnets which have a evpn zone. The following patch fixes it: diff --git a/ui/src/sdn/evpn/remote_tree.rs b/ui/src/sdn/evpn/remote_tree.rs index e4b0fe46a121..4077693d29df 100644 --- a/ui/src/sdn/evpn/remote_tree.rs +++ b/ui/src/sdn/evpn/remote_tree.rs @@ -207,13 +207,12 @@ fn zones_to_vrf_view( for vnet in vnets { let vnet_data = &vnet.vnet; - let zone = zones - .iter() - .find(|zone| { - zone.remote == vnet.remote - && vnet_data.zone.as_ref().expect("vnet has zone") == &zone.zone.zone - }) - .expect("vnet has zone"); + let Some(zone) = zones.iter().find(|zone| { + zone.remote == vnet.remote + && vnet_data.zone.as_ref().expect("vnet has zone") == &zone.zone.zone + }) else { + continue; + }; let controller = controllers .iter() diff --git a/ui/src/sdn/evpn/vrf_tree.rs b/ui/src/sdn/evpn/vrf_tree.rs index 8b01b00eba26..2980d2379b0a 100644 --- a/ui/src/sdn/evpn/vrf_tree.rs +++ b/ui/src/sdn/evpn/vrf_tree.rs @@ -155,13 +155,12 @@ fn zones_to_vrf_view( for vnet in vnets { let vnet_data = &vnet.vnet; - let zone = zones - .iter() - .find(|zone| { - zone.remote == vnet.remote - && vnet_data.zone.as_ref().expect("vnet has zone") == &zone.zone.zone - }) - .expect("zone of vnet exists"); + let Some(zone) = zones.iter().find(|zone| { + zone.remote == vnet.remote + && vnet_data.zone.as_ref().expect("vnet has zone") == &zone.zone.zone + }) else { + continue; + }; let controller = controllers .iter() A few small UI nits: * In the "Remotes" view, widen the "Name" column a bit, it's too narrow * In the "IP-VRFs" view, when fully expanding all the VNets, the "VNet" level text is indented more than the last child. So the "VNet" text is more to the left than the actual VNet name below. (I think this is the VNet icon missing.) * Clicking the refresh button should IMO not collapse the tree. * When clicking on "Add" the VNet icon is missing (The zone icon is there). * What about deleting zones and vnets? Would that be complex? If a remote fails to delete a vnet/zone, we could roll-back all the other ones using the lock thingy-right? * I think there is a min-character limit missing on the vnet name, I get: 2025-08-26T14:16:38+02:00: failed to execute transaction on remote andiknowbangers: api error (status = 400: Parameter verification failed. vnet: invalid format - vnet ID 't' contains illegal characters when creating a vnet named "t". * IDK about the EVPN icon being a key :) Maybe we should already create a SDN "folder" and then an EVPN entry (like in PVE) so that we are ready adding more stuff afterwards. * Do we really want to auto-apply everything immediately? Should we maybe introduce a SDN "apply" thingy in PDM as well? _______________________________________________ pdm-devel mailing list pdm-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel