From cce7952e93590f5ceafe9525e273f13d056eb76f Mon Sep 17 00:00:00 2001 From: James Cooke Date: Mon, 9 Jan 2017 12:31:36 -0800 Subject: Fix authorized_key crash in Python3 with remote key file (#20037) * Decode downloaded keys bytes if Python3 * Fixes #20007 * Thanks @georgepsarakis (cherry picked from fafe5bba59163c525b82b6eaf12d0d4627a79bf7) --- system/authorized_key.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/system/authorized_key.py b/system/authorized_key.py index 4d4ef487..3f009c5d 100644 --- a/system/authorized_key.py +++ b/system/authorized_key.py @@ -150,6 +150,7 @@ import tempfile import re import shlex +from ansible.module_utils._text import to_native from ansible.module_utils.basic import AnsibleModule from ansible.module_utils.pycompat24 import get_exception from ansible.module_utils.urls import fetch_url @@ -429,6 +430,9 @@ def enforce_state(module, params): except Exception: module.fail_json(msg=error_msg % key) + # resp.read gives bytes on python3, convert to native string type + key = to_native(key, errors='surrogate_or_strict') + # extract individual keys into an array, skipping blank lines and comments key = [s for s in key.splitlines() if s and not s.startswith('#')] -- cgit v1.2.1