X-Git-Url: https://git.proxmox.com/?p=pve-common.git;a=blobdiff_plain;f=src%2FPVE%2FINotify.pm;h=44d0f2f91941931ac0a1fb5cdec9d767f2b341f1;hp=c34659fc843a1263565bb7dd587885ff57d7bc71;hb=affde347f1fd4db7ef50c8b53f834e9785cd4d77;hpb=899f8c4aa54c59f01c7fa3c516a465b438edc172 diff --git a/src/PVE/INotify.pm b/src/PVE/INotify.pm index c34659f..44d0f2f 100644 --- a/src/PVE/INotify.pm +++ b/src/PVE/INotify.pm @@ -14,6 +14,7 @@ use Fcntl qw(:DEFAULT :flock); use PVE::SafeSyslog; use PVE::Exception qw(raise_param_exc); use PVE::Tools; +use PVE::ProcFSTools; use Storable qw(dclone); use Linux::Inotify2; use base 'Exporter'; @@ -340,7 +341,7 @@ sub register_file { sub register_regex { my ($dir, $regex, $parser, $writer, $update, %options) = @_; - die "can't register regex after initify_init" if $inotify; + die "can't register regex after inotify_init" if $inotify; my $uid = "$dir/$regex"; die "regular expression '$uid' already added :ERROR" if defined ($ccacheregex->{$uid}); @@ -665,7 +666,7 @@ register_file('active', "/var/log/pve/tasks/active", \&write_active_workers); -my $bond_modes = { 'balance-rr' => 0, +our $bond_modes = { 'balance-rr' => 0, 'active-backup' => 1, 'balance-xor' => 2, 'broadcast' => 3, @@ -785,7 +786,7 @@ my $extract_ovs_option = sub { sub read_etc_network_interfaces { my ($filename, $fh) = @_; my $proc_net_dev = IO::File->new('/proc/net/dev', 'r'); - my $active = PVE::Network::get_active_interfaces(); + my $active = PVE::ProcFSTools::get_active_network_interfaces(); return __read_etc_network_interfaces($fh, $proc_net_dev, $active); } @@ -800,7 +801,7 @@ sub __read_etc_network_interfaces { if ($proc_net_dev) { while (defined ($line = <$proc_net_dev>)) { - if ($line =~ m/^\s*(eth\d+|en[^:.]+):.*/) { + if ($line =~ m/^\s*(eth\d+|en[^:.]+|ib\d+):.*/) { $ifaces->{$1}->{exists} = 1; } } @@ -973,7 +974,7 @@ sub __read_etc_network_interfaces { $ifaces->{$1}->{exists} = 0; $d->{exists} = 0; } - } elsif ($iface =~ m/^(?:eth\d+|en[^:.]+)$/) { + } elsif ($iface =~ m/^(?:eth\d+|en[^:.]+|ib\d+)$/) { if (!$d->{ovs_type}) { $d->{type} = 'eth'; } elsif ($d->{ovs_type} eq 'OVSPort') { @@ -1053,6 +1054,7 @@ sub __interface_to_string { # not printing out options } elsif ($d->{type} eq 'bridge') { + $d->{bridge_ports} =~ s/([;,\s])+/ /g; my $ports = $d->{bridge_ports} || 'none'; $raw .= "\tbridge_ports $ports\n"; $done->{bridge_ports} = 1; @@ -1072,6 +1074,7 @@ sub __interface_to_string { } elsif ($d->{type} eq 'bond') { + $d->{slaves} =~ s/([;,\s])+/ /g; my $slaves = $d->{slaves} || 'none'; $raw .= "\tslaves $slaves\n"; $done->{slaves} = 1; @@ -1200,7 +1203,7 @@ sub __write_etc_network_interfaces { $d->{type} eq 'OVSBond') { my $brname = $used_ports->{$iface}; if (!$brname || !$ifaces->{$brname}) { - if ($iface =~ /^(?:eth|en)/) { + if ($iface =~ /^(?:eth|en|ib)/) { $ifaces->{$iface} = { type => 'eth', exists => 1, method => 'manual', @@ -1289,7 +1292,7 @@ NETWORKDOC my $pri; if ($iface eq 'lo') { $pri = $if_type_hash->{loopback}; - } elsif ($iface =~ m/^(?:eth\d+|en[^:.]+)$/) { + } elsif ($iface =~ m/^(?:eth\d+|ib\d+|en[^:.]+)$/) { $pri = $if_type_hash->{eth} + $child; } elsif ($iface =~ m/^bond\d+$/) { $pri = $if_type_hash->{bond} + $child;