From a25fd1021a36a05bd07095d51a2dcff0d49bbba4 Mon Sep 17 00:00:00 2001 From: Matt Clay Date: Fri, 5 Sep 2025 11:15:43 -0700 Subject: [PATCH] ansible-test - Fix traceback on missing tmp dir (#85814) --- changelogs/fragments/ansible-test-missing-dir-fix.yml | 2 ++ test/lib/ansible_test/_internal/delegation.py | 2 ++ 2 files changed, 4 insertions(+) create mode 100644 changelogs/fragments/ansible-test-missing-dir-fix.yml diff --git a/changelogs/fragments/ansible-test-missing-dir-fix.yml b/changelogs/fragments/ansible-test-missing-dir-fix.yml new file mode 100644 index 00000000000..cc7e9b21f5f --- /dev/null +++ b/changelogs/fragments/ansible-test-missing-dir-fix.yml @@ -0,0 +1,2 @@ +bugfixes: + - ansible-test - Fix a traceback that can occur when using delegation before the ansible-test temp directory is created. diff --git a/test/lib/ansible_test/_internal/delegation.py b/test/lib/ansible_test/_internal/delegation.py index 74c4adbfc6a..d69146b2678 100644 --- a/test/lib/ansible_test/_internal/delegation.py +++ b/test/lib/ansible_test/_internal/delegation.py @@ -124,6 +124,8 @@ def delegate(args: CommonConfig, host_state: HostState, exclude: list[str], requ @contextlib.contextmanager def metadata_context(args: EnvironmentConfig) -> t.Generator[None]: """A context manager which exports delegation metadata.""" + os.makedirs(ResultType.TMP.path, exist_ok=True) + with tempfile.NamedTemporaryFile(prefix='metadata-', suffix='.json', dir=ResultType.TMP.path) as metadata_fd: args.metadata_path = os.path.join(ResultType.TMP.relative_path, os.path.basename(metadata_fd.name)) args.metadata.to_file(args.metadata_path)