Merge pull request #14937 from mattclay/unicode-dir

Fix missing to_bytes on directory path.
This commit is contained in:
Toshio Kuratomi 2016-03-11 19:15:14 -08:00
commit 180e70b67a
2 changed files with 9 additions and 6 deletions

View file

@ -19,6 +19,7 @@ __metaclass__ = type
import os import os
from errno import EEXIST from errno import EEXIST
from ansible.utils.unicode import to_bytes
__all__ = ['unfrackpath'] __all__ = ['unfrackpath']
@ -33,7 +34,7 @@ def unfrackpath(path):
def makedirs_safe(path, mode=None): def makedirs_safe(path, mode=None):
'''Safe way to create dirs in muliprocess/thread environments''' '''Safe way to create dirs in muliprocess/thread environments'''
if not os.path.exists(path): if not os.path.exists(to_bytes(path, errors='strict')):
try: try:
if mode: if mode:
os.makedirs(path, mode) os.makedirs(path, mode)

View file

@ -14,18 +14,20 @@
### copy local file with unicode filename and content ### copy local file with unicode filename and content
- name: create local file with unicode filename and content - name: create local file with unicode filename and content
local_action: lineinfile dest=/tmp/ansible-local-汉语 create=true line=汉语 local_action: lineinfile dest=/tmp/ansible-local-汉语/汉语.txt create=true line=汉语
- name: remove remote file with unicode filename and content - name: remove remote file with unicode filename and content
file: path=/tmp/ansible-remote-汉语 state=absent file: path=/tmp/ansible-remote-汉语/汉语.txt state=absent
- name: create remote directory with unicode name
file: path=/tmp/ansible-remote-汉语 state=directory
- name: copy local file with unicode filename and content - name: copy local file with unicode filename and content
copy: src=/tmp/ansible-local-汉语 dest=/tmp/ansible-remote-汉语 copy: src=/tmp/ansible-local-汉语/汉语.txt dest=/tmp/ansible-remote-汉语/汉语.txt
### fetch remote file with unicode filename and content ### fetch remote file with unicode filename and content
- name: remove local file with unicode filename and content - name: remove local file with unicode filename and content
local_action: file path=/tmp/ansible-local-汉语 state=absent local_action: file path=/tmp/ansible-local-汉语/汉语.txt state=absent
- name: fetch remote file with unicode filename and content - name: fetch remote file with unicode filename and content
fetch: src=/tmp/ansible-remote-汉语 dest=/tmp/ansible-local-汉语 fail_on_missing=true validate_checksum=true flat=true fetch: src=/tmp/ansible-remote-汉语/汉语.txt dest=/tmp/ansible-local-汉语/汉语.txt fail_on_missing=true validate_checksum=true flat=true
### remove local and remote temp files ### remove local and remote temp files