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)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id A03AA9D305 for ; Thu, 23 Nov 2023 15:54:28 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 810D61FC58 for ; Thu, 23 Nov 2023 15:54:28 +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)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS for ; Thu, 23 Nov 2023 15:54:27 +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 3991A4339E for ; Thu, 23 Nov 2023 15:54:27 +0100 (CET) From: Stefan Lendl To: pve-devel@lists.proxmox.com Date: Thu, 23 Nov 2023 15:54:27 +0100 Message-ID: <20231123145412.364215-16-s.lendl@proxmox.com> X-Mailer: git-send-email 2.42.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL 0.047 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. [subnets.pm, ips.pm] Subject: [pve-devel] [PATCH pve-network] sdn: require mac in IPAM API calls X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 23 Nov 2023 14:54:28 -0000 standard_option for 'mac-addr' is declared in EVPN where mac-addr is optional. The DELETE endpoint did actually delete from IPAM without a MAC but it would remain in macs.db which brings ends up in a bad state. Signed-off-by: Stefan Lendl --- src/PVE/API2/Network/SDN/Ips.pm | 18 +++++++++++++++--- src/PVE/Network/SDN/Subnets.pm | 6 ++---- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/PVE/API2/Network/SDN/Ips.pm b/src/PVE/API2/Network/SDN/Ips.pm index 0003b2a..0edabd8 100644 --- a/src/PVE/API2/Network/SDN/Ips.pm +++ b/src/PVE/API2/Network/SDN/Ips.pm @@ -27,7 +27,11 @@ __PACKAGE__->register_method ({ properties => { zone => get_standard_option('pve-sdn-zone-id'), vnet => get_standard_option('pve-sdn-vnet-id'), - mac => get_standard_option('mac-addr'), + mac => { + type => 'string', + description => "MAC Address of the IP to delete", + format => 'mac-addr' + }, ip => { type => 'string', format => 'ip', @@ -66,7 +70,11 @@ __PACKAGE__->register_method ({ properties => { zone => get_standard_option('pve-sdn-zone-id'), vnet => get_standard_option('pve-sdn-vnet-id'), - mac => get_standard_option('mac-addr'), + mac => { + type => 'string', + description => "MAC Address of the IP to add", + format => 'mac-addr' + }, ip => { type => 'string', format => 'ip', @@ -104,7 +112,11 @@ __PACKAGE__->register_method ({ vmid => get_standard_option('pve-vmid', { optional => 1, }), - mac => get_standard_option('mac-addr'), + mac => { + type => 'string', + description => "MAC Address of the IP to update", + format => 'mac-addr' + }, ip => { type => 'string', format => 'ip', diff --git a/src/PVE/Network/SDN/Subnets.pm b/src/PVE/Network/SDN/Subnets.pm index 3b08dcd..fe4f71b 100644 --- a/src/PVE/Network/SDN/Subnets.pm +++ b/src/PVE/Network/SDN/Subnets.pm @@ -402,10 +402,8 @@ sub del_ip { my $plugin = PVE::Network::SDN::Ipams::Plugin->lookup($plugin_config->{type}); $plugin->del_ip($plugin_config, $subnetid, $subnet, $ip); - if ($mac) { - eval { PVE::Network::SDN::Ipams::del_cache_mac_ip($mac, $ip) }; - warn $@ if $@; - } + eval { PVE::Network::SDN::Ipams::del_cache_mac_ip($mac, $ip) }; + warn $@ if $@; } eval { -- 2.42.0