diff options
author | James Cooke <jamescooke@users.noreply.github.com> | 2017-01-09 20:21:51 +0000 |
---|---|---|
committer | Toshio Kuratomi <a.badger@gmail.com> | 2017-01-09 12:21:51 -0800 |
commit | fafe5bba59163c525b82b6eaf12d0d4627a79bf7 (patch) | |
tree | 0ec97689971f426d1f5ce92403af050f05b9a61c | |
parent | b8ee80ac4efffe74c545def6f38e7f8ca46a91c9 (diff) | |
download | ansible-fafe5bba59163c525b82b6eaf12d0d4627a79bf7.tar.gz |
Fix authorized_key crash in Python3 with remote key file (#20037)
* Decode downloaded keys bytes if Python3
* Fixes #20007
* Thanks @georgepsarakis
-rw-r--r-- | lib/ansible/modules/system/authorized_key.py | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/ansible/modules/system/authorized_key.py b/lib/ansible/modules/system/authorized_key.py index d291a68d42..aa2c9d21a4 100644 --- a/lib/ansible/modules/system/authorized_key.py +++ b/lib/ansible/modules/system/authorized_key.py @@ -227,6 +227,7 @@ import re import shlex from operator import itemgetter +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 @@ -537,6 +538,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 new_keys = [s for s in key.splitlines() if s and not s.startswith('#')] |