tools: hv: Add clean up function for Ubuntu config
authorHaiyang Zhang <haiyangz@microsoft.com>
Fri, 24 Feb 2017 17:30:32 +0000 (17:30 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 7 Mar 2017 01:10:40 +0000 (17:10 -0800)
This patch adds a function to clean up duplicate config info
on Ubuntu.

Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
tools/hv/bondvf.sh

index 4aa5369ffa4ef295a8841edd380c7f678de80893..d85968cb1bf235feb1352809ac9d7229c152d74a 100755 (executable)
@@ -101,9 +101,25 @@ function create_bond_cfg_redhat {
        echo BONDING_OPTS=\"mode=active-backup miimon=100 primary=$2\" >>$fn
 }
 
+function del_eth_cfg_ubuntu {
+       local fn=$cfgdir/interfaces
+       local tmpfl=$(mktemp)
+
+       local nic_start='^[ \t]*(auto|iface|mapping|allow-.*)[ \t]+'$1
+       local nic_end='^[ \t]*(auto|iface|mapping|allow-.*|source)'
+
+       awk "/$nic_end/{x=0} x{next} /$nic_start/{x=1;next} 1"  $fn >$tmpfl
+
+       cp $tmpfl $fn
+
+       rm $tmpfl
+}
+
 function create_eth_cfg_ubuntu {
        local fn=$cfgdir/interfaces
 
+       del_eth_cfg_ubuntu $1
+
        echo $'\n'auto $1 >>$fn
        echo iface $1 inet manual >>$fn
        echo bond-master $2 >>$fn
@@ -119,6 +135,8 @@ function create_eth_cfg_pri_ubuntu {
 function create_bond_cfg_ubuntu {
        local fn=$cfgdir/interfaces
 
+       del_eth_cfg_ubuntu $1
+
        echo $'\n'auto $1 >>$fn
        echo iface $1 inet dhcp >>$fn
        echo bond-mode active-backup >>$fn