diff options
48 files changed, 354 insertions, 92 deletions
@@ -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: |