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 E4EA51FF138 for ; Wed, 18 Feb 2026 11:23:08 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 68D8317E59; Wed, 18 Feb 2026 11:24:08 +0100 (CET) From: Hannes Laimer To: pve-devel@lists.proxmox.com Subject: [PATCH pve-network 3/3] api: vnet: include zone-type in vnet list Date: Wed, 18 Feb 2026 11:23:47 +0100 Message-ID: <20260218102350.211294-4-h.laimer@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260218102350.211294-1-h.laimer@proxmox.com> References: <20260218102350.211294-1-h.laimer@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1771410233865 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.061 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 Message-ID-Hash: ZLP7PE54B5WXYQ5URNPIKNNL54QUPIR2 X-Message-ID-Hash: ZLP7PE54B5WXYQ5URNPIKNNL54QUPIR2 X-MailFrom: h.laimer@proxmox.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Helpful for subnet options that are only available for specific zones. Signed-off-by: Hannes Laimer --- src/PVE/API2/Network/SDN/Vnets.pm | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/PVE/API2/Network/SDN/Vnets.pm b/src/PVE/API2/Network/SDN/Vnets.pm index b8faeac..e0b8607 100644 --- a/src/PVE/API2/Network/SDN/Vnets.pm +++ b/src/PVE/API2/Network/SDN/Vnets.pm @@ -155,6 +155,12 @@ __PACKAGE__->register_method({ optional => 0, description => 'Name of the VNet.', }, + 'zone-type' => { + type => 'string', + description => 'Type of the zone this VNet belongs to.', + enum => PVE::Network::SDN::Zones::Plugin->lookup_types(), + optional => 1, + }, pending => { type => 'object', description => @@ -174,15 +180,20 @@ __PACKAGE__->register_method({ my $authuser = $rpcenv->get_user(); my $cfg = {}; + my $zone_cfg = {}; if ($param->{pending}) { my $running_cfg = PVE::Network::SDN::running_config(); my $config = PVE::Network::SDN::Vnets::config(); + my $zone_config = PVE::Network::SDN::Zones::config(); $cfg = PVE::Network::SDN::pending_config($running_cfg, $config, 'vnets'); + $zone_cfg = PVE::Network::SDN::pending_config($running_cfg, $zone_config, 'zones'); } elsif ($param->{running}) { my $running_cfg = PVE::Network::SDN::running_config(); $cfg = $running_cfg->{vnets}; + $zone_cfg = $running_cfg->{zones}; } else { $cfg = PVE::Network::SDN::Vnets::config(); + $zone_cfg = PVE::Network::SDN::Zones::config(); } my @sids = PVE::Network::SDN::Vnets::sdn_vnets_ids($cfg); @@ -192,6 +203,8 @@ __PACKAGE__->register_method({ my $scfg = &$api_sdn_vnets_config($cfg, $id); my $zoneid = $scfg->{zone} // $scfg->{pending}->{zone}; next if !$rpcenv->check_any($authuser, "/sdn/zones/$zoneid/$id", $privs, 1); + $scfg->{'zone-type'} = $zone_cfg->{ids}->{$zoneid}->{type} + if $zone_cfg->{ids}->{$zoneid}; push @$res, $scfg; } -- 2.47.3