From 01e07c1c56d8a40cff50b077b18157decca39a5c Mon Sep 17 00:00:00 2001 From: xudan Date: Thu, 24 May 2018 04:47:41 -0400 Subject: Archive all test case result files 1. All detailed tempest test cases results are recorded with file tempest-report.html rather than tempest.log now. 2. Archive all results files include functest.log, yardstick.log ... for each test case. Otherwise, they will all be in one log file. 3. Support to set the source files and dest files need to be archived with the test case config files rather than hardcode with the source code. 4. Give the file which used to be parse the results (PASS/FAIL) with the test case config files rather than hardcode with the source code. Change-Id: I30f435d91ab90cf20def47007f177fe98187484d Signed-off-by: xudan --- .gitignore | 3 +- dovetail/report.py | 71 +++++++++++++--------- dovetail/run.py | 24 +------- dovetail/test_runner.py | 52 +++++++--------- dovetail/testcase.py | 2 +- etc/conf/bottlenecks_config.yml | 1 - etc/conf/functest_config.yml | 1 - etc/conf/vnftest_config.yml | 1 - etc/conf/yardstick_config.yml | 1 - etc/testcase/ha.cinder_api.yml | 7 +++ etc/testcase/ha.controller_restart.yml | 7 +++ etc/testcase/ha.cpu_load.yml | 7 +++ etc/testcase/ha.database.yml | 7 +++ etc/testcase/ha.disk_load.yml | 7 +++ etc/testcase/ha.glance_api.yml | 7 +++ etc/testcase/ha.haproxy.yml | 7 +++ etc/testcase/ha.keystone.yml | 7 +++ etc/testcase/ha.neutron_l3_agent.yml | 7 +++ etc/testcase/ha.neutron_server.yml | 7 +++ etc/testcase/ha.nova_api.yml | 7 +++ etc/testcase/ha.rabbitmq.yml | 7 +++ etc/testcase/healthcheck.api_check.yml | 5 ++ etc/testcase/healthcheck.connection_check.yml | 5 ++ etc/testcase/healthcheck.snaps_health_check.yml | 5 ++ etc/testcase/onap.vnf_lifecycle.yml | 9 ++- etc/testcase/sdnvpn.router_association.yml | 7 +++ .../sdnvpn.router_association_floating_ip.yml | 7 +++ etc/testcase/sdnvpn.subnet_connectivity.yml | 7 +++ etc/testcase/sdnvpn.tenant_separation.yml | 7 +++ etc/testcase/security.patrole.yml | 9 +++ etc/testcase/snaps.smoke.yml | 5 ++ etc/testcase/stress.ping.yml | 7 +++ etc/testcase/tempest.bgpvpn.yml | 7 +++ etc/testcase/tempest.compute.yml | 9 +++ etc/testcase/tempest.identity_v2.yml | 9 +++ etc/testcase/tempest.identity_v3.yml | 9 +++ etc/testcase/tempest.image.yml | 9 +++ etc/testcase/tempest.ipv6.yml | 9 +++ etc/testcase/tempest.multi_node_scheduling.yml | 9 +++ etc/testcase/tempest.network.yml | 9 +++ etc/testcase/tempest.network_security.yml | 9 +++ etc/testcase/tempest.osinterop.yml | 12 +++- etc/testcase/tempest.trunk-ports.yml | 9 +++ etc/testcase/tempest.vm_lifecycle.yml | 9 +++ etc/testcase/tempest.volume.yml | 9 +++ etc/testcase/vnf.vims.yml | 5 ++ etc/testcase/vping.ssh.yml | 5 ++ etc/testcase/vping.userdata.yml | 5 ++ 48 files changed, 354 insertions(+), 92 deletions(-) diff --git a/.gitignore b/.gitignore index 46ccc9d5..478b813c 100644 --- a/.gitignore +++ b/.gitignore @@ -23,6 +23,7 @@ pip-log.txt .coverage .tox .cache +.pytest_cache nosetests.xml unittest_results.log @@ -36,4 +37,4 @@ docs_output/ docs/_build pre_config/ docs/index.rst -docs/requirements.txt \ No newline at end of file +docs/requirements.txt diff --git a/dovetail/report.py b/dovetail/report.py index 20475a3b..9808c7a5 100644 --- a/dovetail/report.py +++ b/dovetail/report.py @@ -35,8 +35,31 @@ class Report(object): def create_log(cls): cls.logger = dt_logger.Logger(__name__ + '.Report').getLogger() + @classmethod + def check_tc_result(cls, testcase): + result_path = dt_cfg.dovetail_config['result_dir'] + check_results_file = dt_utils.get_value_from_dict( + 'report.check_results_file', testcase.testcase) + if not check_results_file: + cls.logger.error("Failed to get 'check_results_file' from config " + "file of test case {}".format(testcase.name())) + cls.check_result(testcase) + return None + result_file = os.path.join(result_path, check_results_file) + if os.path.isfile(result_file): + cls.logger.info( + "Results have been stored with file {}.".format(result_file)) + result = cls.get_result(testcase, result_file) + cls.check_result(testcase, result) + return result + else: + cls.logger.error( + "Failed to store results with file {}.".format(result_file)) + cls.check_result(testcase) + return None + @staticmethod - def check_result(testcase, db_result): + def check_result(testcase, db_result=None): checker = CheckerFactory.create(testcase.validate_type()) if checker is not None: checker.check(testcase, db_result) @@ -163,7 +186,7 @@ class Report(object): os.chdir(cwd) @classmethod - def get_result(cls, testcase): + def get_result(cls, testcase, check_results_file): validate_testcase = testcase.validate_testcase() type = testcase.validate_type() crawler = CrawlerFactory.create(type) @@ -174,7 +197,7 @@ class Report(object): # if validate_testcase in cls.results[type]: # return cls.results[type][validate_testcase] - result = crawler.crawl(testcase) + result = crawler.crawl(testcase, check_results_file) if result is not None: cls.results[type][validate_testcase] = result @@ -216,10 +239,10 @@ class FunctestCrawler(Crawler): cls.logger = \ dt_logger.Logger(__name__ + '.FunctestCrawler').getLogger() - def crawl(self, testcase=None): - return self.crawl_from_file(testcase) + def crawl(self, testcase, file_path): + return self.crawl_from_file(testcase, file_path) - def crawl_from_file(self, testcase=None): + def crawl_from_file(self, testcase, file_path): dovetail_config = dt_cfg.dovetail_config criteria = 'FAIL' details = {} @@ -228,9 +251,6 @@ class FunctestCrawler(Crawler): duration = 0 testcase_name = testcase.validate_testcase() build_tag = '%s-%s' % (dovetail_config['build_tag'], testcase.name()) - file_path = \ - os.path.join(dovetail_config['result_dir'], - dovetail_config[self.type]['result']['file_path']) if not os.path.exists(file_path): self.logger.error('Result file not found: {}'.format(file_path)) return None @@ -293,12 +313,10 @@ class YardstickCrawler(Crawler): cls.logger = \ dt_logger.Logger(__name__ + '.YardstickCrawler').getLogger() - def crawl(self, testcase=None): - return self.crawl_from_file(testcase) + def crawl(self, testcase, file_path): + return self.crawl_from_file(testcase, file_path) - def crawl_from_file(self, testcase=None): - file_path = os.path.join(dt_cfg.dovetail_config['result_dir'], - testcase.name() + '.out') + def crawl_from_file(self, testcase, file_path): if not os.path.exists(file_path): self.logger.error('Result file not found: {}'.format(file_path)) return None @@ -340,12 +358,10 @@ class BottlenecksCrawler(Crawler): cls.logger = \ dt_logger.Logger(__name__ + '.BottlenecksCrawler').getLogger() - def crawl(self, testcase=None): - return self.crawl_from_file(testcase) + def crawl(self, testcase, file_path): + return self.crawl_from_file(testcase, file_path) - def crawl_from_file(self, testcase=None): - file_path = os.path.join(dt_cfg.dovetail_config['result_dir'], - testcase.name() + '.out') + def crawl_from_file(self, testcase, file_path): if not os.path.exists(file_path): self.logger.error('Result file not found: {}'.format(file_path)) return None @@ -370,12 +386,10 @@ class ShellCrawler(Crawler): def __init__(self): self.type = 'shell' - def crawl(self, testcase=None): - return self.crawl_from_file(testcase) + def crawl(self, testcase, file_path): + return self.crawl_from_file(testcase, file_path) - def crawl_from_file(self, testcase=None): - file_path = os.path.join(dt_cfg.dovetail_config['result_dir'], - testcase.name()) + '.out' + def crawl_from_file(self, testcase, file_path): if not os.path.exists(file_path): return None try: @@ -399,13 +413,10 @@ class VnftestCrawler(Crawler): cls.logger = \ dt_logger.Logger(__name__ + '.VnftestCrawler').getLogger() - def crawl(self, testcase): - return self.crawl_from_file(testcase) - - def crawl_from_file(self, testcase): + def crawl(self, testcase, file_path): + return self.crawl_from_file(testcase, file_path) - file_path = os.path.join(dt_cfg.dovetail_config['result_dir'], - testcase.name() + '.out') + def crawl_from_file(self, testcase, file_path): if not os.path.exists(file_path): self.logger.error('Result file not found: {}'.format(file_path)) return None diff --git a/dovetail/run.py b/dovetail/run.py index 512565c3..19d0acb6 100755 --- a/dovetail/run.py +++ b/dovetail/run.py @@ -59,7 +59,7 @@ def run_test(testcase_list, logger): if run_testcase: testcase.run() - stop_on_fail = check_tc_result(testcase, logger) + stop_on_fail = Report.check_tc_result(testcase) try: if (not stop_on_fail or stop_on_fail['criteria'] == "FAIL") \ and dt_cfg.dovetail_config['stop']: @@ -72,28 +72,6 @@ def run_test(testcase_list, logger): return duration -def check_tc_result(testcase, logger): - result_dir = dt_cfg.dovetail_config['result_dir'] - validate_type = testcase.validate_type() - functest_result = dt_cfg.dovetail_config['functest']['result']['file_path'] - if validate_type.lower() in ['yardstick', 'bottlenecks', 'vnftest']: - result_file = os.path.join(result_dir, testcase.name() + '.out') - elif validate_type.lower() == 'functest': - result_file = os.path.join(result_dir, functest_result) - else: - logger.error("Don't support {} now.".format(validate_type)) - return - if os.path.isfile(result_file): - logger.info( - "Results have been stored with file {}.".format(result_file)) - else: - logger.error( - "Failed to store results with file {}.".format(result_file)) - result = Report.get_result(testcase) - Report.check_result(testcase, result) - return result - - def validate_input(input_dict, check_dict, logger): func_tag = input_dict['functest_tag'] yard_tag = input_dict['yardstick_tag'] diff --git a/dovetail/test_runner.py b/dovetail/test_runner.py index aba457e5..44eddabd 100644 --- a/dovetail/test_runner.py +++ b/dovetail/test_runner.py @@ -116,8 +116,29 @@ class DockerRunner(object): if not dt_cfg.dovetail_config['noclean']: Container.clean(container_id, self.type) - def save_logs(self): - pass + def archive_logs(self): + result_path = os.path.join(os.environ["DOVETAIL_HOME"], 'results') + src_files = dt_utils.get_value_from_dict( + 'report.source_archive_files', self.testcase.testcase) + dest_files = dt_utils.get_value_from_dict( + 'report.dest_archive_files', self.testcase.testcase) + if not src_files and not dest_files: + return True + if not (src_files and dest_files) or len(src_files) != len(dest_files): + self.logger.error("Can't find corresponding 'result_dest_files' " + "for 'result_source_files' with testcase {}" + .format(self.testcase.name())) + return False + res = True + for index in range(0, len(src_files)): + src_file_path = os.path.join(result_path, src_files[index]) + dest_file_path = os.path.join(result_path, dest_files[index]) + if os.path.isfile(src_file_path): + os.renames(src_file_path, dest_file_path) + else: + self.logger.error("Can't find file {}.".format(src_file_path)) + res = False + return res @staticmethod def _render(task_template, **kwargs): @@ -170,33 +191,6 @@ class FunctestRunner(DockerRunner): self.type = 'functest' super(FunctestRunner, self).__init__(testcase) - def save_logs(self): - validate_testcase = self.testcase.validate_testcase() - test_area = self.testcase.name().split(".")[1] - result_path = os.path.join(os.environ["DOVETAIL_HOME"], 'results') - dest_path = os.path.join(result_path, test_area + '_logs') - dest_file = os.path.join(dest_path, self.testcase.name() + '.log') - if validate_testcase == 'tempest_custom': - source_file = os.path.join(result_path, 'tempest', 'tempest.log') - elif validate_testcase == 'refstack_defcore': - source_file = os.path.join(result_path, 'refstack', 'tempest.log') - elif validate_testcase == 'bgpvpn': - source_file = os.path.join(result_path, 'bgpvpn.log') - elif validate_testcase == 'patrole': - source_file = os.path.join(result_path, 'patrole', 'tempest.log') - elif validate_testcase == 'neutron_trunk': - source_file = os.path.join(result_path, - 'neutron_trunk', - 'tempest.log') - else: - source_file = None - if source_file: - if os.path.isfile(source_file): - os.renames(source_file, dest_file) - else: - self.logger.error("Tempest log file for test case {} is not " - "found.".format(self.testcase.name())) - class YardstickRunner(DockerRunner): diff --git a/dovetail/testcase.py b/dovetail/testcase.py index 9680f192..272cf43c 100644 --- a/dovetail/testcase.py +++ b/dovetail/testcase.py @@ -159,7 +159,7 @@ class Testcase(object): runner = TestRunnerFactory.create(self) try: runner.run() - runner.save_logs() + runner.archive_logs() except AttributeError as e: self.logger.exception( 'Test case: {} Exception: {}'.format(self.name, e)) diff --git a/etc/conf/bottlenecks_config.yml b/etc/conf/bottlenecks_config.yml index 3004e91c..76a57c30 100644 --- a/etc/conf/bottlenecks_config.yml +++ b/etc/conf/bottlenecks_config.yml @@ -38,7 +38,6 @@ bottlenecks: openstack --insecure flavor delete yardstick-flavor)' result: dir: '/tmp' - file_path: 'bottlenecks.log' openrc: '/tmp/admin_rc.sh' extra_container: - 'Bottlenecks-Yardstick' diff --git a/etc/conf/functest_config.yml b/etc/conf/functest_config.yml index 0251b732..93e822f4 100644 --- a/etc/conf/functest_config.yml +++ b/etc/conf/functest_config.yml @@ -16,5 +16,4 @@ functest: - 'echo test for postcondition in functest' result: dir: '/home/opnfv/functest/results' - file_path: 'functest_results.txt' openrc: '/home/opnfv/functest/conf/env_file' diff --git a/etc/conf/vnftest_config.yml b/etc/conf/vnftest_config.yml index 25a84c7b..82e068b5 100644 --- a/etc/conf/vnftest_config.yml +++ b/etc/conf/vnftest_config.yml @@ -19,7 +19,6 @@ vnftest: result: dir: '/home/onap/vnftest/results' log: '/tmp/vnftest' - file_path: 'vnftest.log' key_path: '/root/.ssh/id_rsa' openrc: '/etc/vnftest/openstack.creds' vnftest_conf: diff --git a/etc/conf/yardstick_config.yml b/etc/conf/yardstick_config.yml index 7e7ab73b..4b32193b 100644 --- a/etc/conf/yardstick_config.yml +++ b/etc/conf/yardstick_config.yml @@ -30,5 +30,4 @@ yardstick: - 'echo this is post_condition' result: dir: '/tmp/yardstick' - file_path: 'yardstick.log' openrc: '/etc/yardstick/openstack.creds' diff --git a/etc/testcase/ha.cinder_api.yml b/etc/testcase/ha.cinder_api.yml index 9ba86df5..207e91f2 100644 --- a/etc/testcase/ha.cinder_api.yml +++ b/etc/testcase/ha.cinder_api.yml @@ -8,4 +8,11 @@ dovetail.ha.cinder_api: type: yardstick testcase: opnfv_yardstick_tc048 report: + source_archive_files: + - yardstick.log + - dovetail.ha.cinder_api.out + dest_archive_files: + - ha_logs/dovetail.ha.cinder_api.log + - ha_logs/dovetail.ha.cinder_api.out + check_results_file: ha_logs/dovetail.ha.cinder_api.out sub_testcase_list: diff --git a/etc/testcase/ha.controller_restart.yml b/etc/testcase/ha.controller_restart.yml index 79cc0933..d64b06b9 100644 --- a/etc/testcase/ha.controller_restart.yml +++ b/etc/testcase/ha.controller_restart.yml @@ -6,4 +6,11 @@ dovetail.ha.controller_restart: type: yardstick testcase: opnfv_yardstick_tc025 report: + source_archive_files: + - yardstick.log + - dovetail.ha.controller_restart.out + dest_archive_files: + - ha_logs/dovetail.ha.controller_restart.log + - ha_logs/dovetail.ha.controller_restart.out + check_results_file: ha_logs/dovetail.ha.controller_restart.out sub_testcase_list: diff --git a/etc/testcase/ha.cpu_load.yml b/etc/testcase/ha.cpu_load.yml index b10fc980..c8b57683 100644 --- a/etc/testcase/ha.cpu_load.yml +++ b/etc/testcase/ha.cpu_load.yml @@ -11,4 +11,11 @@ dovetail.ha.cpu_load: type: yardstick testcase: opnfv_yardstick_tc051 report: + source_archive_files: + - yardstick.log + - dovetail.ha.cpu_load.out + dest_archive_files: + - ha_logs/dovetail.ha.cpu_load.log + - ha_logs/dovetail.ha.cpu_load.out + check_results_file: ha_logs/dovetail.ha.cpu_load.out sub_testcase_list: diff --git a/etc/testcase/ha.database.yml b/etc/testcase/ha.database.yml index adcac251..427ccb11 100644 --- a/etc/testcase/ha.database.yml +++ b/etc/testcase/ha.database.yml @@ -8,4 +8,11 @@ dovetail.ha.database: type: yardstick testcase: opnfv_yardstick_tc090 report: + source_archive_files: + - yardstick.log + - dovetail.ha.database.out + dest_archive_files: + - ha_logs/dovetail.ha.database.log + - ha_logs/dovetail.ha.database.out + check_results_file: ha_logs/dovetail.ha.database.out sub_testcase_list: diff --git a/etc/testcase/ha.disk_load.yml b/etc/testcase/ha.disk_load.yml index d314546d..628cb94d 100644 --- a/etc/testcase/ha.disk_load.yml +++ b/etc/testcase/ha.disk_load.yml @@ -10,4 +10,11 @@ dovetail.ha.disk_load: type: yardstick testcase: opnfv_yardstick_tc052 report: + source_archive_files: + - yardstick.log + - dovetail.ha.disk_load.out + dest_archive_files: + - ha_logs/dovetail.ha.disk_load.log + - ha_logs/dovetail.ha.disk_load.out + check_results_file: ha_logs/dovetail.ha.disk_load.out sub_testcase_list: diff --git a/etc/testcase/ha.glance_api.yml b/etc/testcase/ha.glance_api.yml index 7e6a2bdf..6a4a8fc9 100644 --- a/etc/testcase/ha.glance_api.yml +++ b/etc/testcase/ha.glance_api.yml @@ -8,4 +8,11 @@ dovetail.ha.glance_api: type: yardstick testcase: opnfv_yardstick_tc047 report: + source_archive_files: + - yardstick.log + - dovetail.ha.glance_api.out + dest_archive_files: + - ha_logs/dovetail.ha.glance_api.log + - ha_logs/dovetail.ha.glance_api.out + check_results_file: ha_logs/dovetail.ha.glance_api.out sub_testcase_list: diff --git a/etc/testcase/ha.haproxy.yml b/etc/testcase/ha.haproxy.yml index 85a64e29..3b1b6f4e 100644 --- a/etc/testcase/ha.haproxy.yml +++ b/etc/testcase/ha.haproxy.yml @@ -11,4 +11,11 @@ dovetail.ha.haproxy: type: yardstick testcase: opnfv_yardstick_tc053 report: + source_archive_files: + - yardstick.log + - dovetail.ha.haproxy.out + dest_archive_files: + - ha_logs/dovetail.ha.haproxy.log + - ha_logs/dovetail.ha.haproxy.out + check_results_file: ha_logs/dovetail.ha.haproxy.out sub_testcase_list: diff --git a/etc/testcase/ha.keystone.yml b/etc/testcase/ha.keystone.yml index e5f97f22..c9de127f 100644 --- a/etc/testcase/ha.keystone.yml +++ b/etc/testcase/ha.keystone.yml @@ -8,4 +8,11 @@ dovetail.ha.keystone: type: yardstick testcase: opnfv_yardstick_tc046 report: + source_archive_files: + - yardstick.log + - dovetail.ha.keystone.out + dest_archive_files: + - ha_logs/dovetail.ha.keystone.log + - ha_logs/dovetail.ha.keystone.out + check_results_file: ha_logs/dovetail.ha.keystone.out sub_testcase_list: diff --git a/etc/testcase/ha.neutron_l3_agent.yml b/etc/testcase/ha.neutron_l3_agent.yml index 6238360a..018dcda8 100644 --- a/etc/testcase/ha.neutron_l3_agent.yml +++ b/etc/testcase/ha.neutron_l3_agent.yml @@ -18,4 +18,11 @@ dovetail.ha.neutron_l3_agent: post_condition: - 'source /etc/yardstick/openstack.creds && openstack --insecure image delete cirros-ha-11' report: + source_archive_files: + - yardstick.log + - dovetail.ha.neutron_l3_agent.out + dest_archive_files: + - ha_logs/dovetail.ha.neutron_l3_agent.log + - ha_logs/dovetail.ha.neutron_l3_agent.out + check_results_file: ha_logs/dovetail.ha.neutron_l3_agent.out sub_testcase_list: diff --git a/etc/testcase/ha.neutron_server.yml b/etc/testcase/ha.neutron_server.yml index 7523b3bc..98bfd7dd 100644 --- a/etc/testcase/ha.neutron_server.yml +++ b/etc/testcase/ha.neutron_server.yml @@ -8,4 +8,11 @@ dovetail.ha.neutron_server: type: yardstick testcase: opnfv_yardstick_tc045 report: + source_archive_files: + - yardstick.log + - dovetail.ha.neutron_server.out + dest_archive_files: + - ha_logs/dovetail.ha.neutron_server.log + - ha_logs/dovetail.ha.neutron_server.out + check_results_file: ha_logs/dovetail.ha.neutron_server.out sub_testcase_list: diff --git a/etc/testcase/ha.nova_api.yml b/etc/testcase/ha.nova_api.yml index 31f56a0f..3de0d26d 100644 --- a/etc/testcase/ha.nova_api.yml +++ b/etc/testcase/ha.nova_api.yml @@ -8,4 +8,11 @@ dovetail.ha.nova_api: type: yardstick testcase: opnfv_yardstick_tc019 report: + source_archive_files: + - yardstick.log + - dovetail.ha.nova_api.out + dest_archive_files: + - ha_logs/dovetail.ha.nova_api.log + - ha_logs/dovetail.ha.nova_api.out + check_results_file: ha_logs/dovetail.ha.nova_api.out sub_testcase_list: diff --git a/etc/testcase/ha.rabbitmq.yml b/etc/testcase/ha.rabbitmq.yml index f55eb7b5..39611b44 100644 --- a/etc/testcase/ha.rabbitmq.yml +++ b/etc/testcase/ha.rabbitmq.yml @@ -6,4 +6,11 @@ dovetail.ha.rabbitmq: type: yardstick testcase: opnfv_yardstick_tc056 report: + source_archive_files: + - yardstick.log + - dovetail.ha.rabbitmq.out + dest_archive_files: + - ha_logs/dovetail.ha.rabbitmq.log + - ha_logs/dovetail.ha.rabbitmq.out + check_results_file: ha_logs/dovetail.ha.rabbitmq.out sub_testcase_list: diff --git a/etc/testcase/healthcheck.api_check.yml b/etc/testcase/healthcheck.api_check.yml index 5a8b47b2..ed1a350b 100644 --- a/etc/testcase/healthcheck.api_check.yml +++ b/etc/testcase/healthcheck.api_check.yml @@ -6,4 +6,9 @@ dovetail.healthcheck.api_check: type: functest testcase: api_check report: + source_archive_files: + - functest.log + dest_archive_files: + - healthcheck_logs/dovetail.healthcheck.api_check.log + check_results_file: 'functest_results.txt' sub_testcase_list: diff --git a/etc/testcase/healthcheck.connection_check.yml b/etc/testcase/healthcheck.connection_check.yml index 195bf504..f6446497 100644 --- a/etc/testcase/healthcheck.connection_check.yml +++ b/etc/testcase/healthcheck.connection_check.yml @@ -6,4 +6,9 @@ dovetail.healthcheck.connection_check: type: functest testcase: connection_check report: + source_archive_files: + - functest.log + dest_archive_files: + - healthcheck_logs/dovetail.healthcheck.connection_check.log + check_results_file: 'functest_results.txt' sub_testcase_list: diff --git a/etc/testcase/healthcheck.snaps_health_check.yml b/etc/testcase/healthcheck.snaps_health_check.yml index 87b4ec4a..5d183445 100644 --- a/etc/testcase/healthcheck.snaps_health_check.yml +++ b/etc/testcase/healthcheck.snaps_health_check.yml @@ -6,4 +6,9 @@ dovetail.healthcheck.snaps_health_check: type: functest testcase: snaps_health_check report: + source_archive_files: + - functest.log + dest_archive_files: + - healthcheck_logs/dovetail.healthcheck.snaps_health_check.log + check_results_file: 'functest_results.txt' sub_testcase_list: diff --git a/etc/testcase/onap.vnf_lifecycle.yml b/etc/testcase/onap.vnf_lifecycle.yml index f1e8a34d..cc1789ce 100644 --- a/etc/testcase/onap.vnf_lifecycle.yml +++ b/etc/testcase/onap.vnf_lifecycle.yml @@ -6,4 +6,11 @@ dovetail.onap.vnf_lifecycle: type: vnftest testcase: onap_vnftest_tc001 report: - sub_testcase_list: \ No newline at end of file + source_archive_files: + - vnftest.log + - dovetail.onap.vnf_lifecycle.out + dest_archive_files: + - onap_logs/dovetail.onap.vnf_lifecycle.log + - onap_logs/dovetail.onap.vnf_lifecycle.out + check_results_file: onap_logs/dovetail.onap.vnf_lifecycle.out + sub_testcase_list: diff --git a/etc/testcase/sdnvpn.router_association.yml b/etc/testcase/sdnvpn.router_association.yml index 2860d98b..f52446fe 100644 --- a/etc/testcase/sdnvpn.router_association.yml +++ b/etc/testcase/sdnvpn.router_association.yml @@ -10,4 +10,11 @@ dovetail.sdnvpn.router_association: exist_src_file: sdnvpn_config_testcase4.yaml dest_path: /usr/lib/python2.7/site-packages/sdnvpn/test/functest/config.yaml report: + source_archive_files: + - functest.log + - bgpvpn.log + dest_archive_files: + - sdnvpn_logs/dovetail.sdnvpn.router_association.functest.log + - sdnvpn_logs/dovetail.sdnvpn.router_association.log + check_results_file: 'functest_results.txt' sub_testcase_list: diff --git a/etc/testcase/sdnvpn.router_association_floating_ip.yml b/etc/testcase/sdnvpn.router_association_floating_ip.yml index f105c867..bdcc38d9 100644 --- a/etc/testcase/sdnvpn.router_association_floating_ip.yml +++ b/etc/testcase/sdnvpn.router_association_floating_ip.yml @@ -10,4 +10,11 @@ dovetail.sdnvpn.router_association_floating_ip: exist_src_file: sdnvpn_config_testcase8.yaml dest_path: /usr/lib/python2.7/site-packages/sdnvpn/test/functest/config.yaml report: + source_archive_files: + - functest.log + - bgpvpn.log + dest_archive_files: + - sdnvpn_logs/dovetail.sdnvpn.router_association_floating_ip.functest.log + - sdnvpn_logs/dovetail.sdnvpn.router_association_floating_ip.log + check_results_file: 'functest_results.txt' sub_testcase_list: diff --git a/etc/testcase/sdnvpn.subnet_connectivity.yml b/etc/testcase/sdnvpn.subnet_connectivity.yml index 226653c7..dcecd78f 100644 --- a/etc/testcase/sdnvpn.subnet_connectivity.yml +++ b/etc/testcase/sdnvpn.subnet_connectivity.yml @@ -10,4 +10,11 @@ dovetail.sdnvpn.subnet_connectivity: exist_src_file: sdnvpn_config_testcase1.yaml dest_path: /usr/lib/python2.7/site-packages/sdnvpn/test/functest/config.yaml report: + source_archive_files: + - functest.log + - bgpvpn.log + dest_archive_files: + - sdnvpn_logs/dovetail.sdnvpn.subnet_connectivity.functest.log + - sdnvpn_logs/dovetail.sdnvpn.subnet_connectivity.log + check_results_file: 'functest_results.txt' sub_testcase_list: diff --git a/etc/testcase/sdnvpn.tenant_separation.yml b/etc/testcase/sdnvpn.tenant_separation.yml index b4f2711a..bf0459c6 100644 --- a/etc/testcase/sdnvpn.tenant_separation.yml +++ b/etc/testcase/sdnvpn.tenant_separation.yml @@ -10,4 +10,11 @@ dovetail.sdnvpn.tenant_separation: exist_src_file: sdnvpn_config_testcase2.yaml dest_path: /usr/lib/python2.7/site-packages/sdnvpn/test/functest/config.yaml report: + source_archive_files: + - functest.log + - bgpvpn.log + dest_archive_files: + - sdnvpn_logs/dovetail.sdnvpn.tenant_separation.functest.log + - sdnvpn_logs/dovetail.sdnvpn.tenant_separation.log + check_results_file: 'functest_results.txt' sub_testcase_list: diff --git a/etc/testcase/security.patrole.yml b/etc/testcase/security.patrole.yml index 354f2fe6..97068f7d 100644 --- a/etc/testcase/security.patrole.yml +++ b/etc/testcase/security.patrole.yml @@ -6,4 +6,13 @@ dovetail.security.patrole: type: functest testcase: patrole report: + source_archive_files: + - functest.log + - patrole/tempest.log + - patrole/tempest-report.html + dest_archive_files: + - security_logs/dovetail.security.patrole.functest.log + - security_logs/dovetail.security.patrole.log + - security_logs/dovetail.security.patrole.html + check_results_file: 'functest_results.txt' sub_testcase_list: diff --git a/etc/testcase/snaps.smoke.yml b/etc/testcase/snaps.smoke.yml index 3ebbfa27..f012a7cd 100644 --- a/etc/testcase/snaps.smoke.yml +++ b/etc/testcase/snaps.smoke.yml @@ -6,4 +6,9 @@ dovetail.snaps.smoke: type: functest testcase: snaps_smoke report: + source_archive_files: + - functest.log + dest_archive_files: + - snaps_logs/dovetail.snaps.smoke.log + check_results_file: 'functest_results.txt' sub_testcase_list: diff --git a/etc/testcase/stress.ping.yml b/etc/testcase/stress.ping.yml index e1026543..4c8e2c58 100644 --- a/etc/testcase/stress.ping.yml +++ b/etc/testcase/stress.ping.yml @@ -8,4 +8,11 @@ dovetail.stress.ping: type: bottlenecks testcase: posca_factor_ping report: + source_archive_files: + - bottlenecks.log + - dovetail.stress.ping.out + dest_archive_files: + - stress_logs/dovetail.stress.ping.log + - stress_logs/dovetail.stress.ping.out + check_results_file: stress_logs/dovetail.stress.ping.out sub_testcase_list: diff --git a/etc/testcase/tempest.bgpvpn.yml b/etc/testcase/tempest.bgpvpn.yml index 02072623..0801a315 100644 --- a/etc/testcase/tempest.bgpvpn.yml +++ b/etc/testcase/tempest.bgpvpn.yml @@ -13,4 +13,11 @@ dovetail.tempest.bgpvpn: exist_src_file: sdnvpn_config_tc000.yaml dest_path: /usr/lib/python2.7/site-packages/sdnvpn/test/functest/config.yaml report: + source_archive_files: + - functest.log + - bgpvpn.log + dest_archive_files: + - tempest_logs/dovetail.tempest.bgpvpn.functest.log + - tempest_logs/dovetail.tempest.bgpvpn.log + check_results_file: 'functest_results.txt' sub_testcase_list: diff --git a/etc/testcase/tempest.compute.yml b/etc/testcase/tempest.compute.yml index 630a36c4..4ce58d1e 100644 --- a/etc/testcase/tempest.compute.yml +++ b/etc/testcase/tempest.compute.yml @@ -12,6 +12,15 @@ dovetail.tempest.compute: src_file: tempest_custom.txt dest_path: /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/test_list.txt report: + source_archive_files: + - functest.log + - tempest/tempest.log + - tempest/tempest-report.html + dest_archive_files: + - tempest_logs/dovetail.tempest.compute.functest.log + - tempest_logs/dovetail.tempest.compute.log + - tempest_logs/dovetail.tempest.compute.html + check_results_file: 'functest_results.txt' sub_testcase_list: - tempest.api.compute.flavors.test_flavors.FlavorsV2TestJSON.test_get_flavor[id-1f12046b-753d-40d2-abb6-d8eb8b30cb2f,smoke] - tempest.api.compute.flavors.test_flavors.FlavorsV2TestJSON.test_list_flavors[id-e36c0eaa-dff5-4082-ad1f-3f9a80aa3f59,smoke] diff --git a/etc/testcase/tempest.identity_v2.yml b/etc/testcase/tempest.identity_v2.yml index 7d1ca7cd..8a9e578d 100644 --- a/etc/testcase/tempest.identity_v2.yml +++ b/etc/testcase/tempest.identity_v2.yml @@ -12,6 +12,15 @@ dovetail.tempest.identity_v2: src_file: tempest_custom.txt dest_path: /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/test_list.txt report: + source_archive_files: + - functest.log + - tempest/tempest.log + - tempest/tempest-report.html + dest_archive_files: + - tempest_logs/dovetail.tempest.identity_v2.functest.log + - tempest_logs/dovetail.tempest.identity_v2.log + - tempest_logs/dovetail.tempest.identity_v2.html + check_results_file: 'functest_results.txt' sub_testcase_list: - tempest.api.identity.admin.v2.test_services.ServicesTestJSON.test_list_services[id-34ea6489-012d-4a86-9038-1287cadd5eca,smoke] - tempest.api.identity.admin.v2.test_users.UsersTestJSON.test_create_user[id-2d55a71e-da1d-4b43-9c03-d269fd93d905,smoke] diff --git a/etc/testcase/tempest.identity_v3.yml b/etc/testcase/tempest.identity_v3.yml index 5cb387c9..2ba46548 100644 --- a/etc/testcase/tempest.identity_v3.yml +++ b/etc/testcase/tempest.identity_v3.yml @@ -12,6 +12,15 @@ dovetail.tempest.identity_v3: src_file: tempest_custom.txt dest_path: /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/test_list.txt report: + source_archive_files: + - functest.log + - tempest/tempest.log + - tempest/tempest-report.html + dest_archive_files: + - tempest_logs/dovetail.tempest.identity_v3.functest.log + - tempest_logs/dovetail.tempest.identity_v3.log + - tempest_logs/dovetail.tempest.identity_v3.html + check_results_file: 'functest_results.txt' sub_testcase_list: - tempest.api.identity.admin.v3.test_credentials.CredentialsTestJSON.test_credentials_create_get_update_delete[id-7cd59bf9-bda4-4c72-9467-d21cab278355,smoke] - tempest.api.identity.admin.v3.test_domains.DefaultDomainTestJSON.test_default_domain_exists[id-17a5de24-e6a0-4e4a-a9ee-d85b6e5612b5,smoke] diff --git a/etc/testcase/tempest.image.yml b/etc/testcase/tempest.image.yml index 739647fc..d2d6fddd 100644 --- a/etc/testcase/tempest.image.yml +++ b/etc/testcase/tempest.image.yml @@ -12,6 +12,15 @@ dovetail.tempest.image: src_file: tempest_custom.txt dest_path: /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/test_list.txt report: + source_archive_files: + - functest.log + - tempest/tempest.log + - tempest/tempest-report.html + dest_archive_files: + - tempest_logs/dovetail.tempest.image.functest.log + - tempest_logs/dovetail.tempest.image.log + - tempest_logs/dovetail.tempest.image.html + check_results_file: 'functest_results.txt' sub_testcase_list: - tempest.api.image.v2.test_images.BasicOperationsImagesTest.test_register_upload_get_image_file[id-139b765e-7f3d-4b3d-8b37-3ca3876ee318,smoke] - tempest.api.image.v2.test_versions.VersionsTest.test_list_versions[id-659ea30a-a17c-4317-832c-0f68ed23c31d,smoke] diff --git a/etc/testcase/tempest.ipv6.yml b/etc/testcase/tempest.ipv6.yml index 31ea3c83..99733e18 100644 --- a/etc/testcase/tempest.ipv6.yml +++ b/etc/testcase/tempest.ipv6.yml @@ -12,6 +12,15 @@ dovetail.tempest.ipv6: src_file: tempest_custom.txt dest_path: /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/test_list.txt report: + source_archive_files: + - functest.log + - tempest/tempest.log + - tempest/tempest-report.html + dest_archive_files: + - tempest_logs/dovetail.tempest.ipv6.functest.log + - tempest_logs/dovetail.tempest.ipv6.log + - tempest_logs/dovetail.tempest.ipv6.html + check_results_file: 'functest_results.txt' sub_testcase_list: - tempest.api.network.test_networks.BulkNetworkOpsIpV6Test.test_bulk_create_delete_network[id-d4f9024d-1e28-4fc1-a6b1-25dbc6fa11e2,smoke] - tempest.api.network.test_networks.BulkNetworkOpsIpV6Test.test_bulk_create_delete_port[id-48037ff2-e889-4c3b-b86a-8e3f34d2d060,smoke] diff --git a/etc/testcase/tempest.multi_node_scheduling.yml b/etc/testcase/tempest.multi_node_scheduling.yml index 47eef0a0..0c77bb79 100644 --- a/etc/testcase/tempest.multi_node_scheduling.yml +++ b/etc/testcase/tempest.multi_node_scheduling.yml @@ -12,6 +12,15 @@ dovetail.tempest.multi_node_scheduling: src_file: tempest_custom.txt dest_path: /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/test_list.txt report: + source_archive_files: + - functest.log + - tempest/tempest.log + - tempest/tempest-report.html + dest_archive_files: + - tempest_logs/dovetail.tempest.multi_node_scheduling.functest.log + - tempest_logs/dovetail.tempest.multi_node_scheduling.log + - tempest_logs/dovetail.tempest.multi_node_scheduling.html + check_results_file: 'functest_results.txt' sub_testcase_list: - tempest.scenario.test_server_multinode.TestServerMultinode.test_schedule_to_all_nodes[compute,id-9cecbe35-b9d4-48da-a37e-7ce70aa43d30,network,smoke] - tempest.api.compute.servers.test_server_group.ServerGroupTestJSON.test_create_delete_multiple_server_groups_with_same_name_policy[id-154dc5a4-a2fe-44b5-b99e-f15806a4a113] diff --git a/etc/testcase/tempest.network.yml b/etc/testcase/tempest.network.yml index 40fb966c..36cf5471 100644 --- a/etc/testcase/tempest.network.yml +++ b/etc/testcase/tempest.network.yml @@ -12,6 +12,15 @@ dovetail.tempest.network: src_file: tempest_custom.txt dest_path: /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/test_list.txt report: + source_archive_files: + - functest.log + - tempest/tempest.log + - tempest/tempest-report.html + dest_archive_files: + - tempest_logs/dovetail.tempest.network.functest.log + - tempest_logs/dovetail.tempest.network.log + - tempest_logs/dovetail.tempest.network.html + check_results_file: 'functest_results.txt' sub_testcase_list: - tempest.api.network.test_extensions.ExtensionsTestJSON.test_list_show_extensions[id-ef28c7e6-e646-4979-9d67-deb207bc5564,smoke] - tempest.api.network.test_floating_ips.FloatingIPTestJSON.test_create_floating_ip_specifying_a_fixed_ip_address[id-36de4bd0-f09c-43e3-a8e1-1decc1ffd3a5,smoke] diff --git a/etc/testcase/tempest.network_security.yml b/etc/testcase/tempest.network_security.yml index 197af7fd..dbd33324 100644 --- a/etc/testcase/tempest.network_security.yml +++ b/etc/testcase/tempest.network_security.yml @@ -12,6 +12,15 @@ dovetail.tempest.network_security: src_file: tempest_custom.txt dest_path: /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/test_list.txt report: + source_archive_files: + - functest.log + - tempest/tempest.log + - tempest/tempest-report.html + dest_archive_files: + - tempest_logs/dovetail.tempest.network_security.functest.log + - tempest_logs/dovetail.tempest.network_security.log + - tempest_logs/dovetail.tempest.network_security.html + check_results_file: 'functest_results.txt' sub_testcase_list: - tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_port_security_macspoofing_port[compute,id-7c0bb1a2-d053-49a4-98f9-ca1a1d849f63,network,slow] - tempest.scenario.test_security_groups_basic_ops.TestSecurityGroupsBasicOps.test_cross_tenant_traffic[compute,id-e79f879e-debb-440c-a7e4-efeda05b6848,network] diff --git a/etc/testcase/tempest.osinterop.yml b/etc/testcase/tempest.osinterop.yml index b91fe5f2..005fe642 100644 --- a/etc/testcase/tempest.osinterop.yml +++ b/etc/testcase/tempest.osinterop.yml @@ -11,10 +11,16 @@ dovetail.tempest.osinterop: pre_condition: - 'cp /home/opnfv/userconfig/pre_config/tempest_conf.yaml /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/tempest_conf.yaml' - 'cp /home/opnfv/userconfig/pre_config/testcases.yaml /usr/lib/python2.7/site-packages/xtesting/ci/testcases.yaml' - pre_copy: - src_file: osinterop.txt - dest_path: /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/refstack_client/defcore.txt report: + source_archive_files: + - functest.log + - refstack/tempest.log + - refstack/tempest-report.html + dest_archive_files: + - tempest_logs/dovetail.tempest.osinterop.functest.log + - tempest_logs/dovetail.tempest.osinterop.log + - tempest_logs/dovetail.tempest.osinterop.html + check_results_file: 'functest_results.txt' sub_testcase_list: - tempest.api.network.test_security_groups.SecGroupTest.test_create_security_group_rule_with_icmp_type_code - tempest.api.network.test_networks.NetworksTest.test_update_subnet_gw_dns_host_routes_dhcp diff --git a/etc/testcase/tempest.trunk-ports.yml b/etc/testcase/tempest.trunk-ports.yml index ea07d653..00c4f84a 100644 --- a/etc/testcase/tempest.trunk-ports.yml +++ b/etc/testcase/tempest.trunk-ports.yml @@ -6,4 +6,13 @@ dovetail.tempest.neutron_trunk_ports: type: functest testcase: neutron_trunk report: + source_archive_files: + - functest.log + - neutron_trunk/tempest.log + - neutron_trunk/tempest-report.html + dest_archive_files: + - tempest_logs/dovetail.tempest.neutron_trunk_ports.functest.log + - tempest_logs/dovetail.tempest.neutron_trunk_ports.log + - tempest_logs/dovetail.tempest.neutron_trunk_ports.html + check_results_file: 'functest_results.txt' sub_testcase_list: diff --git a/etc/testcase/tempest.vm_lifecycle.yml b/etc/testcase/tempest.vm_lifecycle.yml index c35de6ef..282c450a 100644 --- a/etc/testcase/tempest.vm_lifecycle.yml +++ b/etc/testcase/tempest.vm_lifecycle.yml @@ -12,6 +12,15 @@ dovetail.tempest.vm_lifecycle: src_file: tempest_custom.txt dest_path: /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/test_list.txt report: + source_archive_files: + - functest.log + - tempest/tempest.log + - tempest/tempest-report.html + dest_archive_files: + - tempest_logs/dovetail.tempest.vm_lifecycle.functest.log + - tempest_logs/dovetail.tempest.vm_lifecycle.log + - tempest_logs/dovetail.tempest.vm_lifecycle.html + check_results_file: 'functest_results.txt' sub_testcase_list: - tempest.scenario.test_minimum_basic.TestMinimumBasicScenario.test_minimum_basic_scenario[compute,id-bdbb5441-9204-419d-a225-b4fdbfb1a1a8,image,network,volume] - tempest.scenario.test_network_advanced_server_ops.TestNetworkAdvancedServerOps.test_server_connectivity_cold_migration[compute,id-a4858f6c-401e-4155-9a49-d5cd053d1a2f,network,slow] diff --git a/etc/testcase/tempest.volume.yml b/etc/testcase/tempest.volume.yml index a8f93672..0f24b5ce 100644 --- a/etc/testcase/tempest.volume.yml +++ b/etc/testcase/tempest.volume.yml @@ -12,6 +12,15 @@ dovetail.tempest.volume: src_file: tempest_custom.txt dest_path: /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/test_list.txt report: + source_archive_files: + - functest.log + - tempest/tempest.log + - tempest/tempest-report.html + dest_archive_files: + - tempest_logs/dovetail.tempest.volume.functest.log + - tempest_logs/dovetail.tempest.volume.log + - tempest_logs/dovetail.tempest.volume.html + check_results_file: 'functest_results.txt' sub_testcase_list: - tempest.api.volume.test_volumes_actions.VolumesActionsTest.test_attach_detach_volume_to_instance[compute,id-fff42874-7db5-4487-a8e1-ddda5fb5288d,smoke] # diff --git a/etc/testcase/vnf.vims.yml b/etc/testcase/vnf.vims.yml index 4a36fe08..8dc7ce4a 100644 --- a/etc/testcase/vnf.vims.yml +++ b/etc/testcase/vnf.vims.yml @@ -7,4 +7,9 @@ dovetail.vnf.vims: testcase: cloudify_ims image_name: opnfv/functest-vnf report: + source_archive_files: + - functest.log + dest_archive_files: + - vnf_logs/dovetail.vnf.vims.log + check_results_file: 'functest_results.txt' sub_testcase_list: diff --git a/etc/testcase/vping.ssh.yml b/etc/testcase/vping.ssh.yml index a46bcc89..a2a96034 100644 --- a/etc/testcase/vping.ssh.yml +++ b/etc/testcase/vping.ssh.yml @@ -6,4 +6,9 @@ dovetail.vping.ssh: type: functest testcase: vping_ssh report: + source_archive_files: + - functest.log + dest_archive_files: + - vping_logs/dovetail.vping.ssh.log + check_results_file: 'functest_results.txt' sub_testcase_list: diff --git a/etc/testcase/vping.userdata.yml b/etc/testcase/vping.userdata.yml index 9a6f4c5a..0bf1f9a0 100644 --- a/etc/testcase/vping.userdata.yml +++ b/etc/testcase/vping.userdata.yml @@ -6,4 +6,9 @@ dovetail.vping.userdata: type: functest testcase: vping_userdata report: + source_archive_files: + - functest.log + dest_archive_files: + - vping_logs/dovetail.vping.userdata.log + check_results_file: 'functest_results.txt' sub_testcase_list: -- cgit 1.2.3-korg