]> git.proxmox.com Git - pve-network.git/commitdiff
catch errors on sdn config generation
authorAlexandre Derumier <aderumier@odiso.com>
Tue, 2 Jun 2020 09:20:24 +0000 (11:20 +0200)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Wed, 3 Jun 2020 07:50:34 +0000 (09:50 +0200)
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
PVE/Network/SDN/Zones.pm
PVE/Network/SDN/Zones/QinQPlugin.pm
PVE/Network/SDN/Zones/VlanPlugin.pm

index b8dc54cd5d8e37e6772d727d2e9f740b2d79a078..552b334bba9249c8f6dc963e99cd3863f980992f 100644 (file)
@@ -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";
index 20c0986d2de352c84ac72cabd8b8e0636e2990e1..2ae26495db47f6d6a56f1abed1b3205dbc14e7d5 100644 (file)
@@ -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";
index aeff1a460b365117856f04cee3d0a30aa7f25ed3..d3dc8571c1a6d99f4cdecf69033a90a6826dfd4e 100644 (file)
@@ -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";