summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--functest/opnfv_tests/openstack/rally/rally.py31
-rw-r--r--functest/tests/unit/openstack/rally/test_rally.py31
2 files changed, 35 insertions, 27 deletions
diff --git a/functest/opnfv_tests/openstack/rally/rally.py b/functest/opnfv_tests/openstack/rally/rally.py
index e92639b29..c295b05aa 100644
--- a/functest/opnfv_tests/openstack/rally/rally.py
+++ b/functest/opnfv_tests/openstack/rally/rally.py
@@ -20,7 +20,6 @@ import subprocess
import time
import uuid
-import iniparse
import pkg_resources
import yaml
@@ -74,8 +73,6 @@ class RallyBase(testcase.TestCase):
ITERATIONS_AMOUNT = 10
CONCURRENCY = 4
RESULTS_DIR = os.path.join(CONST.__getattribute__('dir_results'), 'rally')
- TEMPEST_CONF_FILE = os.path.join(CONST.__getattribute__('dir_results'),
- 'tempest/tempest.conf')
BLACKLIST_FILE = os.path.join(RALLY_DIR, "blacklist.txt")
TEMP_DIR = os.path.join(RALLY_DIR, "var")
@@ -117,6 +114,7 @@ class RallyBase(testcase.TestCase):
self.start_time = None
self.result = None
self.details = None
+ self.compute_cnt = 0
def _build_task_args(self, test_file_name):
task_args = {'service_list': [test_file_name]}
@@ -167,7 +165,7 @@ class RallyBase(testcase.TestCase):
if not os.path.exists(self.TEMP_DIR):
os.makedirs(self.TEMP_DIR)
- self.apply_blacklist(scenario_file_name, test_file_name)
+ self._apply_blacklist(scenario_file_name, test_file_name)
return test_file_name
@staticmethod
@@ -205,16 +203,10 @@ class RallyBase(testcase.TestCase):
return True
- @staticmethod
- def live_migration_supported():
+ def _live_migration_supported(self):
"""Determine if live migration is supported."""
- config = iniparse.ConfigParser()
- if (config.read(RallyBase.TEMPEST_CONF_FILE) and
- config.has_section('compute-feature-enabled') and
- config.has_option('compute-feature-enabled',
- 'live_migration')):
- return config.getboolean('compute-feature-enabled',
- 'live_migration')
+ if self.compute_cnt > 1:
+ return True
return False
@@ -273,8 +265,7 @@ class RallyBase(testcase.TestCase):
else:
return False
- @staticmethod
- def excl_func():
+ def excl_func(self):
"""Exclude functionalities."""
black_tests = []
func_list = []
@@ -283,7 +274,7 @@ class RallyBase(testcase.TestCase):
with open(RallyBase.BLACKLIST_FILE, 'r') as black_list_file:
black_list_yaml = yaml.safe_load(black_list_file)
- if not RallyBase.live_migration_supported():
+ if not self._live_migration_supported():
func_list.append("no_live_migration")
if 'functionality' in black_list_yaml.keys():
@@ -298,15 +289,14 @@ class RallyBase(testcase.TestCase):
return black_tests
- @staticmethod
- def apply_blacklist(case_file_name, result_file_name):
+ def _apply_blacklist(self, case_file_name, result_file_name):
"""Apply blacklist."""
LOGGER.debug("Applying blacklist...")
cases_file = open(case_file_name, 'r')
result_file = open(result_file_name, 'w')
- black_tests = list(set(RallyBase.excl_func() +
- RallyBase.excl_scenario()))
+ black_tests = list(set(self.excl_func() +
+ self.excl_scenario()))
if black_tests:
LOGGER.debug("Blacklisted tests: " + str(black_tests))
@@ -483,6 +473,7 @@ class RallyBase(testcase.TestCase):
self.flavor_name = self.FLAVOR_NAME + self.guid
self.flavor_alt_name = self.FLAVOR_ALT_NAME + self.guid
self.ext_net_name = snaps_utils.get_ext_net_name(self.os_creds)
+ self.compute_cnt = snaps_utils.get_active_compute_cnt(self.os_creds)
LOGGER.debug("Creating image '%s'...", self.image_name)
image_creator = deploy_utils.create_image(
diff --git a/functest/tests/unit/openstack/rally/test_rally.py b/functest/tests/unit/openstack/rally/test_rally.py
index 827d69d8f..40aab9527 100644
--- a/functest/tests/unit/openstack/rally/test_rally.py
+++ b/functest/tests/unit/openstack/rally/test_rally.py
@@ -66,7 +66,7 @@ class OSRallyTesting(unittest.TestCase):
@mock.patch('functest.opnfv_tests.openstack.rally.rally.os.path.exists')
@mock.patch('functest.opnfv_tests.openstack.rally.rally.os.makedirs')
@mock.patch('functest.opnfv_tests.openstack.rally.rally.RallyBase.'
- 'apply_blacklist')
+ '_apply_blacklist')
def test_prepare_test_list_missing_temp_dir(
self, mock_method, mock_os_makedirs, mock_path_exists):
mock_path_exists.side_effect = self.check_temp_dir
@@ -169,7 +169,7 @@ class OSRallyTesting(unittest.TestCase):
return_value={'functionality': [
{'functions': ['no_live_migration'], 'tests': ['test']}]})
@mock.patch('functest.opnfv_tests.openstack.rally.rally.RallyBase.'
- 'live_migration_supported', return_value=False)
+ '_live_migration_supported', return_value=False)
def test_excl_func_default(self, mock_func, mock_yaml_load):
CONST.__setattr__('INSTALLER_TYPE', 'test_installer')
CONST.__setattr__('DEPLOY_SCENARIO', 'test_scenario')
@@ -279,24 +279,31 @@ class OSRallyTesting(unittest.TestCase):
self.rally_base._prepare_env()
@mock.patch('functest.opnfv_tests.openstack.snaps.snaps_utils.'
+ 'get_active_compute_cnt')
+ @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_utils.'
'get_ext_net_name', return_value='test_net_name')
@mock.patch('snaps.openstack.utils.deploy_utils.create_image',
return_value=None)
- def test_prepare_env_image_missing(self, mock_get_img, mock_get_net):
+ def test_prepare_env_image_missing(
+ self, mock_get_img, mock_get_net, mock_get_comp_cnt):
self.rally_base.TESTS = ['test1', 'test2']
self.rally_base.test_name = 'test1'
with self.assertRaises(Exception):
self.rally_base._prepare_env()
mock_get_img.assert_called()
mock_get_net.assert_called()
+ mock_get_comp_cnt.assert_called()
@mock.patch('functest.opnfv_tests.openstack.snaps.snaps_utils.'
+ 'get_active_compute_cnt')
+ @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_utils.'
'get_ext_net_name', return_value='test_net_name')
@mock.patch('snaps.openstack.utils.deploy_utils.create_image')
@mock.patch('snaps.openstack.utils.deploy_utils.create_network',
return_value=None)
def test_prepare_env_network_creation_failed(
- self, mock_create_net, mock_get_img, mock_get_net):
+ self, mock_create_net, mock_get_img, mock_get_net,
+ mock_get_comp_cnt):
self.rally_base.TESTS = ['test1', 'test2']
self.rally_base.test_name = 'test1'
with self.assertRaises(Exception):
@@ -304,8 +311,11 @@ class OSRallyTesting(unittest.TestCase):
mock_create_net.assert_called()
mock_get_img.assert_called()
mock_get_net.assert_called()
+ mock_get_comp_cnt.assert_called()
@mock.patch('functest.opnfv_tests.openstack.snaps.snaps_utils.'
+ 'get_active_compute_cnt')
+ @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_utils.'
'get_ext_net_name', return_value='test_net_name')
@mock.patch('snaps.openstack.utils.deploy_utils.create_image')
@mock.patch('snaps.openstack.utils.deploy_utils.create_network')
@@ -313,7 +323,7 @@ class OSRallyTesting(unittest.TestCase):
return_value=None)
def test_prepare_env_router_creation_failed(
self, mock_create_router, mock_create_net, mock_get_img,
- mock_get_net):
+ mock_get_net, mock_get_comp_cnt):
self.rally_base.TESTS = ['test1', 'test2']
self.rally_base.test_name = 'test1'
with self.assertRaises(Exception):
@@ -322,8 +332,11 @@ class OSRallyTesting(unittest.TestCase):
mock_get_img.assert_called()
mock_get_net.assert_called()
mock_create_router.assert_called()
+ mock_get_comp_cnt.assert_called()
@mock.patch('functest.opnfv_tests.openstack.snaps.snaps_utils.'
+ 'get_active_compute_cnt')
+ @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_utils.'
'get_ext_net_name', return_value='test_net_name')
@mock.patch('snaps.openstack.utils.deploy_utils.create_image')
@mock.patch('snaps.openstack.utils.deploy_utils.create_network')
@@ -332,7 +345,7 @@ class OSRallyTesting(unittest.TestCase):
return_value=None)
def test_prepare_env_flavor_creation_failed(
self, mock_create_flavor, mock_create_router, mock_create_net,
- mock_get_img, mock_get_net):
+ mock_get_img, mock_get_net, mock_get_comp_cnt):
self.rally_base.TESTS = ['test1', 'test2']
self.rally_base.test_name = 'test1'
with self.assertRaises(Exception):
@@ -341,9 +354,12 @@ class OSRallyTesting(unittest.TestCase):
mock_get_img.assert_called()
mock_get_net.assert_called()
mock_create_router.assert_called()
+ mock_get_comp_cnt.assert_called()
mock_create_flavor.assert_called_once()
@mock.patch('functest.opnfv_tests.openstack.snaps.snaps_utils.'
+ 'get_active_compute_cnt')
+ @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_utils.'
'get_ext_net_name', return_value='test_net_name')
@mock.patch('snaps.openstack.utils.deploy_utils.create_image')
@mock.patch('snaps.openstack.utils.deploy_utils.create_network')
@@ -352,7 +368,7 @@ class OSRallyTesting(unittest.TestCase):
side_effect=[mock.Mock, None])
def test_prepare_env_flavor_alt_creation_failed(
self, mock_create_flavor, mock_create_router, mock_create_net,
- mock_get_img, mock_get_net):
+ mock_get_img, mock_get_net, mock_get_comp_cnt):
self.rally_base.TESTS = ['test1', 'test2']
self.rally_base.test_name = 'test1'
with self.assertRaises(Exception):
@@ -361,6 +377,7 @@ class OSRallyTesting(unittest.TestCase):
mock_get_img.assert_called()
mock_get_net.assert_called()
mock_create_router.assert_called()
+ mock_get_comp_cnt.assert_called()
self.assertEqual(mock_create_flavor.call_count, 2)
@mock.patch('functest.opnfv_tests.openstack.rally.rally.RallyBase.'