[stable-2.10] Let vault lookup output unicode string. (#73571) (#73573)

Until now, the lookup plugin returned a byte string.
Changed this to output a unicode string instead.
(cherry picked from commit d0fda3e901)

Co-authored-by: Alexander Sowitzki <asowitzk@redhat.com>
pull/73776/head
Alexander Sowitzki 4 years ago committed by GitHub
parent e85732f7e6
commit ab8bbe269d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -0,0 +1,2 @@
bugfixes:
- the unvault lookup plugin returned a byte string. Now returns a real string.

@ -56,7 +56,7 @@ class LookupModule(LookupBase):
actual_file = self._loader.get_real_file(lookupfile, decrypt=True) actual_file = self._loader.get_real_file(lookupfile, decrypt=True)
with open(actual_file, 'rb') as f: with open(actual_file, 'rb') as f:
b_contents = f.read() b_contents = f.read()
ret.append(b_contents) ret.append(to_text(b_contents))
else: else:
raise AnsibleParserError('Unable to find file matching "%s" ' % term) raise AnsibleParserError('Unable to find file matching "%s" ' % term)

@ -0,0 +1,9 @@
- hosts: localhost
tasks:
- set_fact:
unvaulted: "{{ lookup('unvault', 'vault') }}"
- debug:
msg: "{{ unvaulted }}"
- assert:
that:
- "unvaulted == 'foo: bar\n'"

@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -eux
ansible-playbook --vault-password-file password main.yml

@ -0,0 +1,6 @@
$ANSIBLE_VAULT;1.1;AES256
33386337343963393533343039333563323733646137636162346266643134323539396237646333
3663363965336335663161656236616532346363303832310a393264356663393330346137613239
34633765333936633466353932663166343531616230326161383365323966386434366431353839
3838623233373231340a303166666433613439303464393661363365643765666137393137653138
3631
Loading…
Cancel
Save