This fixes test errors related to failures copying temporary test results files from a remote system back to the local system.
It also speeds up processing of test results and reduces network utilization by avoiding the temporary files.
(cherry picked from commit 3f2380cccefe4c4352970324b57c7e3ee22558a1)
Co-authored-by: Matt Clay <matt@mystile.com>
... | ... |
@@ -425,7 +425,7 @@ def delegate_docker(args, exclude, require, integration_targets): |
425 | 425 |
remote_temp_file = os.path.join('/root', remote_results_name + '.tgz') |
426 | 426 |
|
427 | 427 |
with tempfile.NamedTemporaryFile(prefix='ansible-result-', suffix='.tgz') as local_result_fd: |
428 |
- docker_exec(args, test_id, ['tar', 'czf', remote_temp_file, '-C', remote_test_root, remote_results_name]) |
|
428 |
+ docker_exec(args, test_id, ['tar', 'czf', remote_temp_file, '--exclude', ResultType.TMP.name, '-C', remote_test_root, remote_results_name]) |
|
429 | 429 |
docker_get(args, test_id, remote_temp_file, local_result_fd.name) |
430 | 430 |
run_command(args, ['tar', 'oxzf', local_result_fd.name, '-C', local_test_root]) |
431 | 431 |
finally: |
... | ... |
@@ -547,7 +547,7 @@ def delegate_remote(args, exclude, require, integration_targets): |
547 | 547 |
remote_results_name = os.path.basename(remote_results_root) |
548 | 548 |
remote_temp_path = os.path.join('/tmp', remote_results_name) |
549 | 549 |
|
550 |
- manage.ssh('rm -rf {0} && cp -a {1} {0} && chmod -R a+r {0}'.format(remote_temp_path, remote_results_root)) |
|
550 |
+ manage.ssh('rm -rf {0} && mkdir {0} && cp -a {1}/* {0}/ && chmod -R a+r {0}'.format(remote_temp_path, remote_results_root)) |
|
551 | 551 |
manage.download(remote_temp_path, local_test_root) |
552 | 552 |
finally: |
553 | 553 |
if args.remote_terminate == 'always' or (args.remote_terminate == 'success' and success): |