diff options
author | Tim Rozet <trozet@redhat.com> | 2019-01-03 10:31:23 -0500 |
---|---|---|
committer | Tim Rozet <trozet@redhat.com> | 2019-01-03 10:31:23 -0500 |
commit | e1c6f92cdac07949b00c758bab5c79ff20639dd9 (patch) | |
tree | bd53ea7eff01a66c7b2cce503c34804a7f1d0584 | |
parent | cf3f62e9bac681bad8e81c568893077f122da619 (diff) |
Renders service net map for THT
Previously if a service mapped to a network which was disabled, the
disabled network would fallback to using the ctlplane network. With the
recent change in THT, this is no longer the case:
https://review.openstack.org/#/c/614457/
With the above change, now any service pointing to a disabled network
now results in an empty string value being given for network variables.
This patch sets the service netmap in network-enviornment.yaml
appropriately based on which networks are enabled in apex.
Change-Id: Idf2919935aa707da6ca48968a04cf6653923d19d
Signed-off-by: Tim Rozet <trozet@redhat.com>
-rw-r--r-- | apex/network/network_environment.py | 9 | ||||
-rw-r--r-- | apex/tests/test_apex_network_environment.py | 7 |
2 files changed, 16 insertions, 0 deletions
diff --git a/apex/network/network_environment.py b/apex/network/network_environment.py index 0a4d1036..52b4452a 100644 --- a/apex/network/network_environment.py +++ b/apex/network/network_environment.py @@ -186,6 +186,8 @@ class NetworkEnvironment(dict): for flag in IPV6_FLAGS: self[param_def][flag] = True + self._update_service_netmap(net_settings.enabled_network_list) + def _get_vlan(self, network): if isinstance(network['nic_mapping'][CONTROLLER]['vlan'], int): return network['nic_mapping'][CONTROLLER]['vlan'] @@ -218,6 +220,13 @@ class NetworkEnvironment(dict): prefix = '' self[reg][key] = self.tht_dir + prefix + postfix + def _update_service_netmap(self, network_list): + if 'ServiceNetMap' not in self[param_def]: + return + for service, network in self[param_def]['ServiceNetMap'].items(): + if network not in network_list: + self[param_def]['ServiceNetMap'][service] = 'ctlplane' + class NetworkEnvException(Exception): def __init__(self, value): diff --git a/apex/tests/test_apex_network_environment.py b/apex/tests/test_apex_network_environment.py index 79a72a55..7aa6ef15 100644 --- a/apex/tests/test_apex_network_environment.py +++ b/apex/tests/test_apex_network_environment.py @@ -165,3 +165,10 @@ class TestNetworkEnvironment: e = NetworkEnvException("test") print(e) assert_is_instance(e, NetworkEnvException) + + def test_service_netmap(self): + ns = copy(self.ns) + ns.enabled_network_list = ['admin'] + ne = NetworkEnvironment(ns, os.path.join(TEST_BUILD_DIR, NET_ENV_FILE)) + for network in ne['parameter_defaults']['ServiceNetMap'].values(): + assert_equal(network, 'ctlplane') |