[pve-devel] [PATCH firewall] simulator: make lxc/qemu optional
Wolfgang Bumiller
w.bumiller at proxmox.com
Tue Jan 31 11:15:22 CET 2017
---
in order to be able to bootstrap the package (eg. for stretch)
(copypasted as-is from Firewall.pm)
src/PVE/FirewallSimulator.pm | 19 +++++++++++++++++--
1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/src/PVE/FirewallSimulator.pm b/src/PVE/FirewallSimulator.pm
index c924b41..fc53a9b 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,6 +542,7 @@ 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';
@@ -563,10 +576,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.11.0
More information about the pve-devel
mailing list