Add flavor metadata for volume related tests 07/55907/2
authorMichael Polenchuk <mpolenchuk@mirantis.com>
Tue, 17 Apr 2018 13:15:36 +0000 (17:15 +0400)
committerMichael Polenchuk <mpolenchuk@mirantis.com>
Wed, 18 Apr 2018 17:09:48 +0000 (21:09 +0400)
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 <mpolenchuk@mirantis.com>
snaps/openstack/tests/os_source_file_test.py
snaps/openstack/utils/tests/nova_utils_tests.py
snaps/test_runner.py
snaps/test_suite_builder.py

index c7d64d3..7e70ed0 100644 (file)
@@ -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
index f5df865..881598a 100644 (file)
@@ -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
index 5eaea53..830881a 100644 (file)
@@ -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:
index e47becd..35a39f2 100644 (file)
@@ -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))