Fix broken integration test with unicode hostnames

1. The test did "name: '{{hostnames}}.{{item}}'" inside a with_sequence
   loop, which didn't do what was intended: it expanded hostnames into
   an array, appended ".1", and set name to the resulting string. This
   can be converted to a simple with_items loop.

2. Some of the entries in hostnames contained punctuation characters,
   which I see no reason to support in inventory hostnames anyway.

3. Once the add_host failures are fixed, the playbook later fails when
   the unicode hostnames are interpolated into debug output in ssh.py
   due to an encoding error. This is only one of the many places that
   may fail when using unicode inventory hostnames; we work around it
   by providing an ansible_ssh_host setting.
pull/12165/head
Abhijit Menon-Sen 9 years ago
parent 7479ab47e0
commit 88a20e7a20

@ -4,10 +4,9 @@
connection: local connection: local
vars: vars:
test_var: 'Ī ī Ĭ ĭ Į į İ ı IJ ij Ĵ ĵ Ķ ķ ĸ Ĺ ĺ Ļ ļ Ľ ľ Ŀ ŀ Ł ł Ń ń Ņ ņ Ň ň ʼn Ŋ ŋ Ō ō Ŏ ŏ Ő ő Œ' test_var: 'Ī ī Ĭ ĭ Į į İ ı IJ ij Ĵ ĵ Ķ ķ ĸ Ĺ ĺ Ļ ļ Ľ ľ Ŀ ŀ Ł ł Ń ń Ņ ņ Ň ň ʼn Ŋ ŋ Ō ō Ŏ ŏ Ő ő Œ'
num_hosts: 5
hostnames: hostnames:
- 'host-#ϬϭϮϯϰ' - 'host-ϬϭϮϯϰ'
- 'host-ͰͱͲͳʹ͵' - 'host-fóöbär'
- 'host-ΙΚΛΜΝΞ' - 'host-ΙΚΛΜΝΞ'
- 'host-στυφχψ' - 'host-στυφχψ'
- 'host-ϬϭϮϯϰϱ' - 'host-ϬϭϮϯϰϱ'
@ -29,11 +28,11 @@
- 'ā Ă ă Ą ą Ć ć Ĉ ĉ Ċ ċ Č č Ď ď Đ đ Ē ē Ĕ ĕ Ė ė Ę ę Ě ě Ĝ ĝ Ğ ğ Ġ ġ Ģ ģ Ĥ ĥ Ħ ħ Ĩ ĩ' - 'ā Ă ă Ą ą Ć ć Ĉ ĉ Ċ ċ Č č Ď ď Đ đ Ē ē Ĕ ĕ Ė ė Ę ę Ě ě Ĝ ĝ Ğ ğ Ġ ġ Ģ ģ Ĥ ĥ Ħ ħ Ĩ ĩ'
- add_host: - add_host:
name: '{{hostnames}}.{{item}}' name: '{{item}}'
groups: 'ĪīĬĭ' groups: 'ĪīĬĭ'
ansible_ssh_host: 127.0.0.1
ansible_connection: local ansible_connection: local
host_id: '{{item}}' with_items: hostnames
with_sequence: start=1 end={{num_hosts}} format=%d
- name: 'A task with unicode extra vars' - name: 'A task with unicode extra vars'
debug: var=extra_var debug: var=extra_var

Loading…
Cancel
Save