From 88c9496ee5d40adbb324c0d449ed1659e661d700 Mon Sep 17 00:00:00 2001 From: Michael Polenchuk Date: Tue, 17 Apr 2018 17:15:36 +0400 Subject: Add flavor metadata for volume related tests These tests are very sensitive to the state of instance which might be active in terms of nova, but in fact still trying to get an ip address in case of dpdk scenarios. Change-Id: I739044c2edd360535ce1d3531549263163cfea19 Signed-off-by: Michael Polenchuk --- snaps/openstack/tests/os_source_file_test.py | 16 ++++++++++------ snaps/openstack/utils/tests/nova_utils_tests.py | 3 ++- snaps/test_runner.py | 4 ++-- snaps/test_suite_builder.py | 8 ++++++-- 4 files changed, 20 insertions(+), 11 deletions(-) (limited to 'snaps') diff --git a/snaps/openstack/tests/os_source_file_test.py b/snaps/openstack/tests/os_source_file_test.py index c7d64d3..7e70ed0 100644 --- a/snaps/openstack/tests/os_source_file_test.py +++ b/snaps/openstack/tests/os_source_file_test.py @@ -31,7 +31,8 @@ dev_os_env_file = pkg_resources.resource_filename( class OSComponentTestCase(unittest.TestCase): def __init__(self, method_name='runTest', os_creds=None, ext_net_name=None, - image_metadata=None, log_level=logging.DEBUG): + flavor_metadata=None, image_metadata=None, + log_level=logging.DEBUG): """ Super for test classes requiring a connection to OpenStack :param method_name: default 'runTest' @@ -39,6 +40,8 @@ class OSComponentTestCase(unittest.TestCase): in the package snaps.openstack.tests.conf.os_env.yaml :param ext_net_name: the name of the external network that is used for creating routers for floating IPs + :param flavor_metadata: dict() to be sent directly into the Nova client + generally used for page sizes :param image_metadata: ability to override images being used in the tests (see examples/image-metadata) :param log_level: the logging level of your test run (default DEBUG) @@ -60,11 +63,13 @@ class OSComponentTestCase(unittest.TestCase): test_conf = file_utils.read_yaml(dev_os_env_file) self.ext_net_name = test_conf.get('ext_net') + self.flavor_metadata = flavor_metadata self.image_metadata = image_metadata @staticmethod def parameterize(testcase_klass, os_creds, ext_net_name, - image_metadata=None, log_level=logging.DEBUG): + flavor_metadata=None, image_metadata=None, + log_level=logging.DEBUG): """ Create a suite containing all tests taken from the given subclass, passing them the parameter 'param'. """ @@ -73,7 +78,7 @@ class OSComponentTestCase(unittest.TestCase): suite = unittest.TestSuite() for name in test_names: suite.addTest(testcase_klass(name, os_creds, ext_net_name, - image_metadata, log_level)) + flavor_metadata, image_metadata, log_level)) return suite def __clean__(self): @@ -112,12 +117,11 @@ class OSIntegrationTestCase(OSComponentTestCase): """ super(OSIntegrationTestCase, self).__init__( method_name=method_name, os_creds=os_creds, - ext_net_name=ext_net_name, image_metadata=image_metadata, - log_level=log_level) + ext_net_name=ext_net_name, flavor_metadata=flavor_metadata, + image_metadata=image_metadata, log_level=log_level) self.netconf_override = netconf_override self.use_keystone = use_keystone self.keystone = None - self.flavor_metadata = flavor_metadata self.user_roles = None @staticmethod diff --git a/snaps/openstack/utils/tests/nova_utils_tests.py b/snaps/openstack/utils/tests/nova_utils_tests.py index f5df865..881598a 100644 --- a/snaps/openstack/utils/tests/nova_utils_tests.py +++ b/snaps/openstack/utils/tests/nova_utils_tests.py @@ -399,7 +399,8 @@ class NovaUtilsInstanceVolumeTests(OSComponentTestCase): self.flavor_creator = OpenStackFlavor( self.os_creds, FlavorConfig( - name=guid + '-flavor-name', ram=256, disk=10, vcpus=1)) + name=guid + '-flavor-name', ram=256, disk=10, vcpus=1, + metadata=self.flavor_metadata)) self.flavor_creator.create() # Create Volume diff --git a/snaps/test_runner.py b/snaps/test_runner.py index 5eaea53..830881a 100644 --- a/snaps/test_runner.py +++ b/snaps/test_runner.py @@ -87,8 +87,8 @@ def __create_concurrent_test_suite( if run_api_tests: tsb.add_openstack_api_tests( suite=suite, os_creds=os_creds, ext_net_name=ext_net_name, - use_keystone=use_keystone, image_metadata=image_metadata, - log_level=log_level) + use_keystone=use_keystone, flavor_metadata=flavor_metadata, + image_metadata=image_metadata, log_level=log_level) # Long running integration type tests if run_integration_tests: diff --git a/snaps/test_suite_builder.py b/snaps/test_suite_builder.py index e47becd..35a39f2 100644 --- a/snaps/test_suite_builder.py +++ b/snaps/test_suite_builder.py @@ -317,7 +317,8 @@ def add_openstack_client_tests(suite, os_creds, ext_net_name, def add_openstack_api_tests(suite, os_creds, ext_net_name, use_keystone=True, - image_metadata=None, log_level=logging.INFO): + flavor_metadata=None, image_metadata=None, + log_level=logging.INFO): """ Adds tests written to exercise all existing OpenStack APIs :param suite: the unittest.TestSuite object to which to add the tests @@ -328,6 +329,9 @@ def add_openstack_api_tests(suite, os_creds, ext_net_name, use_keystone=True, :param use_keystone: when True, tests requiring direct access to Keystone are added as these need to be running on a host that has access to the cloud's private network + :param flavor_metadata: dict() object containing the metadata required by + your flavor based on your configuration: + (i.e. {'hw:mem_page_size': 'any'}) :param image_metadata: dict() object containing metadata for creating an image with custom config (see YAML files in examples/image-metadata) @@ -383,7 +387,7 @@ def add_openstack_api_tests(suite, os_creds, ext_net_name, use_keystone=True, suite.addTest(OSComponentTestCase.parameterize( NovaUtilsInstanceVolumeTests, os_creds=os_creds, ext_net_name=ext_net_name, log_level=log_level, - image_metadata=image_metadata)) + flavor_metadata=flavor_metadata, image_metadata=image_metadata)) suite.addTest(OSComponentTestCase.parameterize( CreateFlavorTests, os_creds=os_creds, ext_net_name=ext_net_name, log_level=log_level)) -- cgit 1.2.3-korg