From: Alexandre Derumier Date: Tue, 2 Jun 2020 09:20:24 +0000 (+0200) Subject: catch errors on sdn config generation X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=ae3f4de81577ba04610cfb44de3d0fa0a1ff4945;p=matthieu%2Fpve-network.git catch errors on sdn config generation Signed-off-by: Alexandre Derumier --- diff --git a/PVE/Network/SDN/Zones.pm b/PVE/Network/SDN/Zones.pm index b8dc54c..552b334 100644 --- a/PVE/Network/SDN/Zones.pm +++ b/PVE/Network/SDN/Zones.pm @@ -109,7 +109,13 @@ sub generate_etc_network_config { } my $plugin = PVE::Network::SDN::Zones::Plugin->lookup($plugin_config->{type}); - $plugin->generate_sdn_config($plugin_config, $zone, $id, $vnet, $controller, $interfaces_config, $config); + eval { + $plugin->generate_sdn_config($plugin_config, $zone, $id, $vnet, $controller, $interfaces_config, $config); + }; + if($@) { + warn "zone $zone : vnet $id : $@"; + next; + } } my $raw_network_config = "\#version:$version\n"; diff --git a/PVE/Network/SDN/Zones/QinQPlugin.pm b/PVE/Network/SDN/Zones/QinQPlugin.pm index 20c0986..2ae2649 100644 --- a/PVE/Network/SDN/Zones/QinQPlugin.pm +++ b/PVE/Network/SDN/Zones/QinQPlugin.pm @@ -52,6 +52,7 @@ sub generate_sdn_config { my $vlanprotocol = $plugin_config->{'vlan-protocol'}; my $ctag = $vnet->{tag}; my $alias = $vnet->{alias}; + die "can't find bridge $bridge" if !-d "/sys/class/net/$bridge"; my $vlan_aware = PVE::Tools::file_read_firstline("/sys/class/net/$bridge/bridge/vlan_filtering"); my $is_ovs = 1 if !-d "/sys/class/net/$bridge/brif"; diff --git a/PVE/Network/SDN/Zones/VlanPlugin.pm b/PVE/Network/SDN/Zones/VlanPlugin.pm index aeff1a4..d3dc857 100644 --- a/PVE/Network/SDN/Zones/VlanPlugin.pm +++ b/PVE/Network/SDN/Zones/VlanPlugin.pm @@ -41,6 +41,8 @@ sub generate_sdn_config { my ($class, $plugin_config, $zoneid, $vnetid, $vnet, $controller, $interfaces_config, $config) = @_; my $bridge = $plugin_config->{bridge}; + die "can't find bridge $bridge" if !-d "/sys/class/net/$bridge"; + my $vlan_aware = PVE::Tools::file_read_firstline("/sys/class/net/$bridge/bridge/vlan_filtering"); my $is_ovs = 1 if !-d "/sys/class/net/$bridge/brif";