X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=functest%2Fopnfv_tests%2Fopenstack%2Fpatrole%2Fpatrole.py;h=9bd877b60fed44938575c2425744c7082e8553d2;hb=2a0702ea914a574ffa7c6d6f83a5c606e24ebd0a;hp=9d72a98f3696c6a3f5fd0d79bb62f50604b3700b;hpb=1622ed33099e1d775ad842468c43e160e7bf79fd;p=functest.git diff --git a/functest/opnfv_tests/openstack/patrole/patrole.py b/functest/opnfv_tests/openstack/patrole/patrole.py index 9d72a98f3..9bd877b60 100644 --- a/functest/opnfv_tests/openstack/patrole/patrole.py +++ b/functest/opnfv_tests/openstack/patrole/patrole.py @@ -10,12 +10,9 @@ # pylint: disable=missing-docstring import logging -import os -import time -from functest.core import testcase -from functest.opnfv_tests.openstack.snaps import snaps_utils -from functest.opnfv_tests.openstack.tempest import conf_utils +from six.moves import configparser + from functest.opnfv_tests.openstack.tempest import tempest @@ -23,57 +20,21 @@ class Patrole(tempest.TempestCommon): __logger = logging.getLogger(__name__) - def __init__(self, **kwargs): - if "case_name" not in kwargs: - kwargs["case_name"] = 'patrole' - super(Patrole, self).__init__(**kwargs) - self.mode = "^patrole_tempest_plugin." + def configure(self, **kwargs): + super(Patrole, self).configure(**kwargs) + rconfig = configparser.RawConfigParser() + rconfig.read(self.conf_file) + rconfig.add_section('rbac') + rconfig.set('rbac', 'enable_rbac', True) + rconfig.set('rbac', 'rbac_test_role', kwargs.get('role', 'admin')) + with open(self.conf_file, 'w') as config_file: + rconfig.write(config_file) + self.backup_tempest_config(self.conf_file, self.res_dir) def run(self, **kwargs): - self.start_time = time.time() - try: - if not os.path.exists(conf_utils.TEMPEST_RESULTS_DIR): - os.makedirs(conf_utils.TEMPEST_RESULTS_DIR) - resources = self.resources.create() - compute_cnt = snaps_utils.get_active_compute_cnt( - self.resources.os_creds) - self.configure_tempest_patrole( - self.deployment_dir, - network_name=resources.get("network_name"), - image_id=resources.get("image_id"), - flavor_id=resources.get("flavor_id"), - compute_cnt=compute_cnt) - self.generate_test_list(self.verifier_repo_dir) - self.apply_tempest_blacklist() - self.run_verifier_tests() - self.parse_verifier_result() - self.generate_report() - res = testcase.TestCase.EX_OK - except Exception as err: # pylint: disable=broad-except - self.__logger.error('Error with run: %s', err) - res = testcase.TestCase.EX_RUN_ERROR - finally: - self.resources.cleanup() - self.stop_time = time.time() - return res - - def configure_tempest_patrole( - self, deployment_dir, network_name=None, image_id=None, - flavor_id=None, compute_cnt=None): - # pylint: disable=too-many-arguments - """ - Add/update needed parameters into tempest.conf file - """ - self.__logger.debug( - "Updating selected tempest.conf parameters for Patrole") - conf_file = conf_utils.configure_verifier(deployment_dir) - conf_utils.configure_tempest_update_params( - conf_file, network_name, image_id, flavor_id, compute_cnt) - config = conf_utils.ConfigParser.RawConfigParser() - config.read(conf_file) - config.set('identity-feature-enabled', 'api_v2', False) - config.add_section('rbac') - config.set('rbac', 'enable_rbac', True) - config.set('rbac', 'rbac_test_role', 'admin') - with open(conf_file, 'wb') as config_file: - config.write(config_file) + for exclude in kwargs.get('excludes', []): + kwargs['mode'] = "{}(?!.*{})".format( + kwargs.get('mode', ''), exclude) + kwargs['mode'] = '{}(?=patrole_tempest_plugin.tests.api.({}))'.format( + kwargs['mode'], '|'.join(kwargs.get('includes', []))) + return super(Patrole, self).run(**kwargs)