From: Alexandre Derumier Date: Fri, 3 May 2019 09:00:15 +0000 (+0200) Subject: vnet: dynamic require of qemuserver && lxc X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=46cd4e0614839808035ef4573979ce1bb72536a7;p=mirror%2Fpve-network.git vnet: dynamic require of qemuserver && lxc like for firewall, to avoid dependency loop Signed-off-by: Alexandre Derumier --- diff --git a/PVE/Network/Network/VnetPlugin.pm b/PVE/Network/Network/VnetPlugin.pm index f14db35..a6515af 100644 --- a/PVE/Network/Network/VnetPlugin.pm +++ b/PVE/Network/Network/VnetPlugin.pm @@ -7,10 +7,23 @@ use PVE::Network::Network::Plugin; use base('PVE::Network::Network::Plugin'); use PVE::Cluster; -use PVE::LXC; -use PVE::LXC::Config; -use PVE::QemuServer; -use PVE::QemuConfig; + +# 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; + require PVE::LXC::Config; + + $have_lxc = 1; +}; sub type { return 'vnet'; @@ -116,12 +129,12 @@ sub read_local_vm_config { my $d = $ids->{$vmid}; next if !$d->{node}; next if !$d->{type}; - if ($d->{type} eq 'qemu') { + if ($d->{type} eq 'qemu' && $have_qemu_server) { my $cfspath = PVE::QemuConfig->cfs_config_path($vmid); if (my $conf = PVE::Cluster::cfs_read_file($cfspath)) { $qemu->{$vmid} = $conf; } - } elsif ($d->{type} eq 'lxc') { + } elsif ($d->{type} eq 'lxc' && $have_lxc) { my $cfspath = PVE::LXC::Config->cfs_config_path($vmid); if (my $conf = PVE::Cluster::cfs_read_file($cfspath)) { $lxc->{$vmid} = $conf;