Make run_command() work when we get byte str with non-ascii characters (instead of unicode type like we were expecting)

Fix and test.

Fixes #10536
pull/10538/head
Toshio Kuratomi 10 years ago
parent c024057e97
commit aaa25eb75c

@ -1457,7 +1457,12 @@ class AnsibleModule(object):
# in reporting later, which strips out things like # in reporting later, which strips out things like
# passwords from the args list # passwords from the args list
if isinstance(args, basestring): if isinstance(args, basestring):
to_clean_args = shlex.split(args.encode('utf-8')) if isinstance(args, unicode):
b_args = args.encode('utf-8')
else:
b_args = args
to_clean_args = shlex.split(b_args)
del b_args
else: else:
to_clean_args = args to_clean_args = args

@ -41,6 +41,15 @@
- name: 'A task with unicode host vars' - name: 'A task with unicode host vars'
debug: var=unicode_host_var debug: var=unicode_host_var
- name: 'A task with unicode shell parameters'
shell: echo '¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö ×'
register: output
- name: 'Assert that the unicode was echoed'
assert:
that:
- "'¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö ×' in output.stdout_lines"
- name: 'A play for hosts in group: ĪīĬĭ' - name: 'A play for hosts in group: ĪīĬĭ'
hosts: 'ĪīĬĭ' hosts: 'ĪīĬĭ'
gather_facts: true gather_facts: true

Loading…
Cancel
Save