X-Git-Url: https://git.proxmox.com/?p=pve-common.git;a=blobdiff_plain;f=src%2FPVE%2FINotify.pm;h=a383040e6ade2d31770568953772c66b814d0519;hp=b6749d319d514b53f8686aed451a151fff668cf0;hb=3dabe28a23005a6e93152fdc9d81acd59f59ce80;hpb=b8246bfca72625671c6beab19f1ad373445fa5af diff --git a/src/PVE/INotify.pm b/src/PVE/INotify.pm index b6749d3..a383040 100644 --- a/src/PVE/INotify.pm +++ b/src/PVE/INotify.pm @@ -13,8 +13,10 @@ use File::Basename; use Fcntl qw(:DEFAULT :flock); use PVE::SafeSyslog; use PVE::Exception qw(raise_param_exc); +use PVE::Network; use PVE::Tools; -use Storable qw(dclone); +use PVE::ProcFSTools; +use Clone qw(clone); use Linux::Inotify2; use base 'Exporter'; use JSON; @@ -246,7 +248,7 @@ sub read_file { my $ret; if (!$noclone && ref ($ccinfo->{data})) { - $ret->{data} = dclone ($ccinfo->{data}); + $ret->{data} = clone ($ccinfo->{data}); } else { $ret->{data} = $ccinfo->{data}; } @@ -268,7 +270,7 @@ sub read_file { } # we cache data with references, so we always need to - # dclone this data. Else the original data may get + # clone this data. Else the original data may get # modified. $ccinfo->{data} = $res; @@ -277,7 +279,7 @@ sub read_file { my $ret; if (!$noclone && ref ($ccinfo->{data})) { - $ret->{data} = dclone ($ccinfo->{data}); + $ret->{data} = clone ($ccinfo->{data}); } else { $ret->{data} = $ccinfo->{data}; } @@ -665,7 +667,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 +787,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 +802,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*($PVE::Network::PHYSICAL_NIC_RE):.*/) { $ifaces->{$1}->{exists} = 1; } } @@ -973,7 +975,7 @@ sub __read_etc_network_interfaces { $ifaces->{$1}->{exists} = 0; $d->{exists} = 0; } - } elsif ($iface =~ m/^(?:eth\d+|en[^:.]+)$/) { + } elsif ($iface =~ m/^$PVE::Network::PHYSICAL_NIC_RE$/) { if (!$d->{ovs_type}) { $d->{type} = 'eth'; } elsif ($d->{ovs_type} eq 'OVSPort') { @@ -1053,6 +1055,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 +1075,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 +1204,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 =~ /^$PVE::Network::PHYSICAL_NIC_RE/) { $ifaces->{$iface} = { type => 'eth', exists => 1, method => 'manual', @@ -1289,7 +1293,7 @@ NETWORKDOC my $pri; if ($iface eq 'lo') { $pri = $if_type_hash->{loopback}; - } elsif ($iface =~ m/^(?:eth\d+|en[^:.]+)$/) { + } elsif ($iface =~ m/^$PVE::Network::PHYSICAL_NIC_RE$/) { $pri = $if_type_hash->{eth} + $child; } elsif ($iface =~ m/^bond\d+$/) { $pri = $if_type_hash->{bond} + $child;