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 276A61FF16F for ; Fri, 15 Nov 2024 17:58:28 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 6A0FA1A1DF; Fri, 15 Nov 2024 17:58:27 +0100 (CET) From: Aaron Lauterer To: pve-devel@lists.proxmox.com Date: Fri, 15 Nov 2024 17:57:52 +0100 Message-Id: <20241115165753.2664489-4-a.lauterer@proxmox.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241115165753.2664489-1-a.lauterer@proxmox.com> References: <20241115165753.2664489-1-a.lauterer@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.035 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 URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [network.pm] Subject: [pve-devel] [PATCH manager v7 3/4] fix #3893: api: network: add bridge_vids parameter 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: , Reply-To: Proxmox VE development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" The API itself allows several list separators. The network configuration for bridge_vids expects a space separated list. We therefore convert it initially to a space separated list. Signed-off-by: Aaron Lauterer --- I opted for a comment before the step where we split and reassemble the list with spaces as separators as this step might be a bit obscure if one is not aware of the reason (interfaces syntax). Feel free to drop the comments if you think they are unnessecary changes since v6: none v5: * drop PVE::Tools::list_is_empty and check for empty lists directly v4: * use the list_is_empty function, therefore avoiding negative matches * recreate the list with spaces as separators v3: * changed "vlans" to "VLANs" in description v2: * added checks to handle empty lists PVE/API2/Network.pm | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/PVE/API2/Network.pm b/PVE/API2/Network.pm index f39f04f5..b9db9b27 100644 --- a/PVE/API2/Network.pm +++ b/PVE/API2/Network.pm @@ -66,6 +66,11 @@ my $confdesc = { type => 'boolean', optional => 1, }, + bridge_vids => { + description => "Specify the allowed VLANs. For example: '2 4 100-200'. Only used if the bridge is VLAN aware.", + optional => 1, + type => 'string', format => 'pve-vlan-id-or-range-list', + }, bridge_ports => { description => "Specify the interfaces you want to add to your bridge.", optional => 1, @@ -469,6 +474,14 @@ __PACKAGE__->register_method({ if ! grep { $_ eq $iface } @ports; } + if ($param->{bridge_vids} && scalar(PVE::Tools::split_list($param->{bridge_vids}) == 0)) { + raise_param_exc({ bridge_vids => "VLAN list items are empty" }); + } + # make sure the list is space separated! other separators will cause problems in the + # network configuration + $param->{bridge_vids} = join(" ", PVE::Tools::split_list($param->{bridge_vids})) + if $param->{bridge_vids}; + $ifaces->{$iface} = $param; PVE::INotify::write_file('interfaces', $config); @@ -558,7 +571,15 @@ __PACKAGE__->register_method({ foreach my $k (keys %$param) { $ifaces->{$iface}->{$k} = $param->{$k}; } - + + if ($param->{bridge_vids} && scalar(PVE::Tools::split_list($param->{bridge_vids}) == 0)) { + raise_param_exc({ bridge_vids => "VLAN list items are empty" }); + } + # make sure the list is space separated! other separators will cause problems in the + # network configuration + $param->{bridge_vids} = join(" ", PVE::Tools::split_list($param->{bridge_vids})) + if $param->{bridge_vids}; + PVE::INotify::write_file('interfaces', $config); }; -- 2.39.5 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel