Ack: [trusty/utopic 1/1] UBUNTU: hyper-v -- fix comment handing in /etc/network/interfaces

Brad Figg brad.figg at canonical.com
Mon Feb 2 18:23:31 UTC 2015


On Sun, Feb 01, 2015 at 11:57:53AM +0200, Andy Whitcroft wrote:
> We are duplicating the opening comment marker every time we rebuild the
> file, such that we end up with multiple of those comments:
> 
>     # This file describes the network interfaces available on your system
>     # and how to activate them. For more information, see interfaces(5).
> 
>     # The loopback network interface
>     auto lo
>     iface lo inet loopback
> 
>     # The primary network interface
>     # The following stanza(s) added by hv_set_ifconfig
>     # The following stanza(s) added by hv_set_ifconfig
>     # The following stanza(s) added by hv_set_ifconfig
>     auto eth0
>     iface eth0 inet static
> 	    address 10.100.20.108
> 	    gateway 10.100.20.1
> 	    dns-nameservers 8.8.4.4
> 
>     #End of hv_set_ifconfig stanzas
> 
> Fix handling of these such that we only insert new markers if they do
> not already exist.  Where they do, simply inject the new stanzas at the
> end of the block before the end marker.  At the same time deduplicate
> sequential begin and end markers to clean up previously dammaged files.
> 
> BugLink: http://bugs.launchpad.net/bugs/1413020
> Signed-off-by: Andy Whitcroft <apw at canonical.com>
> ---
>  debian/cloud-tools/hv_set_ifconfig | 40 +++++++++++++++++++++++++++-----------
>  1 file changed, 29 insertions(+), 11 deletions(-)
> 
> diff --git a/debian/cloud-tools/hv_set_ifconfig b/debian/cloud-tools/hv_set_ifconfig
> index b351776..783a150 100755
> --- a/debian/cloud-tools/hv_set_ifconfig
> +++ b/debian/cloud-tools/hv_set_ifconfig
> @@ -127,8 +127,6 @@ else:
>  		if6_count += 1
>  
>  	output = ["auto "+" ".join(autolist)] + output
> -output=["# The following stanza(s) added by hv_set_ifconfig"] + output
> -output+=["#End of hv_set_ifconfig stanzas"]
>  print "==================================="
>  print output
>  print "==================================="
> @@ -136,6 +134,10 @@ print "==================================="
>  
>  ''' Time to clean out the existing interface file'''
>  
> +# Markers.
> +start_mark = "# The following stanza(s) added by hv_set_ifconfig"
> +end_mark = "#End of hv_set_ifconfig stanzas"
> +
>  f=open(if_filename,"r")
>  flines=f.readlines()
>  f.close()
> @@ -143,6 +145,7 @@ newfile=[]
>  pitchstanza=0
>  inastanza=0
>  stanza=[]
> +prev_line=None
>  for line in flines:
>  	if line.startswith("auto"):
>  		if inastanza:
> @@ -173,6 +176,16 @@ for line in flines:
>  				pitchstanza=1
>  		if not pitchstanza:
>  			stanza+=[line.strip()]
> +        elif line.strip() in (start_mark, end_mark):
> +		if inastanza:
> +			if not pitchstanza:
> +				newfile.extend(stanza)
> +			stanza=[]
> +                inastanza = 0
> +                pitchstanza = 0
> +                # Deduplicate markers.
> +                if line != prev_line:
> +                    newfile += [line.strip()]
>  	else:
>  		if inastanza:
>  			if not pitchstanza:
> @@ -180,21 +193,26 @@ for line in flines:
>  		else:
>  			if not pitchstanza:
>  				newfile += [line.strip()]
> +        prev_line=line
>  
>  
> -for line in newfile:
> -	print line
> -for line in output:
> -	print line
>  
> +def emit(line):
> +        print(line)
> +	os.write(fd, line + "\n")
>  
> +# Insert the new output at the end and inside the existing markers if found.
> +emitted = False
>  fd, path = tempfile.mkstemp()
>  for line in newfile:
> -	os.write(fd,line)
> -	os.write(fd,"\n")
> -for line in output:
> -	os.write(fd,line)
> -	os.write(fd,"\n")
> +        if line == end_mark:
> +                emit("\n".join(output))
> +                emitted = True
> +        emit(line)
> +if not emitted:
> +        emit(start_mark)
> +        emit("\n".join(output))
> +        emit(end_mark)
>  os.close(fd)
>  
>  shutil.copy(path,if_filename)
> -- 
> 2.1.4
> 
> 
> -- 
> kernel-team mailing list
> kernel-team at lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team

Looks fine.

-- 
Brad Figg brad.figg at canonical.com http://www.canonical.com




More information about the kernel-team mailing list