From fd63937fa25579ef4faee01c25b76f303c61ddb0 Mon Sep 17 00:00:00 2001 From: Shane McDonald Date: Mon, 22 Mar 2021 09:24:48 -0400 Subject: [PATCH] Create a wrapper directory for the private data dir --- awx/main/tasks.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/awx/main/tasks.py b/awx/main/tasks.py index dcf1fe5867..ca1a84827a 100644 --- a/awx/main/tasks.py +++ b/awx/main/tasks.py @@ -930,10 +930,17 @@ class BaseTask(object): ''' Create a temporary directory for job-related files. ''' - path = tempfile.mkdtemp(prefix='awx_%s_' % instance.pk, dir=settings.AWX_PROOT_BASE_PATH) - os.chmod(path, stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR) + pdd_wrapper_path = tempfile.mkdtemp( + prefix=f'pdd_wrapper_{instance.pk}_', + dir=settings.AWX_PROOT_BASE_PATH + ) + os.chmod(pdd_wrapper_path, stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR) if settings.AWX_CLEANUP_PATHS: - self.cleanup_paths.append(path) + self.cleanup_paths.append(pdd_wrapper_path) + + path = tempfile.mkdtemp(prefix='awx_%s_' % instance.pk, + dir=pdd_wrapper_path) + os.chmod(path, stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR) runner_project_folder = os.path.join(path, 'project') if not os.path.exists(runner_project_folder): # Ansible Runner requires that this directory exists.