[Freeipa-devel] thin client regressions: otptoken
Alexander Bokovoy
abokovoy at redhat.com
Tue Jun 7 08:41:21 UTC 2016
On Tue, 07 Jun 2016, Jan Cholasta wrote:
>On 7.6.2016 10:17, Alexander Bokovoy wrote:
>>ipa: ERROR: AttributeError: 'str' object has no attribute 'decode'
>>Traceback (most recent call last):
>> File "/usr/lib/python3.5/site-packages/ipalib/cli.py", line 1345, in run
>> sys.exit(api.Backend.cli.run(argv))
>> File "/usr/lib/python3.5/site-packages/ipalib/cli.py", line 1110, in run
>> rv = cmd.output_for_cli(self.api.Backend.textui, result, *args,
>>**options)
>> File "/usr/lib/python3.5/site-packages/ipaclient/plugins/otptoken.py",
>>line 103, in output_for_cli
>> qr = self._get_qrcode(output, uri, options['version'])
>> File "/usr/lib/python3.5/site-packages/ipaclient/plugins/otptoken.py",
>>line 61, in _get_qrcode
>> qr_code = qr_output.getvalue().decode(encoding)
>>AttributeError: 'str' object has no attribute 'decode' ipa: ERROR: an
>>internal error has occurred
>
>Looks rather like a py3 regression to me.
>
Fix attached, made a ticket https://fedorahosted.org/freeipa/ticket/5938
--
/ Alexander Bokovoy
-------------- next part --------------
From 398d3c0decb6b39207a2f9dcd8d27291800de1dd Mon Sep 17 00:00:00 2001
From: Alexander Bokovoy <abokovoy at redhat.com>
Date: Tue, 7 Jun 2016 11:37:41 +0300
Subject: [PATCH 5/5] otptoken: only decode the token output for Python 2
When IPA client is using Python 3, there is no str.decode() method
anymore.
ipa: ERROR: AttributeError: 'str' object has no attribute 'decode'
Traceback (most recent call last):
File "/usr/lib/python3.5/site-packages/ipalib/cli.py", line 1345, in run
sys.exit(api.Backend.cli.run(argv))
File "/usr/lib/python3.5/site-packages/ipalib/cli.py", line 1110, in run
rv = cmd.output_for_cli(self.api.Backend.textui, result, *args, **options)
File "/usr/lib/python3.5/site-packages/ipaclient/plugins/otptoken.py", line 103, in output_for_cli
qr = self._get_qrcode(output, uri, options['version'])
File "/usr/lib/python3.5/site-packages/ipaclient/plugins/otptoken.py", line 61, in _get_qrcode
qr_code = qr_output.getvalue().decode(encoding)
AttributeError: 'str' object has no attribute 'decode' ipa: ERROR: an internal error has occurred
Fixes https://fedorahosted.org/freeipa/ticket/5938
---
ipaclient/plugins/otptoken.py | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/ipaclient/plugins/otptoken.py b/ipaclient/plugins/otptoken.py
index 5d3f1f8..968b01e 100644
--- a/ipaclient/plugins/otptoken.py
+++ b/ipaclient/plugins/otptoken.py
@@ -58,7 +58,9 @@ class otptoken_add(MethodOverride):
encoding = locale.getpreferredencoding(False)
try:
- qr_code = qr_output.getvalue().decode(encoding)
+ qr_code = qr_output.getvalue()
+ if not six.PY3:
+ qr_code = qr_code.decode(encoding)
except UnicodeError:
add_message(
version,
--
2.7.4
More information about the Freeipa-devel
mailing list