From ed590257a34b4a65fcad364285beb3194da26278 Mon Sep 17 00:00:00 2001 From: Michael Scherer Date: Wed, 19 Oct 2016 00:07:28 +0200 Subject: [PATCH] Fix code for python 3 Since dict.keys return a dictkeys under python 3, we hav to cast it to a list to avoid traceback: Traceback (most recent call last): File "/tmp/ansible_sh16ejbd/ansible_module_authorized_key.py", line 496, in main() File "/tmp/ansible_sh16ejbd/ansible_module_authorized_key.py", line 490, in main results = enforce_state(module, module.params) File "/tmp/ansible_sh16ejbd/ansible_module_authorized_key.py", line 410, in enforce_state parsed_new_key = parsekey(module, new_key) File "/tmp/ansible_sh16ejbd/ansible_module_authorized_key.py", line 308, in parsekey options = parseoptions(module, options) File "/tmp/ansible_sh16ejbd/ansible_module_authorized_key.py", line 259, in parseoptions options_dict[key] = value File "/tmp/ansible_sh16ejbd/ansible_module_authorized_key.py", line 164, in __setitem__ self.itemlist.append(key) AttributeError: 'dict_keys' object has no attribute 'append' Yet another fix for https://github.com/ansible/ansible/pull/18053 --- lib/ansible/modules/system/authorized_key.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/ansible/modules/system/authorized_key.py b/lib/ansible/modules/system/authorized_key.py index fabc7af3c1f..f8bbbadce95 100644 --- a/lib/ansible/modules/system/authorized_key.py +++ b/lib/ansible/modules/system/authorized_key.py @@ -159,7 +159,7 @@ class keydict(dict): def __init__(self, *args, **kw): super(keydict,self).__init__(*args, **kw) - self.itemlist = super(keydict,self).keys() + self.itemlist = list(super(keydict,self).keys()) def __setitem__(self, key, value): self.itemlist.append(key) super(keydict,self).__setitem__(key, value)