diff --git a/lib/ansible/constants.py b/lib/ansible/constants.py index a1a26b70f31..0c4025ab27c 100644 --- a/lib/ansible/constants.py +++ b/lib/ansible/constants.py @@ -28,6 +28,7 @@ from ansible.compat.six.moves import configparser from ansible.parsing.quoting import unquote from ansible.errors import AnsibleOptionsError +from ansible.utils.path import makedirs_safe # copied from utils, avoid circular reference fun :) def mk_boolean(value): @@ -75,7 +76,7 @@ def get_config(p, section, key, env_var, default, boolean=False, integer=False, elif istmppath: value = shell_expand(value) if not os.path.exists(value): - os.makedirs(value, 0o700) + makedirs_safe(value, 0o700) prefix = 'ansible-local-%s' % os.getpid() value = tempfile.mkdtemp(prefix=prefix, dir=value) elif ispathlist: diff --git a/lib/ansible/utils/path.py b/lib/ansible/utils/path.py index 1fe62e85940..a89dc0a95b3 100644 --- a/lib/ansible/utils/path.py +++ b/lib/ansible/utils/path.py @@ -30,7 +30,7 @@ def unfrackpath(path): example: '$HOME/../../var/mail' becomes '/var/spool/mail' ''' - return os.path.normpath(os.path.realpath(os.path.expandvars(os.path.expanduser(path)))) + return os.path.normpath(os.path.realpath(os.path.expanduser(os.path.expandvars(path)))) def makedirs_safe(path, mode=None): '''Safe way to create dirs in muliprocess/thread environments'''