[pve-devel] [PATCH v2 pve-common 4/4] Inotify : write network config : remove allow- ovs with ifupdown2

Wolfgang Bumiller w.bumiller at proxmox.com
Wed Jun 20 10:35:35 CEST 2018


On Wed, Jun 20, 2018 at 07:36:57AM +0200, Alexandre Derumier wrote:
> ---
>  src/PVE/INotify.pm | 17 ++++++++++++-----
>  1 file changed, 12 insertions(+), 5 deletions(-)
> 
> diff --git a/src/PVE/INotify.pm b/src/PVE/INotify.pm
> index 94712d5..48630ae 100644
> --- a/src/PVE/INotify.pm
> +++ b/src/PVE/INotify.pm
> @@ -1053,7 +1053,7 @@ sub __read_etc_network_interfaces {
>  }
>  
>  sub __interface_to_string {
> -    my ($iface, $d, $family, $first_block) = @_;
> +    my ($iface, $d, $family, $first_block, $ifupdown2) = @_;
>  
>      (my $suffix = $family) =~ s/^inet//;
>  
> @@ -1162,7 +1162,13 @@ sub __interface_to_string {
>  	$done->{ovs_type} = 1;
>  
>  	if ($d->{ovs_bridge}) {
> -	    $raw = "allow-$d->{ovs_bridge} $iface\n$raw";
> +
> +	    if ($ifupdown2) {
> +		$raw = "auto $iface\n$raw";
> +	    } else {
> +		$raw = "allow-$d->{ovs_bridge} $iface\n$raw";
> +	    }
> +
>  	    $raw .= "\tovs_bridge $d->{ovs_bridge}\n";
>  	    $done->{ovs_bridge} = 1;
>  	}
> @@ -1195,11 +1201,12 @@ sub __interface_to_string {
>  
>  sub write_etc_network_interfaces {
>      my ($filename, $fh, $config) = @_;
> -    my $raw = __write_etc_network_interfaces($config);
> +    my $ifupdown2 = 1 if -e '/usr/share/ifupdown2';

Note that variable declarations with a postfix condition is undefined
behavior, so no new code should do this.
In this case you can even just use:
    my $ifupdown2 = -e '/usr/share/ifupdown2';

(I'll fix it up locally.)

> +    my $raw = __write_etc_network_interfaces($config, $ifupdown2);
>      PVE::Tools::safe_print($filename, $fh, $raw);
>  }
>  sub __write_etc_network_interfaces {
> -    my ($config) = @_;
> +    my ($config, $ifupdown2) = @_;
>  
>      my $ifaces = $config->{ifaces};
>      my @options = @{$config->{options}};
> @@ -1359,7 +1366,7 @@ NETWORKDOC
>  	$printed->{$iface} = 1;
>  	$raw .= "auto $iface\n" if $d->{autostart};
>  	my $i = 0; # some options should be printed only once
> -	$raw .= __interface_to_string($iface, $d, $_, !$i++) foreach @{$d->{families}};
> +	$raw .= __interface_to_string($iface, $d, $_, !$i++, $ifupdown2) foreach @{$d->{families}};
>      }
>  
>      $raw .= $_->[1] . "\n" foreach @options;
> -- 
> 2.11.0



More information about the pve-devel mailing list