summaryrefslogtreecommitdiffstats
path: root/dovetail/test_runner.py
diff options
context:
space:
mode:
Diffstat (limited to 'dovetail/test_runner.py')
-rw-r--r--dovetail/test_runner.py52
1 files changed, 23 insertions, 29 deletions
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):