7c43c8ea82
This is useful when both IPv4 and IPv6 name servers are present. https://bugs.launchpad.net/cloud-init/+bug/1670052 https://git.launchpad.net/cloud-init/commit/?id=657fd40f9ee692a817ec4614cd0d6cb0539ffabf
45 lines
1.8 KiB
Diff
45 lines
1.8 KiB
Diff
Index: cloud-init-0.7.9/cloudinit/distros/parsers/resolv_conf.py
|
|
===================================================================
|
|
--- cloud-init-0.7.9.orig/cloudinit/distros/parsers/resolv_conf.py
|
|
+++ cloud-init-0.7.9/cloudinit/distros/parsers/resolv_conf.py
|
|
@@ -6,9 +6,11 @@
|
|
|
|
from six import StringIO
|
|
|
|
+from cloudinit.distros.parsers import chop_comment
|
|
+from cloudinit import log as logging
|
|
from cloudinit import util
|
|
|
|
-from cloudinit.distros.parsers import chop_comment
|
|
+LOG = logging.getLogger(__name__)
|
|
|
|
|
|
# See: man resolv.conf
|
|
@@ -79,9 +81,10 @@ class ResolvConf(object):
|
|
if len(new_ns) == len(current_ns):
|
|
return current_ns
|
|
if len(current_ns) >= 3:
|
|
- # Hard restriction on only 3 name servers
|
|
- raise ValueError(("Adding %r would go beyond the "
|
|
- "'3' maximum name servers") % (ns))
|
|
+ LOG.warn("ignoring nameserver %r: adding would "
|
|
+ "exceed the maximum of "
|
|
+ "'3' name servers (see resolv.conf(5))" % (ns))
|
|
+ return current_ns[:3]
|
|
self._remove_option('nameserver')
|
|
for n in new_ns:
|
|
self._contents.append(('option', ['nameserver', n, '']))
|
|
Index: cloud-init-0.7.9/tests/unittests/test_distros/test_resolv.py
|
|
===================================================================
|
|
--- cloud-init-0.7.9.orig/tests/unittests/test_distros/test_resolv.py
|
|
+++ cloud-init-0.7.9/tests/unittests/test_distros/test_resolv.py
|
|
@@ -46,7 +46,7 @@ class TestResolvHelper(TestCase):
|
|
self.assertNotIn('10.3', rp.nameservers)
|
|
self.assertEqual(len(rp.nameservers), 3)
|
|
rp.add_nameserver('10.2')
|
|
- self.assertRaises(ValueError, rp.add_nameserver, '10.3')
|
|
+ rp.add_nameserver('10.3')
|
|
self.assertNotIn('10.3', rp.nameservers)
|
|
|
|
def test_search_domains(self):
|