diff --git a/tripleoclient/tests/v1/undercloud/test_config.py b/tripleoclient/tests/v1/undercloud/test_config.py index 0747ec708..83c48e2dd 100644 --- a/tripleoclient/tests/v1/undercloud/test_config.py +++ b/tripleoclient/tests/v1/undercloud/test_config.py @@ -31,6 +31,7 @@ from oslo_config import fixture as oslo_fixture from tripleo_common.image import kolla_builder +from tripleoclient import exceptions from tripleoclient.tests import base from tripleoclient.v1 import undercloud_config @@ -173,6 +174,15 @@ class TestNetworkSettings(base.TestCase): 'NetworkGateway': '192.168.24.1'}}} self.assertEqual(expected, env) + def test_nameserver_toomany_fail(self): + env = {} + self.conf.config(undercloud_nameservers=['1.1.1.1', '1.1.1.2', + '1.1.1.3', '1.1.1.4', + '1.1.1.5', '1.1.1.6']) + self.assertRaises(exceptions.InvalidConfiguration, + undercloud_config._process_network_args, + env) + def test_start_end_all_addresses(self): self.conf.config(dhcp_start='192.168.24.0', dhcp_end='192.168.24.255', diff --git a/tripleoclient/v1/undercloud_config.py b/tripleoclient/v1/undercloud_config.py index 0f38a79ed..432b54008 100644 --- a/tripleoclient/v1/undercloud_config.py +++ b/tripleoclient/v1/undercloud_config.py @@ -335,6 +335,11 @@ def _process_network_args(env): env['UndercloudCtlplaneSubnets'][subnet].update( {param_value: s[param_key]}) env['MasqueradeNetworks'] = _generate_masquerade_networks() + if len(CONF['undercloud_nameservers']) > 5: + raise exceptions.InvalidConfiguration('Too many nameservers provided. ' + 'Please provide less than 6 ' + 'servers in undercloud_' + 'nameservers.') env['DnsServers'] = ','.join(CONF['undercloud_nameservers'])