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=8dcc48a1597c89cba278708cc9e19c88891730aa;hpb=e1fa189b1c3dc69ab403658c4bd4396937db5ee0;p=functest.git diff --git a/functest/opnfv_tests/openstack/patrole/patrole.py b/functest/opnfv_tests/openstack/patrole/patrole.py index 8dcc48a15..9bd877b60 100644 --- a/functest/opnfv_tests/openstack/patrole/patrole.py +++ b/functest/opnfv_tests/openstack/patrole/patrole.py @@ -10,79 +10,31 @@ # pylint: disable=missing-docstring import logging -import os -import time -from xtesting.core import testcase +from six.moves import configparser -from functest.opnfv_tests.openstack.snaps import snaps_utils -from functest.opnfv_tests.openstack.tempest import conf_utils from functest.opnfv_tests.openstack.tempest import tempest -from functest.utils import config 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.res_dir = os.path.join( - getattr(config.CONF, 'dir_results'), 'patrole') - self.list = os.path.join(self.res_dir, 'tempest-list.txt') - - def run(self, **kwargs): - self.start_time = time.time() - for exclude in kwargs.get('exclude', []): - self.mode = "{}(?!.*{})".format(self.mode, exclude) - self.mode = "'{}(?=patrole_tempest_plugin.tests.api.({}))'".format( - self.mode, '|'.join(kwargs.get('services', []))) - try: - if not os.path.exists(self.res_dir): - os.makedirs(self.res_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, - role=kwargs.get('role', 'admin')) - self.generate_test_list(self.verifier_repo_dir) - 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, role='admin'): - # 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, self.res_dir, network_name, image_id, flavor_id, - compute_cnt) - rconfig = conf_utils.ConfigParser.RawConfigParser() - rconfig.read(conf_file) - rconfig.set('identity-feature-enabled', 'api_v2', False) + 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', role) - with open(conf_file, 'wb') as config_file: + 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): + 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)