diff options
author | Tim Rozet <trozet@redhat.com> | 2016-07-15 22:04:24 -0400 |
---|---|---|
committer | Tim Rozet <trozet@redhat.com> | 2016-07-18 16:35:00 -0400 |
commit | 1f5bede73d99f89a3cf1ec5fae7b30cee454b6c8 (patch) | |
tree | 79e4e8afde0585c07a98c770b79450d4dd24b8fb /tests/test_apex_network_settings.py | |
parent | 88d5b2462933cce79cb059c81e007ec83ee2cd9e (diff) |
Allows specifying nic order for overcloud nodes in network settings
Currently there is no way to specify logically or physically the nic
order to be used on overcloud nodes. We always hardcode to use nic1 for
admin network, nic2 for private, etc. This patch allows a user to not
only decide which logical nics to use for which network, but also
specify physical interface names if they need to.
This is done on a per role basis, due to tripleO limitation. So a user
is able to specify nic order/names for compute and controller roles
separately.
If a user specifies nic order, they must specify it for all networks
other than admin network. We assume if admin network is unspecified it
uses "nic1", so that name is reserved in this case. A user is also
allowed to specify a mixture of logical and physical names, for example
"nic2" and "eth3" on another network.
JIRA: APEX-151
Change-Id: Ie9d4abb463cf8f8788913cb4bcf9486830adc449
Signed-off-by: Tim Rozet <trozet@redhat.com>
Diffstat (limited to 'tests/test_apex_network_settings.py')
-rw-r--r-- | tests/test_apex_network_settings.py | 45 |
1 files changed, 41 insertions, 4 deletions
diff --git a/tests/test_apex_network_settings.py b/tests/test_apex_network_settings.py index a891473f..45c26ed4 100644 --- a/tests/test_apex_network_settings.py +++ b/tests/test_apex_network_settings.py @@ -7,10 +7,16 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## -from apex.network_settings import NetworkSettings +from apex.network_settings import ( + NetworkSettings, + NetworkSettingsException, +) -from nose.tools import assert_equal -from nose.tools import assert_is_instance +from nose.tools import ( + assert_equal, + assert_is_instance, + assert_raises +) class TestNetworkSettings(object): @@ -29,7 +35,7 @@ class TestNetworkSettings(object): """This method is run once after _each_ test method is executed""" def test_init(self): - ns = NetworkSettings('../config/network/network_settings.yaml', True) + NetworkSettings('../config/network/network_settings.yaml', True) def test_dump_bash(self): ns = NetworkSettings('../config/network/network_settings.yaml', True) @@ -39,7 +45,38 @@ class TestNetworkSettings(object): def test_get_network_settings(self): ns = NetworkSettings('../config/network/network_settings.yaml', True) assert_is_instance(ns.get_network_settings(), dict) + for role in ['controller', 'compute']: + nic_index = 1 + for network in ['admin_network', 'private_network', + 'public_network', 'storage_network']: + nic = 'nic' + str(nic_index) + assert_equal(ns.nics[role][network], nic) + nic_index += 1 + + def test_get_network_settings_unspecified_nics(self): + ns = NetworkSettings( + '../tests/config/network_settings_nics_not_specified.yaml', + True) + assert_is_instance(ns.get_network_settings(), dict) + for role in ['controller', 'compute']: + nic_index = 1 + for network in ['admin_network', 'private_network', + 'public_network', 'storage_network']: + nic = 'nic' + str(nic_index) + assert_equal(ns.nics[role][network], nic) + nic_index += 1 def test_get_enabled_networks(self): ns = NetworkSettings('../config/network/network_settings.yaml', True) assert_is_instance(ns.get_enabled_networks(), list) + + def test_negative_network_settings(self): + assert_raises(NetworkSettingsException, NetworkSettings, + '../tests/config/network_settings_duplicate_nic.yaml', + True) + assert_raises(NetworkSettingsException, NetworkSettings, + '../tests/config/network_settings_nic1_reserved.yaml', + True) + assert_raises(NetworkSettingsException, NetworkSettings, + '../tests/config/network_settings_missing_required_nic' + '.yaml', True) |