[pve-devel] [PATCH pve-firewall 1/2] Manually construct guest config path

Stefan Lendl s.lendl at proxmox.com
Wed Nov 8 12:35:34 CET 2023


Remove require QemuConfig from Firewall.pm
We only use it to construct the guest config paths.
Fixes circular include when accessing Firewall::Aliases from
pve-network.

Signed-off-by: Stefan Lendl <s.lendl at proxmox.com>
---
 src/PVE/Firewall.pm | 34 +++++++---------------------------
 1 file changed, 7 insertions(+), 27 deletions(-)

diff --git a/src/PVE/Firewall.pm b/src/PVE/Firewall.pm
index 77cbaf4..4db4b0c 100644
--- a/src/PVE/Firewall.pm
+++ b/src/PVE/Firewall.pm
@@ -28,22 +28,6 @@ use PVE::Firewall::Helpers;
 
 my $pvefw_conf_dir = "/etc/pve/firewall";
 my $clusterfw_conf_filename = "$pvefw_conf_dir/cluster.fw";
-
-# dynamically include PVE::QemuServer and PVE::LXC
-# to avoid dependency problems
-my $have_qemu_server;
-eval {
-    require PVE::QemuServer;
-    require PVE::QemuConfig;
-    $have_qemu_server = 1;
-};
-
-my $have_lxc;
-eval {
-    require PVE::LXC;
-    $have_lxc = 1;
-};
-
 my $pve_fw_status_dir = "/var/lib/pve-firewall";
 
 mkdir $pve_fw_status_dir; # make sure this exists
@@ -3257,18 +3241,14 @@ sub read_local_vm_config {
 	next if !$d->{node} || $d->{node} ne $nodename;
 	next if !$d->{type};
 	if ($d->{type} eq 'qemu') {
-	    if ($have_qemu_server) {
-		my $cfspath = PVE::QemuConfig->cfs_config_path($vmid);
-		if (my $conf = PVE::Cluster::cfs_read_file($cfspath)) {
-		    $qemu->{$vmid} = $conf;
-		}
+	    my $cfspath = "nodes/$nodename/qemu-server/$vmid.conf";
+	    if (my $conf = PVE::Cluster::cfs_read_file($cfspath)) {
+		$qemu->{$vmid} = $conf;
 	    }
-        } elsif ($d->{type} eq 'lxc') {
-	    if ($have_lxc) {
-		my $cfspath = PVE::LXC::Config->cfs_config_path($vmid);
-		if (my $conf = PVE::Cluster::cfs_read_file($cfspath)) {
-		    $lxc->{$vmid} = $conf;
-		}
+	} elsif ($d->{type} eq 'lxc') {
+	    my $cfspath = "nodes/$nodename/lxc/$vmid.conf";
+	    if (my $conf = PVE::Cluster::cfs_read_file($cfspath)) {
+		$lxc->{$vmid} = $conf;
 	    }
 	}
     }
-- 
2.41.0






More information about the pve-devel mailing list