public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Hannes Duerr <h.duerr@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH pve-network 1/2] dhcp: make plugin types query from Dhcp.pm possible
Date: Fri, 11 Jul 2025 11:52:05 +0200	[thread overview]
Message-ID: <20250711095206.30852-1-h.duerr@proxmox.com> (raw)

At the moment it is possible to query the Dhcp plugin types from the
`use PVE::Network::SDN::Dhcp::Plugin` without importing
`PVE::Network::SDN::Dhcp`. In consequence the section config is not
created although one would have been expected it to be created.

Importing `use pve::network::sdn::Dhcp` would solve the issue, but since
this is not a nice pattern and in order to avoid such problems in the
future, we are now making it possible to query the plugin type from
DHCP. If you then import DHCP, the section config will be built
correctly.

The problem was noticed/introduced after the ordering of the two imports
`use PVE::Network::SDN::Vnets` and `use PVE::Network::SDN::Vnets` were
swapped in pve-bridge [0], resulting in the error:

 file /etc/pve/sdn/zones.cfg line 2 (section 'simple') - unable to parse value of 'dhcp': value 'dnsmasq' does not have a value in the enumeration ''

The Zones Section Config no longer returned correct values for dhcp
because the Section Config was not yet built correctly at that time.
Swapping the entries back also solves the issue, because Vnets.pm is
importing `PVE::Network::SDN::Dhcp`, but that is also not really a nice
solution

[0] https://lore.proxmox.com/pve-devel/20250625155751.268047-6-f.ebner@proxmox.com/

Signed-off-by: Hannes Duerr <h.duerr@proxmox.com>
---
 src/PVE/Network/SDN/Dhcp.pm               | 4 ++++
 src/PVE/Network/SDN/Zones/SimplePlugin.pm | 4 ++--
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/PVE/Network/SDN/Dhcp.pm b/src/PVE/Network/SDN/Dhcp.pm
index 5f0d46d..7dc38fb 100644
--- a/src/PVE/Network/SDN/Dhcp.pm
+++ b/src/PVE/Network/SDN/Dhcp.pm
@@ -19,6 +19,10 @@ PVE::Network::SDN::Dhcp::Plugin->init();
 PVE::Network::SDN::Dhcp::Dnsmasq->register();
 PVE::Network::SDN::Dhcp::Dnsmasq->init();
 
+sub plugin_types {
+    return PVE::Network::SDN::Dhcp::Plugin->lookup_types();
+}
+
 sub add_mapping {
     my ($vnetid, $mac, $ip4, $ip6) = @_;
 
diff --git a/src/PVE/Network/SDN/Zones/SimplePlugin.pm b/src/PVE/Network/SDN/Zones/SimplePlugin.pm
index 97cf29e..f5cd18e 100644
--- a/src/PVE/Network/SDN/Zones/SimplePlugin.pm
+++ b/src/PVE/Network/SDN/Zones/SimplePlugin.pm
@@ -3,7 +3,7 @@ package PVE::Network::SDN::Zones::SimplePlugin;
 use strict;
 use warnings;
 use PVE::Network::SDN::Zones::Plugin;
-use PVE::Network::SDN::Dhcp::Plugin;
+use PVE::Network::SDN::Dhcp;
 use PVE::Exception qw(raise raise_param_exc);
 use PVE::Cluster;
 use PVE::Tools;
@@ -32,7 +32,7 @@ sub properties {
         dhcp => {
             description => 'Type of the DHCP backend for this zone',
             type => 'string',
-            enum => PVE::Network::SDN::Dhcp::Plugin->lookup_types(),
+            enum => PVE::Network::SDN::Dhcp->plugin_types(),
         },
     };
 }
-- 
2.47.2



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


             reply	other threads:[~2025-07-11  9:52 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-11  9:52 Hannes Duerr [this message]
2025-07-11  9:52 ` [pve-devel] [PATCH pve-network 2/2] dhcp: remove unused SubnetPlugin import Hannes Duerr
2025-07-16  7:43 ` [pve-devel] [PATCH pve-network 1/2] dhcp: make plugin types query from Dhcp.pm possible Friedrich Weber
2025-07-16 22:40 ` [pve-devel] applied: " Thomas Lamprecht

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250711095206.30852-1-h.duerr@proxmox.com \
    --to=h.duerr@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal