Merge "Fix logs encoding in py3"
This commit is contained in:
commit
0ed8d7cd27
ironic_python_agent
releasenotes/notes
@ -27,6 +27,7 @@ import mock
|
|||||||
from oslo_concurrency import processutils
|
from oslo_concurrency import processutils
|
||||||
from oslo_serialization import base64
|
from oslo_serialization import base64
|
||||||
from oslotest import base as test_base
|
from oslotest import base as test_base
|
||||||
|
import six
|
||||||
import testtools
|
import testtools
|
||||||
|
|
||||||
from ironic_python_agent import errors
|
from ironic_python_agent import errors
|
||||||
@ -385,6 +386,7 @@ class TestUtils(testtools.TestCase):
|
|||||||
contents = b'Squidward Tentacles'
|
contents = b'Squidward Tentacles'
|
||||||
io_dict = {'fake-name': io.BytesIO(bytes(contents))}
|
io_dict = {'fake-name': io.BytesIO(bytes(contents))}
|
||||||
data = utils.gzip_and_b64encode(io_dict=io_dict)
|
data = utils.gzip_and_b64encode(io_dict=io_dict)
|
||||||
|
self.assertIsInstance(data, six.text_type)
|
||||||
|
|
||||||
res = io.BytesIO(base64.decode_as_bytes(data))
|
res = io.BytesIO(base64.decode_as_bytes(data))
|
||||||
with tarfile.open(fileobj=res) as tar:
|
with tarfile.open(fileobj=res) as tar:
|
||||||
|
@ -383,7 +383,7 @@ def gzip_and_b64encode(io_dict=None, file_list=None):
|
|||||||
tar.add(f)
|
tar.add(f)
|
||||||
|
|
||||||
fp.seek(0)
|
fp.seek(0)
|
||||||
return base64.encode_as_bytes(fp.getvalue())
|
return base64.encode_as_text(fp.getvalue())
|
||||||
|
|
||||||
|
|
||||||
def collect_system_logs(journald_max_lines=None):
|
def collect_system_logs(journald_max_lines=None):
|
||||||
|
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
fixes:
|
||||||
|
- JSON serialization of logs collected for ironic-python-agent.
|
||||||
|
In python3 logs were encoded as byte strings, which can't be serialized.
|
||||||
|
Make sure that logs are encoded as text for both py2.7 and py3. See
|
||||||
|
https://bugs.launchpad.net/ironic-python-agent/+bug/1668533 for details.
|
Loading…
x
Reference in New Issue
Block a user