def __init__(self, **kwargs): if "case_name" not in kwargs: kwargs["case_name"] = 'tempest' super(TempestCommon, self).__init__(**kwargs) assert self.orig_cloud assert self.cloud assert self.project if self.orig_cloud.get_role("admin"): self.role_name = "admin" elif self.orig_cloud.get_role("Admin"): self.role_name = "Admin" else: raise Exception("Cannot detect neither admin nor Admin") self.orig_cloud.grant_role(self.role_name, user=self.project.user.id, project=self.project.project.id, domain=self.project.domain.id) self.orig_cloud.grant_role(self.role_name, user=self.project.user.id, domain=self.project.domain.id) environ = dict(os.environ, OS_USERNAME=self.project.user.name, OS_PROJECT_NAME=self.project.project.name, OS_PROJECT_ID=self.project.project.id, OS_PASSWORD=self.project.password) try: del environ['OS_TENANT_NAME'] del environ['OS_TENANT_ID'] except Exception: # pylint: disable=broad-except pass self.deployment_id = conf_utils.create_rally_deployment( environ=environ) if not self.deployment_id: raise Exception("Deployment create failed") self.verifier_id = conf_utils.create_verifier() if not self.verifier_id: raise Exception("Verifier create failed") self.verifier_repo_dir = conf_utils.get_verifier_repo_dir( self.verifier_id) self.deployment_dir = conf_utils.get_verifier_deployment_dir( self.verifier_id, self.deployment_id) self.verification_id = None self.res_dir = os.path.join(getattr(config.CONF, 'dir_results'), self.case_name) self.raw_list = os.path.join(self.res_dir, 'test_raw_list.txt') self.list = os.path.join(self.res_dir, 'test_list.txt') self.conf_file = None self.image_alt = None self.flavor_alt = None self.services = [] try: self.services = kwargs['run']['args']['services'] except Exception: # pylint: disable=broad-except pass self.neutron_extensions = [] try: self.neutron_extensions = kwargs['run']['args'][ 'neutron_extensions'] except Exception: # pylint: disable=broad-except pass
def __init__(self, **kwargs): if "case_name" not in kwargs: kwargs["case_name"] = 'tempest' super(TempestCommon, self).__init__(**kwargs) self.verifier_id = conf_utils.get_verifier_id() self.verifier_repo_dir = conf_utils.get_verifier_repo_dir( self.verifier_id) self.deployment_id = conf_utils.get_verifier_deployment_id() self.deployment_dir = conf_utils.get_verifier_deployment_dir( self.verifier_id, self.deployment_id) self.verification_id = None self.res_dir = os.path.join(getattr(config.CONF, 'dir_results'), self.case_name) self.raw_list = os.path.join(self.res_dir, 'test_raw_list.txt') self.list = os.path.join(self.res_dir, 'test_list.txt') self.conf_file = None self.image_alt = None self.flavor_alt = None self.services = [] try: self.services = kwargs['run']['args']['services'] except Exception: # pylint: disable=broad-except pass self.neutron_extensions = [] try: self.neutron_extensions = kwargs['run']['args'][ 'neutron_extensions'] except Exception: # pylint: disable=broad-except pass
def test_get_verif_repo_dir_default(self): with mock.patch('functest.opnfv_tests.openstack.tempest.' 'conf_utils.os.path.join', return_value='test_verifier_repo_dir'), \ mock.patch('functest.opnfv_tests.openstack.tempest.' 'conf_utils.get_verifier_id') as mock_get_id: self.assertEqual(conf_utils.get_verifier_repo_dir(''), 'test_verifier_repo_dir') self.assertTrue(mock_get_id.called)
def __init__(self): self.VERIFIER_ID = conf_utils.get_verifier_id() self.VERIFIER_REPO_DIR = conf_utils.get_verifier_repo_dir( self.VERIFIER_ID) self.DEPLOYMENT_ID = conf_utils.get_verifier_deployment_id() self.DEPLOYMENT_DIR = conf_utils.get_verifier_deployment_dir( self.VERIFIER_ID, self.DEPLOYMENT_ID) self.confpath = os.path.join(CONST.dir_functest_test, CONST.refstack_tempest_conf_path)
def __init__(self): self.VERIFIER_ID = conf_utils.get_verifier_id() self.VERIFIER_REPO_DIR = conf_utils.get_verifier_repo_dir( self.VERIFIER_ID) self.DEPLOYMENT_ID = conf_utils.get_verifier_deployment_id() self.DEPLOYMENT_DIR = conf_utils.get_verifier_deployment_dir( self.VERIFIER_ID, self.DEPLOYMENT_ID) self.confpath = pkg_resources.resource_filename( 'functest', 'opnfv_tests/openstack/refstack_client/refstack_tempest.conf')
def __init__(self): super(TempestCommon, self).__init__() self.MODE = "" self.OPTION = "" self.VERIFIER_ID = conf_utils.get_verifier_id() self.VERIFIER_REPO_DIR = conf_utils.get_verifier_repo_dir( self.VERIFIER_ID) self.DEPLOYMENT_ID = conf_utils.get_verifier_deployment_id() self.DEPLOYMENT_DIR = conf_utils.get_verifier_deployment_dir( self.VERIFIER_ID, self.DEPLOYMENT_ID) self.VERIFICATION_ID = None
def __init__(self, **kwargs): super(TempestCommon, self).__init__(**kwargs) self.resources = TempestResourcesManager(**kwargs) self.MODE = "" self.OPTION = [] self.VERIFIER_ID = conf_utils.get_verifier_id() self.VERIFIER_REPO_DIR = conf_utils.get_verifier_repo_dir( self.VERIFIER_ID) self.DEPLOYMENT_ID = conf_utils.get_verifier_deployment_id() self.DEPLOYMENT_DIR = conf_utils.get_verifier_deployment_dir( self.VERIFIER_ID, self.DEPLOYMENT_ID) self.VERIFICATION_ID = None
def __init__(self): super(RefstackClient, self).__init__() self.case_name = "refstack_defcore" self.FUNCTEST_TEST = CONST.dir_functest_test self.CONF_PATH = CONST.refstack_tempest_conf_path self.DEFCORE_LIST = CONST.refstack_defcore_list self.confpath = os.path.join(self.FUNCTEST_TEST, self.CONF_PATH) self.defcorelist = os.path.join(self.FUNCTEST_TEST, self.DEFCORE_LIST) self.VERIFIER_ID = conf_utils.get_verifier_id() self.VERIFIER_REPO_DIR = conf_utils.get_verifier_repo_dir( self.VERIFIER_ID) self.DEPLOYMENT_ID = conf_utils.get_verifier_deployment_id() self.DEPLOYMENT_DIR = conf_utils.get_verifier_deployment_dir( self.VERIFIER_ID, self.DEPLOYMENT_ID)
def __init__(self, **kwargs): super(TempestCommon, self).__init__(**kwargs) self.resources = TempestResourcesManager() self.mode = "" self.option = [] self.verifier_id = conf_utils.get_verifier_id() self.verifier_repo_dir = conf_utils.get_verifier_repo_dir( self.verifier_id) self.deployment_id = conf_utils.get_verifier_deployment_id() self.deployment_dir = conf_utils.get_verifier_deployment_dir( self.verifier_id, self.deployment_id) self.verification_id = None self.res_dir = TempestCommon.TEMPEST_RESULTS_DIR self.raw_list = os.path.join(self.res_dir, 'test_raw_list.txt') self.list = os.path.join(self.res_dir, 'test_list.txt') self.conf_file = None
def main(): verifier_repo_dir = tempest_utils.get_verifier_repo_dir(None) src_tempest_dir = tempest_utils.get_verifier_deployment_dir(None, None) if not src_tempest_dir: logger.error("Rally deployment not found.") exit(-1) tempest_utils.configure_verifier(src_tempest_dir) src_tempest_conf = os.path.join(src_tempest_dir, 'tempest.conf') bgpvpn_tempest_conf = src_tempest_dir + '/bgpvpn_tempest.conf' if not os.path.isfile(src_tempest_conf): logger.error("tempest.conf not found in %s." % src_tempest_conf) exit(-1) shutil.copy(src_tempest_conf, bgpvpn_tempest_conf) logger.info("Copying tempest.conf to %s." % bgpvpn_tempest_conf) config = ConfigParser.RawConfigParser() config.read(bgpvpn_tempest_conf) config.set('service_available', 'bgpvpn', 'True') logger.debug("Updating %s with bgpvpn=True" % bgpvpn_tempest_conf) with open(bgpvpn_tempest_conf, 'wb') as tempest_conf: config.write(tempest_conf) cmd_line = (verifier_repo_dir + "/run_tempest.sh -C %s -t -N -- " "networking_bgpvpn_tempest" % bgpvpn_tempest_conf) logger.info("Executing: %s" % cmd_line) cmd = os.popen(cmd_line) output = cmd.read() logger.debug(output) # Results parsing error_logs = "" duration = 0 failed = 0 try: # Look For errors error_logs = "" for match in re.findall('(.*?)[. ]*FAILED', output): error_logs += match # look for duration m = re.search('tests in(.*)sec', output) duration = m.group(1) # Look for num tests run m = re.search('Ran:(.*)tests', output) num_tests = m.group(1) # Look for tests failed m = re.search('Failed:(.*)', output) failed = m.group(1) # Look for name of the tests testcases = re.findall("\{0\} (.*)", output) results = {"duration": duration, "num_tests": num_tests, "failed": failed, "tests": testcases} if int(failed) == 0: status = "PASS" else: status = "FAILED" return {"status": status, "details": results} except: logger.error("Problem when parsing the results.")