From 264b33da6bdca865f87f372169a1c9ff3246d7f4 Mon Sep 17 00:00:00 2001 From: Toshio Kuratomi Date: Sat, 15 Oct 2016 11:03:34 -0700 Subject: [PATCH] Fix become password using non-ascii for local connection Fixes #18029 (cherry picked from commit efc5dac52cdfab25c3b163958830325f6898d3b6) In 2.1, the to_bytes function doesn't have a surrogate_or_strict error handler --- lib/ansible/plugins/connection/local.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/ansible/plugins/connection/local.py b/lib/ansible/plugins/connection/local.py index 0c7bb5ccb7..ce06c6d910 100644 --- a/lib/ansible/plugins/connection/local.py +++ b/lib/ansible/plugins/connection/local.py @@ -105,7 +105,7 @@ class Connection(ConnectionBase): raise AnsibleError('privilege output closed while waiting for password prompt:\n' + become_output) become_output += chunk if not self.check_become_success(become_output): - p.stdin.write(self._play_context.become_pass + '\n') + p.stdin.write(to_bytes(self._play_context.become_pass, errors='strict') + b'\n') fcntl.fcntl(p.stdout, fcntl.F_SETFL, fcntl.fcntl(p.stdout, fcntl.F_GETFL) & ~os.O_NONBLOCK) fcntl.fcntl(p.stderr, fcntl.F_SETFL, fcntl.fcntl(p.stderr, fcntl.F_GETFL) & ~os.O_NONBLOCK)