Inotify : add check_bond
authorAlexandre Derumier <aderumier@odiso.com>
Thu, 5 Jul 2018 00:56:32 +0000 (02:56 +0200)
committerWolfgang Bumiller <w.bumiller@proxmox.com>
Tue, 10 Jul 2018 09:38:54 +0000 (11:38 +0200)
verify than bond slaves exist && type is eth

src/PVE/INotify.pm
test/etc_network_interfaces/t.create_network.pl

index 186df62..f4a5945 100644 (file)
@@ -1319,6 +1319,21 @@ sub __write_etc_network_interfaces {
        }
     }
 
+    # check bond
+    foreach my $iface (keys %$ifaces) {
+       my $d = $ifaces->{$iface};
+       if ($d->{type} eq 'bond' && $d->{slaves}) {
+           foreach my $p (split (/\s+/, $d->{slaves})) {
+               my $n = $ifaces->{$p};
+
+               die "bond '$iface' - unable to find slave '$p'\n"
+                   if !$n;
+               die "bond '$iface' - wrong interface type on slave '$p' " .
+                   "('$n->{type}' != 'eth')\n" if $n->{type} ne 'eth';
+           }
+       }
+    }
+
     # check vxlan
     my $vxlans = {};
     foreach my $iface (keys %$ifaces) {
index 3503797..da47999 100644 (file)
@@ -24,6 +24,31 @@ $config->{ifaces}->{eth1} = {
     autostart => 1
 };
 
+$config->{ifaces}->{eth2} = {
+    type => 'eth',
+    method => 'manual',
+    families => ['inet'],
+    autostart => 1
+};
+
+$config->{ifaces}->{eth3} = {
+    type => 'eth',
+    method => 'manual',
+    families => ['inet'],
+    autostart => 1
+};
+
+$config->{ifaces}->{bond0} = {
+    type => 'bond',
+    slaves => 'eth2 eth3',
+    bond_mode => '802.3ad',
+    bond_xmit_hash_policy => 'layer3+4',
+    bond_miimon => 100,
+    method => 'manual',
+    families => ['inet'],
+    autostart => 1
+};
+
 $config->{ifaces}->{vmbr1} = {
     type => 'bridge',
     method => 'manual',
@@ -103,6 +128,19 @@ iface eth1 inet static
        netmask  $nm
        gateway  $gw
 
+auto eth2
+iface eth2 inet manual
+
+auto eth3
+iface eth3 inet manual
+
+auto bond0
+iface bond0 inet manual
+       bond-slaves eth2 eth3
+       bond-miimon 100
+       bond-mode 802.3ad
+       bond-xmit-hash-policy layer3+4
+
 auto vmbr0
 iface vmbr0 inet static
        address  10.0.0.2