From 5b279c1c15fef88497d3806192da5d5024ebcc7e Mon Sep 17 00:00:00 2001 From: Toshio Kuratomi Date: Mon, 2 Feb 2015 14:12:16 -0800 Subject: [PATCH] Fix for v1 handling of unicode extra-vars --- bin/ansible-playbook | 6 ++++-- test/integration/Makefile | 2 +- test/integration/unicode.yml | 4 ++++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/bin/ansible-playbook b/bin/ansible-playbook index af69ed9386..c3ceab9b27 100755 --- a/bin/ansible-playbook +++ b/bin/ansible-playbook @@ -47,6 +47,7 @@ import ansible.utils.template from ansible import errors from ansible import callbacks from ansible import utils +from ansible.utils import to_unicode from ansible.color import ANSIBLE_COLOR, stringc from ansible.callbacks import display @@ -144,10 +145,11 @@ def main(args): extra_vars = {} for extra_vars_opt in options.extra_vars: - if extra_vars_opt.startswith("@"): + extra_vars_opt = to_unicode(extra_vars_opt) + if extra_vars_opt.startswith(u"@"): # Argument is a YAML file (JSON is a subset of YAML) extra_vars = utils.combine_vars(extra_vars, utils.parse_yaml_from_file(extra_vars_opt[1:], vault_password=vault_pass)) - elif extra_vars_opt and extra_vars_opt[0] in '[{': + elif extra_vars_opt and extra_vars_opt[0] in u'[{': # Arguments as YAML extra_vars = utils.combine_vars(extra_vars, utils.parse_yaml(extra_vars_opt)) else: diff --git a/test/integration/Makefile b/test/integration/Makefile index 7a00a5adde..a3c393b00d 100644 --- a/test/integration/Makefile +++ b/test/integration/Makefile @@ -33,7 +33,7 @@ includes: ansible-playbook test_includes.yml -i $(INVENTORY) -e @$(VARS_FILE) $(CREDENTIALS_ARG) $(TEST_FLAGS) unicode: - ansible-playbook unicode.yml -i $(INVENTORY) -e @$(VARS_FILE) -v $(TEST_FLAGS) + ansible-playbook unicode.yml -i $(INVENTORY) -e @$(VARS_FILE) -v $(TEST_FLAGS) -e 'extra_var=café' # Test the start-at-task flag #9571 ansible-playbook unicode.yml -i $(INVENTORY) -e @$(VARS_FILE) -v --start-at-task '*¶' -e 'start_at_task=True' $(TEST_FLAGS) diff --git a/test/integration/unicode.yml b/test/integration/unicode.yml index 60fb14214b..4e7fe635f4 100644 --- a/test/integration/unicode.yml +++ b/test/integration/unicode.yml @@ -35,6 +35,10 @@ host_id: '{{item}}' with_sequence: start=1 end={{num_hosts}} format=%d + - name: 'A task with unicode extra vars' + debug: var=extra_var + + - name: 'A play for hosts in group: ĪīĬĭ' hosts: 'ĪīĬĭ' gather_facts: true