← Back to team overview

cloud-init-dev team mailing list archive

[Merge] ~rmccabe/cloud-init:bug1705804 into cloud-init:master

 

Ryan McCabe has proposed merging ~rmccabe/cloud-init:bug1705804 into cloud-init:master.

Requested reviews:
  cloud-init commiters (cloud-init-dev)
Related bugs:
  Bug #1705804 in cloud-init: "sysconfig renderer should render DNSx= and GATEWAY= lines"
  https://bugs.launchpad.net/cloud-init/+bug/1705804

For more details, see:
https://code.launchpad.net/~rmccabe/cloud-init/+git/cloud-init/+merge/333663

Currently when dns and dns search info is provided in ENI format, it is not rendered when outputting to sysconfig format.

This patch writes it out when converting ENI -> sysconfig

LP: #1705804
-- 
Your team cloud-init commiters is requested to review the proposed merge of ~rmccabe/cloud-init:bug1705804 into cloud-init:master.
diff --git a/cloudinit/net/sysconfig.py b/cloudinit/net/sysconfig.py
index f572796..da21af0 100644
--- a/cloudinit/net/sysconfig.py
+++ b/cloudinit/net/sysconfig.py
@@ -347,6 +347,16 @@ class Renderer(renderer.Renderer):
                     else:
                         iface_cfg['GATEWAY'] = subnet['gateway']
 
+                if 'dns_search' in subnet:
+                    search_str = ' '.join(subnet['dns_search'][:3])
+                    iface_cfg['DOMAIN'] = search_str
+
+                if 'dns_nameservers' in subnet:
+                    for i, k in enumerate(subnet['dns_nameservers'], 1):
+                        if i > 3:
+                            break
+                        iface_cfg['DNS' + str(i)] = k
+
     @classmethod
     def _render_subnet_routes(cls, iface_cfg, route_cfg, subnets):
         for i, subnet in enumerate(subnets, start=len(iface_cfg.children)):
diff --git a/tests/unittests/test_net.py b/tests/unittests/test_net.py
index bbb63cb..4dc950f 100644
--- a/tests/unittests/test_net.py
+++ b/tests/unittests/test_net.py
@@ -436,6 +436,9 @@ NETWORK_CONFIGS = {
                 BOOTPROTO=dhcp
                 DEFROUTE=yes
                 DEVICE=eth99
+                DNS1=8.8.8.8
+                DNS2=8.8.4.4
+                DOMAIN="b a r"
                 GATEWAY=65.61.151.37
                 HWADDR=c0:d6:9f:2c:e8:80
                 IPADDR=192.168.21.3
@@ -836,6 +839,9 @@ pre-down route del -net 10.0.0.0 netmask 255.0.0.0 gw 11.0.0.1 metric 3 || true
                 BOOTPROTO=none
                 DEFROUTE=yes
                 DEVICE=eth0.101
+                DNS1=192.168.0.10
+                DNS2=10.23.23.134
+                DOMAIN="barley.maas sacchromyces.maas brettanomyces.maas"
                 GATEWAY=192.168.0.1
                 IPADDR=192.168.0.2
                 IPADDR1=192.168.2.10

Follow ups