summaryrefslogtreecommitdiff
path: root/cloudinit
diff options
context:
space:
mode:
authorRyan Harper <ryan.harper@canonical.com>2017-07-31 13:35:07 -0500
committerScott Moser <smoser@brickies.net>2017-08-01 12:31:06 -0400
commit56103567fbf486625cdf5bfe40eea5ddcb7e8e04 (patch)
tree15dd611d1b5120abf17d40a6e9743045ac420f6b /cloudinit
parent512145cd16b0dfa0cbbe8a20d732e6f2d943b869 (diff)
downloadvyos-cloud-init-56103567fbf486625cdf5bfe40eea5ddcb7e8e04.tar.gz
vyos-cloud-init-56103567fbf486625cdf5bfe40eea5ddcb7e8e04.zip
sysconfig: Dont repeat header when rendering resolv.conf
The sysconfig renderer duplicates the cloud-init header string when rendering resolv.conf file. This leads to resolv.conf file growing with every reboot of a system. Fix this by checking for the header when loading content from existing file. Update one of the sysconfig unittests with multiple render calls to simulate the reboot to check that we don't repeat the header. LP: #1701420
Diffstat (limited to 'cloudinit')
-rw-r--r--cloudinit/net/sysconfig.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/cloudinit/net/sysconfig.py b/cloudinit/net/sysconfig.py
index a550f97c..f5727969 100644
--- a/cloudinit/net/sysconfig.py
+++ b/cloudinit/net/sysconfig.py
@@ -484,7 +484,11 @@ class Renderer(renderer.Renderer):
content.add_nameserver(nameserver)
for searchdomain in network_state.dns_searchdomains:
content.add_search_domain(searchdomain)
- return "\n".join([_make_header(';'), str(content)])
+ header = _make_header(';')
+ content_str = str(content)
+ if not content_str.startswith(header):
+ content_str = header + '\n' + content_str
+ return content_str
@staticmethod
def _render_networkmanager_conf(network_state):