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 288601FF15C for ; Wed, 2 Oct 2024 15:12:26 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 94C70F8C7; Wed, 2 Oct 2024 15:12:32 +0200 (CEST) From: Aaron Lauterer To: pve-devel@lists.proxmox.com Date: Wed, 2 Oct 2024 15:11:56 +0200 Message-Id: <20241002131157.227292-7-a.lauterer@proxmox.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241002131157.227292-1-a.lauterer@proxmox.com> References: <20241002131157.227292-1-a.lauterer@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.037 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: [pve-devel] [PATCH manager v5 6/7] 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 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..397239ed 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} && PVE::Tools::list_is_empty($param->{bridge_vids})) { + 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} && PVE::Tools::list_is_empty($param->{bridge_vids})) { + 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