Generalization of recursive function 67/54567/2
authorRicardo Noriega <rnoriega@redhat.com>
Wed, 28 Mar 2018 17:35:11 +0000 (10:35 -0700)
committerRicardo Noriega <rnoriega@redhat.com>
Wed, 28 Mar 2018 18:25:58 +0000 (11:25 -0700)
  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 <rnoriega@redhat.com>
apex/overcloud/deploy.py
apex/tests/test_apex_overcloud_deploy.py

index 0701c18..eb7aefa 100644 (file)
@@ -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(
index 54f95bb..6898d36 100644 (file)
@@ -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}