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.eb...@proxmox.com/ Signed-off-by: Hannes Duerr <h.du...@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