def test_get_verifier_id_missing_verifier(self): CONST.__setattr__('tempest_deployment_name', 'test_deploy_name') with mock.patch('functest.opnfv_tests.openstack.tempest.' 'conf_utils.subprocess.Popen') as mock_popen, \ self.assertRaises(Exception): mock_stdout = mock.Mock() attrs = {'stdout.readline.return_value': ''} mock_stdout.configure_mock(**attrs) mock_popen.return_value = mock_stdout conf_utils.get_verifier_id(),
def test_get_verif_id_missing_verif(self, mock_rally, mock_tempest): # pylint: disable=unused-argument setattr(config.CONF, 'tempest_verifier_name', 'test_verifier_name') with mock.patch('functest.opnfv_tests.openstack.tempest.' 'conf_utils.subprocess.Popen') as mock_popen, \ self.assertRaises(Exception): mock_stdout = mock.Mock() attrs = {'stdout.readline.return_value': ''} mock_stdout.configure_mock(**attrs) mock_popen.return_value = mock_stdout conf_utils.get_verifier_id()
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 __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 test_get_verifier_id_default(self): CONST.__setattr__('tempest_deployment_name', 'test_deploy_name') with mock.patch('functest.opnfv_tests.openstack.tempest.' 'conf_utils.subprocess.Popen') as mock_popen: mock_stdout = mock.Mock() attrs = {'stdout.readline.return_value': 'test_deploy_id'} mock_stdout.configure_mock(**attrs) mock_popen.return_value = mock_stdout self.assertEqual(conf_utils.get_verifier_id(), 'test_deploy_id')
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 test_get_verifier_id_default(self, mock_rally, mock_tempest): # pylint: disable=unused-argument setattr(config.CONF, 'tempest_verifier_name', 'test_verifier_name') with mock.patch('functest.opnfv_tests.openstack.tempest.' 'conf_utils.subprocess.Popen') as mock_popen: mock_stdout = mock.Mock() attrs = {'stdout.readline.return_value': 'test_deploy_id'} mock_stdout.configure_mock(**attrs) mock_popen.return_value = mock_stdout self.assertEqual(conf_utils.get_verifier_id(), 'test_deploy_id')
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_id = tempest_utils.get_verifier_id() deployment_id = tempest_utils.get_verifier_deployment_id() src_tempest_dir = tempest_utils.get_verifier_deployment_dir( verifier_id, deployment_id) 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 = os.path.join(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) # TODO: Though --config-file parameter is set during the tempest run, # it looks for tempest.conf at /etc/tempest/ directory. so applying # the following workaround. Will remove it when the root cause is found. cmd = ("mkdir /etc/tempest;" "cp {0} /etc/tempest/tempest.conf".format(bgpvpn_tempest_conf)) logger.info("Configuring default tempest conf file") os.popen(cmd) cmd_line = "tempest run -t --regex networking_bgpvpn_tempest" 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 = "FAIL" return {"status": status, "details": results} except Exception as e: logger.error("Problem when parsing the results: %s", e)