From 09e11ad44e35bdb14a138d85d4c894fd06719b7c Mon Sep 17 00:00:00 2001 From: Wolfgang Bumiller Date: Tue, 31 Jan 2017 11:15:22 +0100 Subject: [PATCH] simulator: make lxc/qemu optional --- src/PVE/FirewallSimulator.pm | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/PVE/FirewallSimulator.pm b/src/PVE/FirewallSimulator.pm index c924b41..f2c2fbc 100644 --- a/src/PVE/FirewallSimulator.pm +++ b/src/PVE/FirewallSimulator.pm @@ -6,8 +6,20 @@ use Data::Dumper; use PVE::Firewall; use File::Basename; use Net::IP; -use PVE::LXC; -use PVE::QemuServer; + +# dynamically include PVE::QemuServer and PVE::LXC +# to avoid dependency problems +my $have_qemu_server; +eval { + require PVE::QemuServer; + $have_qemu_server = 1; +}; + +my $have_lxc; +eval { + require PVE::LXC; + $have_lxc = 1; +}; my $mark; my $trace; @@ -530,11 +542,13 @@ sub simulate_firewall { $from_info->{iface} = 'tapXYZ'; $start_state = 'from-bport'; } elsif ($from =~ m/^ct(\d+)$/) { + return 'SKIPPED' if !$have_lxc; my $vmid = $1; $from_info = extract_ct_info($vmdata, $vmid, 0); $start_state = 'fwbr-out'; $pkg->{mac_source} = $from_info->{macaddr}; } elsif ($from =~ m/^vm(\d+)(i(\d))?$/) { + return 'SKIPPED' if !$have_qemu_server; my $vmid = $1; my $netnum = $3 || 0; $from_info = extract_vm_info($vmdata, $vmid, $netnum); @@ -563,10 +577,12 @@ sub simulate_firewall { $target->{bridge} = 'vmbr0'; $target->{iface} = 'tapXYZ'; } elsif ($to =~ m/^ct(\d+)$/) { + return 'SKIPPED' if !$have_lxc; my $vmid = $1; $target = extract_ct_info($vmdata, $vmid, 0); $target->{iface} = $target->{tapdev}; } elsif ($to =~ m/^vm(\d+)$/) { + return 'SKIPPED' if !$have_qemu_server; my $vmid = $1; $target = extract_vm_info($vmdata, $vmid, 0); $target->{iface} = $target->{tapdev}; -- 2.39.2