Allow to pass more than two DNS while putting 2 DNS

Until now, when we pass more than 2 DNS, only the first one is added in
the ifcg-* config files.

This patch-set proves the issue, and proves the correction actually works.

Change-Id: I70a779782ab87cd4f74f3c50b0e649f503b386e3
Closes-Bug: #1716171
(cherry picked from commit 8ddab87c6e)
This commit is contained in:
Cédric Jeanneret 2017-09-15 00:13:39 +02:00
parent 77fe5922bd
commit 9ce34d529d
2 changed files with 19 additions and 3 deletions

View File

@ -398,10 +398,10 @@ class IfcfgNetConfig(os_net_config.NetConfig):
data += "DHCLIENTARGS=%s\n" % base_opt.dhclient_args
if base_opt.dns_servers:
data += "DNS1=%s\n" % base_opt.dns_servers[0]
if len(base_opt.dns_servers) == 2:
if len(base_opt.dns_servers) >= 2:
data += "DNS2=%s\n" % base_opt.dns_servers[1]
elif len(base_opt.dns_servers) > 2:
logger.warning('ifcfg format supports a max of 2 dns servers.')
if len(base_opt.dns_servers) > 2:
logger.warning('ifcfg format supports max 2 resolvers.')
return data
def _add_routes(self, interface_name, routes=[]):

View File

@ -873,6 +873,22 @@ NM_CONTROLLED=no
BOOTPROTO=none
DNS1=1.2.3.4
DNS2=5.6.7.8
"""
self.assertEqual(em1_config, self.get_interface_config('em1'))
def test_interface_more_dns_servers(self):
interface1 = objects.Interface('em1', dns_servers=['1.2.3.4',
'5.6.7.8',
'9.10.11.12'])
self.provider.add_interface(interface1)
em1_config = """# This file is autogenerated by os-net-config
DEVICE=em1
ONBOOT=yes
HOTPLUG=no
NM_CONTROLLED=no
BOOTPROTO=none
DNS1=1.2.3.4
DNS2=5.6.7.8
"""
self.assertEqual(em1_config, self.get_interface_config('em1'))