summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Rozet <trozet@redhat.com>2019-01-03 10:31:23 -0500
committerTim Rozet <trozet@redhat.com>2019-01-03 10:31:23 -0500
commite1c6f92cdac07949b00c758bab5c79ff20639dd9 (patch)
treebd53ea7eff01a66c7b2cce503c34804a7f1d0584
parentcf3f62e9bac681bad8e81c568893077f122da619 (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.py9
-rw-r--r--apex/tests/test_apex_network_environment.py7
2 files changed, 16 insertions, 0 deletions
diff --git a/apex/network/network_environment.py b/apex/network/network_environment.py
index 0a4d103..52b4452 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 79a72a5..7aa6ef1 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')