From b047099b609eac330486f23913e8046d0f22c1ab Mon Sep 17 00:00:00 2001 From: Ricardo Noriega Date: Wed, 28 Mar 2018 10:35:11 -0700 Subject: Generalization of recursive function Now, SDN_MAP is not needed to have a boolean true value, but it will check internally posible value formats such dicts and tuples. Change-Id: Idaf492952a7dd9e48e16f42dcbf5c59d981dd535 Signed-off-by: Ricardo Noriega --- apex/overcloud/deploy.py | 10 +++++----- apex/tests/test_apex_overcloud_deploy.py | 8 ++++++++ 2 files changed, 13 insertions(+), 5 deletions(-) (limited to 'apex') diff --git a/apex/overcloud/deploy.py b/apex/overcloud/deploy.py index 0701c188..eb7aefa1 100644 --- a/apex/overcloud/deploy.py +++ b/apex/overcloud/deploy.py @@ -110,7 +110,7 @@ def build_sdn_env_list(ds, sdn_map, env_list=None): if env_list is None: env_list = list() for k, v in sdn_map.items(): - if ds['sdn_controller'] == k or (k in ds and ds[k] is True): + if ds['sdn_controller'] == k or (k in ds and ds[k]): if isinstance(v, dict): # Append default SDN env file first # The assumption is that feature-enabled SDN env files @@ -120,12 +120,12 @@ def build_sdn_env_list(ds, sdn_map, env_list=None): env_list.append(os.path.join(con.THT_ENV_DIR, v['default'])) env_list.extend(build_sdn_env_list(ds, v)) + # check if the value is not a boolean + elif isinstance(v, tuple): + if ds[k] == v[0]: + env_list.append(os.path.join(con.THT_ENV_DIR, v[1])) else: env_list.append(os.path.join(con.THT_ENV_DIR, v)) - # check if the value is not a boolean - elif isinstance(v, tuple): - if ds[k] == v[0]: - env_list.append(os.path.join(con.THT_ENV_DIR, v[1])) if len(env_list) == 0: try: env_list.append(os.path.join( diff --git a/apex/tests/test_apex_overcloud_deploy.py b/apex/tests/test_apex_overcloud_deploy.py index 54f95bb7..6898d36c 100644 --- a/apex/tests/test_apex_overcloud_deploy.py +++ b/apex/tests/test_apex_overcloud_deploy.py @@ -74,6 +74,14 @@ class TestOvercloudDeploy(unittest.TestCase): res = '/usr/share/openstack-tripleo-heat-templates/environments/test' assert_equal(build_sdn_env_list(ds, sdn_map), [res]) + def test_build_sdn_env_list_with_string(self): + ds = {'sdn_controller': 'opendaylight', + 'sriov': 'xxx'} + prefix = '/usr/share/openstack-tripleo-heat-templates/environments' + res = [os.path.join(prefix, 'neutron-opendaylight.yaml'), + os.path.join(prefix, 'neutron-opendaylight-sriov.yaml')] + assert_equal(build_sdn_env_list(ds, SDN_FILE_MAP), res) + def test_build_sdn_env_list_with_default(self): ds = {'sdn_controller': 'opendaylight', 'vpn': True} -- cgit 1.2.3-korg