tools: hv: Add clean up for included files in Ubuntu net config
authorHaiyang Zhang <haiyangz@microsoft.com>
Fri, 12 May 2017 19:14:11 +0000 (12:14 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 16 May 2017 15:52:45 +0000 (11:52 -0400)
The clean up function is updated to cover duplicate config info in
files included by "source" key word in Ubuntu network config.

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

index d85968cb1bf235feb1352809ac9d7229c152d74a..112deba8c4e900bc2cfd6d02684b77c9edbade56 100755 (executable)
@@ -102,15 +102,30 @@ function create_bond_cfg_redhat {
 }
 
 function del_eth_cfg_ubuntu {
-       local fn=$cfgdir/interfaces
+       local mainfn=$cfgdir/interfaces
+       local fnlist=( $mainfn )
+
+       local dirlist=(`awk '/^[ \t]*source/{print $2}' $mainfn`)
+
+       local i
+       for i in "${dirlist[@]}"
+       do
+               fnlist+=(`ls $i 2>/dev/null`)
+       done
+
        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
+       local fn
+       for fn in "${fnlist[@]}"
+       do
+               awk "/$nic_end/{x=0} x{next} /$nic_start/{x=1;next} 1" \
+                       $fn >$tmpfl
 
-       cp $tmpfl $fn
+               cp $tmpfl $fn
+       done
 
        rm $tmpfl
 }